Professional Documents
Culture Documents
Disclaimer
THIS DOCUMENTATION IS PROVIDED FOR REFERENCE PURPOSES ONLY. WHILE EFFORTS
WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION
CONTAINED IN THIS DOCUMENTATION, THIS DOCUMENTATION IS PROVIDED AS IS
WITHOUT ANY WARRANTY WHATSOEVER AND TO THE MAXIMUM EXTENT PERMITTED,
IBM DISCLAIMS ALL IMPLIED WARRANTIES, INCLUDING WITHOUT LIMITATION THE
IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
PARTICULAR PURPOSE, WITH RESPECT TO THE SAME. IBM SHALL NOT BE RESPONSIBLE FOR
ANY DAMAGES, INCLUDING WITHOUT LIMITATION, DIRECT, INDIRECT, CONSEQUENTIAL
OR INCIDENTAL DAMAGES, ARISING OUT OF THE USE OF, OR OTHERWISE RELATED TO,
THIS DOCUMENTATION OR ANY OTHER DOCUMENTATION. NOTWITHSTANDING
ANYTHING TO THE CONTRARY, NOTHING CONTAINED IN THIS DOCUMENTATION OR ANY
OTHER DOCUMENTATION IS INTENDED TO, NOR SHALL HAVE THE EFFECT OF, CREATING
ANY WARRANTIES OR REPRESENTATIONS FROM IBM (OR ITS SUPPLIERS OR LICENSORS), OR
ALTERING THE TERMS AND CONDITIONS OF THE APPLICABLE LICENSE AGREEMENT
GOVERNING THE USE OF THIS SOFTWARE.
Copyright
Under the copyright laws, neither the documentation nor the software may be copied, photocopied,
reproduced, translated, or reduced to any electronic medium or machine-readable form, in whole or
in part, without the prior written consent of IBM, except in the manner described in the documentation or the applicable licensing agreement governing the use of the software.
Copyright IBM Corporation 1985, 2002
All rights reserved.
Lotus Software
IBM Software Group
One Rogers Street
Cambridge, MA 02142
US Government Users Restricted Rights Use, duplication or disclosure restricted by GS ADP
Schedule Contract with IBM Corp.
List of Trademarks
1-2-3, cc:Mail, Domino, Domino Designer, Freelance Graphics, iNotes, Lotus, Lotus Discovery Server,
Lotus Enterprise Integrator, Lotus Mobile Notes, Lotus Notes, Lotus Organizer, LotusScript, Notes,
QuickPlace, Sametime, SmartSuite, and Word Pro are trademarks or registered trademarks of Lotus
Development Corporation and/or IBM Corporation in the United States, other countries, or both.
AIX, AS/400, DB2, IBM, iSeries, MQSeries, Netfinity, OfficeVision, OS/2, OS/390, OS/400, S/390,
Tivoli, and WebSphere are registered trademarks of International Business Machines Corporation in
the United States, other countries, or both. Pentium is a trademark of Intel Corporation in the United
States, other countries, or both. Microsoft, Windows, and Windows NT are registered trademarks of
Microsoft Corporation in the United States, other countries, or both. UNIX is a registered trademark
of The Open Group in the United States and other countries. Java and all Java-based trademarks and
logos are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States, other
countries, or both.
All other trademarks are the property of their respective owners.
Contents
Preface . . . . . . . . . . . . . . . . . . . . . . . xiii
1 Introduction to IBM Lotus
Domino Designer . . . . . . . . . . . . . . . 1-1
...
Starting Lotus Domino Designer . . . . . . . .
Exploring Lotus Domino Designer . . . . . . .
Creating a database . . . . . . . . . . . . . . . . .
Overview applications and databases
1-1
1-2
1-4
1-7
2-12
..
.
..
2-14
...
2-15
....
......
2-15
. . . . . . . . 1-8
Organizing your data . . . . . . . . . . . . . . 1-11
Creating navigation . . . . . . . . . . . . . . . 1-12
Structuring your display . . . . . . . . . . . . 1-14
Adding automation . . . . . . . . . . . . . . . . 1-15
Sharing, locking, and editing design
elements . . . . . . . . . . . . . .
. . . . . 1-16
Extending access to applications . . . . . . . 1-17
Communicating across platforms . . . . . . . 1-18
2 Planning an Application . . . . . . . 2-1
Planning an application . . . . . . . . . . . . . . 2-1
Planning a Notes application . . . . . . . . . . . 2-2
Planning a Notes and Web application . . . . 2-2
Tips for designing Notes and Web
applications . . . . . . . . . . . .
......
Planning a Web application . . . . . . . . . . .
Tips for designing Web applications . . . .
2-3
2-8
2-8
...
..
To copy individual design elements . . . .
To protect individual design elements . . .
Starting a database from scratch . . . . . . . . .
Organizing your application . . . . . . . . . . .
Using toolbars . . . . . . . . . . . . . . . . . . . .
Domino applets
..
2-19
. . . . 2-21
Table of Notes and Domino known limits . 2-23
3 Creating an Application . . . . . . . 3-1
Domino databases . . . . . . . . . . . . . . . . . 3-1
Creating databases . . . . . . . . . . . . . . . . . 3-2
Creating a database from a template . . . . . . 3-2
Copying an existing Domino database . . . . . 3-4
2-17
. . . . . . 2-9
. . . . . . . . . . . . . . . . 2-10
2-13
...
.....
3-4
3-5
3-6
3-6
3-7
3-7
3-8
3-10
2-11
Contents iii
3-11
Enabling subscriptions
3-11
..
Sharing file resources . . . . . . . . . . . . . .
To create a file resource . . . . . . . . . . .
To open a file resource . . . . . . . . . . . .
To refresh a file resource . . . . . . . . . .
To prevent a file resource from being
refreshed . . . . . . . . . . . . . . .
...
3-12
3-14
3-14
3-15
3-15
3-16
3-16
3-16
.......
...........
..
Creating an image resource . . . . . . . . . . .
Creating image resource sets . . . . . . . . . .
Document locking . . . . . . . . . . . . . . . .
Previewing your design work . . . . . . . . .
Adding instant messaging to an
application . . . . . . . . . . .
......
3-17
3-17
3-21
3-24
3-25
3-27
. 3-28
4 Designing Pages . . . . . . . . . . . . . 4-1
Pages . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1
Creating pages . . . . . . . . . . . . . . . . . . 4-3
Displaying a page . . . . . . . . . . . . . . . . 4-5
Creating a home page for an
application . . . . . . . .
4-5
4-6
...............
Creating links . . . . . . . . . . . . . . . . .
Using graphics . . . . . . . . . . . . . . . . .
Adding a background color or graphic .
Adding an applet . . . . . . . . . . . . . . .
Creating an attachment . . . . . . . . . . .
Embedding elements . . . . . . . . . . . . .
Embedding a date picker . . . . . . . . . .
Inserting a JavaScript library . . . . . . . .
Creating sections
....
............
..........
............
............
............
4-7
4-8
4-8
4-9
.....
........
4-12
4-13
4-15
4-19
4-20
4-21
4-21
4-22
4-23
4-23
Layers
4-26
......
......................
. . . . 4-32
Creating style sheets as shared resources . . 4-34
Programming a page or form . . . . . . . . . 4-37
Adding HTML header information . . . . 4-37
Adding JavaScript header information . 4-38
5 Designing Forms . . . . . . . . . . . . . 5-1
Forms . . . . . . . . . . . . . . . . . . . . . . . . . 5-1
Form elements . . . . . . . . . . . . . . . . . . . . 5-2
Forms and documents . . . . . . . . . . . . . . . 5-5
Creating and deleting forms . . . . . . . . . . . 5-7
Tips for designing forms . . . . . . . . . . . 5-9
Naming forms . . . . . . . . . . . . . . . . . . 5-9
Making a form available to Web browsers . 5-12
Selected form properties . . . . . . . . . . . . . 5-13
Creating a response hierarchy . . . . . . . 5-17
Version tracking . . . . . . . . . . . . . . . . 5-18
Customizing a form's window title . . . . . . 5-20
Using subforms . . . . . . . . . . . . . . . . . . 5-22
Layout regions . . . . . . . . . . . . . . . . . . . 5-25
Aligning and rearranging elements in a
layout region . . . . . . . . . . . . . . .
5-26
.....
Creating an embedded scheduler . . . . .
Creating an embedded editor . . . . . . .
Profile forms . . . . . . . . . . . . . . . . . . . .
Forms that prompt users for input . . . . . .
Designing a form that presents a dialog
box . . . . . . . . . . . . . . . . . . . . .
Designing a form that prompts users
for information . . . . . . . . . . . .
5-27
5-28
5-29
5-29
5-33
5-36
5-38
5-38
...
5-40
..
5-41
..
..
5-41
......
5-48
5-27
...............
Formulas for Date/Time fields . . . . . .
Date/Time fields
..
Adding graphics to a layout region . . . .
Embedded controls . . . . . . . . . . . . . . . .
5-42
. 5-49
Customizing search forms . . . . . . . . . . . 5-50
Tips for improving document display time . 5-59
Testing a form before deploying it . . . . . . 5-60
6 Designing Fields . . . . . . . . . . . . . 6-1
Fields . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1
Creating a single-use field . . . . . . . . . . . . 6-1
Creating a shared field . . . . . . . . . . . . . . . 6-3
Field names and labels . . . . . . . . . . . . . . . 6-6
Field types . . . . . . . . . . . . . . . . . . . . . . 6-7
Text, rich text, and rich text lite fields . . . 6-7
Rich text fields on the Web . . . . . . . . . . 6-9
Number fields . . . . . . . . . . . . . . . . . 6-11
......
Names fields . . . . . . . . . . . . . . . . . .
Readers and Authors fields . . . . . . . . .
6-13
6-18
6-18
6-21
6-22
6-22
6-25
......
.........
Creating aliases for choices in a list . . . .
Password fields . . . . . . . . . . . . . . . .
Formula fields . . . . . . . . . . . . . . . . .
Editable and computed fields . . . . . . . . .
Color fields . . . . . . . . . . . . . . . . . . .
Time zone fields . . . . . . . . . . . . . . . .
Editable field formulas . . . . . . . . . . . .
Selected field properties . . . . . . . . . . . . .
Hiding fields . . . . . . . . . . . . . . . . . . . .
Creating a field in a layout region . . . . . .
Adding HTML attributes to a field . . . . . .
Storing HTML in a field . . . . . . . . . . . . .
Creating fields that inherit values . . . . . . .
To create a field that inherits an entire
document . . . . . . . . . . . . . . . .
6-28
6-30
6-32
6-35
6-35
6-35
6-39
6-42
6-44
6-46
6-46
6-47
..
6-48
....
.......
6-49
.........
6-50
6-27
6-49
6-51
6-56
......
...........
.....
6-57
Contents v
.........
.........................
Standard outline views . . . . . . . . . . . .
Calendar views . . . . . . . . . . . . . . . . .
Shared and private views . . . . . . . . . . . . .
Creating a standard outline view . . . . . . . .
Copying and deleting views . . . . . . . . .
Creating a default design for new views . .
Designing folders . . . . . . . . . . . . . . . . . .
Naming a view or folder . . . . . . . . . . . . .
Views
...
7-1
7-2
7-4
7-5
7-7
7-8
7-9
7-9
7-9
7-12
..
...
7-13
.....
Creating columns in a view . . . . . . . . . . .
Adding titles to columns . . . . . . . . . .
Setting styles for columns . . . . . . . . . . . .
Formatting date and time columns . . . . . .
Displaying numbers in columns . . . . . . . .
Advanced options for columns . . . . . .
Adding programming to columns . . . . . .
Table of simple functions for columns . . . .
Displaying an icon in a column . . . . . . . .
Sorting documents in views . . . . . . . . . .
7-15
....
Using a column to switch to another view .
Generating column totals, averages, and
percents . . . . . . . . . . . . . . . .
...
Setting styles for a standard view or folder .
Display options for views . . . . . . . . . . . .
Adding categories to views . . . . . . . . .
7-14
7-17
7-17
7-18
7-19
7-21
7-22
7-24
7-29
7-31
7-33
7-36
7-37
7-38
7-38
7-40
7-42
....
Indenting response documents . . . . . . . .
Formulas for response columns . . . . . . . .
Identifying unread documents . . . . . . . . .
Default views . . . . . . . . . . . . . . . . . . .
Allowing users to edit or create
documents from a view . .
.......
Allowing users to set colors in a view . .
Formulas that look for values in columns
and views . . . . . . . . . . . . . . . .
..
Creating a calendar view . . . . . . . . . . . .
Setting styles for a calendar view . . . . . . .
Displaying views in Web applications . . . .
Specifying how a view displays in a
Web browser . . . . . . . . . . . .
....
7-44
7-46
7-47
7-48
7-49
7-50
7-50
7-52
7-55
7-56
7-59
7-60
7-61
7-61
......
7-63
7-64
.
..
7-64
...
7-65
.....
7-66
....
7-66
....
7-67
........
Hiding a view . . . . . . . . . . . . . . . . . . .
Refreshing view indexes . . . . . . . . . . . .
Adding a trash folder to an application .
7-69
7-70
7-71
7-73
. . . . . 7-74
8 Designing Framesets . . . . . . . . . 8-1
Overview of framesets . . . . . . . . . . . . . . . 8-1
Creating a frameset . . . . . . . . . . . . . . . . . 8-2
Providing content for a frame . . . . . . . . . . 8-4
Setting the style for frames . . . . . . . . . . . . 8-6
Specifying a target frame . . . . . . . . . . . . . 8-9
Launching a database into a frameset . . . . 8-10
Launching a page or form into a frameset . 8-10
Launching a view or folder into a frameset . 8-11
Adding a view for soft deletions
.....
Outlines . . . . . . . . . . . . . . . . . . . . . . . .
Creating an outline . . . . . . . . . . . . . . .
Embedding an outline . . . . . . . . . . . . .
Outlines, navigators, and imagemaps
9-1
9-2
9-3
9-5
. . . . . 9-7
Selected outline properties . . . . . . . . . . 9-7
Selected outline entry properties . . . . . . 9-8
Selected embedded outline properties . . 9-10
........
Displaying the outline in a frameset . . . . .
Navigators . . . . . . . . . . . . . . . . . . . . .
Creating a navigator . . . . . . . . . . . . . . .
Adding graphic objects to navigators . . . .
Adding and enhancing graphics in a
navigator . . . . . . . . . . . . . . .
9-16
9-17
9-17
9-19
9-20
...
9-20
......
Adding hotspots . . . . . . . . . . . . . . . .
Adding actions to navigators . . . . . . . . . .
9-22
9-22
9-23
9-26
Hiding navigators
.................
9-27
9-27
....
9-28
......
Testing navigators . . . . . . . . . . . . . . . .
Creating an imagemap . . . . . . . . . . . . . .
10 Automation in Applications . .
Automation . . . . . . . . . . . . . . . . . . . . .
Actions . . . . . . . . . . . . . . . . . . . . . . . .
Hotspots . . . . . . . . . . . . . . . . . . . . . . .
Agents . . . . . . . . . . . . . . . . . . . . . . . .
Events . . . . . . . . . . . . . . . . . . . . . . . .
9-29
...
Action bar . . . . . . . . . . . . . . . . . . . . . .
Creating and inserting shared actions . . . .
Creating a button . . . . . . . . . . . . . . . . .
Creating a text pop-up . . . . . . . . . . . . . .
Creating a formula pop-up . . . . . . . . . . .
Creating an action hotspot . . . . . . . . . . .
Creating a program for an event . . . . . . .
Creating an agent . . . . . . . . . . . . . . . . .
Triggering an agent on an event . . . . . .
Triggering an agent on a schedule . . . .
Useful agent procedures . . . . . . . . . . .
Examples of agents to run before Web
users open or save documents . . .
9-30
9-30
10-1
10-1
10-2
10-4
10-5
10-6
10-9
10-15
10-17
10-22
10-25
10-26
10-27
10-28
10-30
10-32
10-34
10-36
..
10-38
......
Security for agents on servers and the Web .
Troubleshooting agents . . . . . . . . . . . . .
Testing agents . . . . . . . . . . . . . . . . .
10-40
10-41
10-46
10-47
Contents vii
............
Notes server console commands . . . . .
Agent Manager debugging information .
NotesLog Class . . . . . . . . . . . . . . . .
AgentRunner . . . . . . . . . . . . . . . . . .
Simple actions for automation . . . . . . . . .
Using LotusScript for automation . . . . . .
Viewing the agent log
10-48
10-49
10-51
10-53
12-2
12-4
10-54
10-54
............
.....
..........
12-1
10-58
13 Connecting to Enterprise
Data . . . . . . . . . . . . . . . . . . . . . . . . . 13-1
10-59
10-61
.....
............
...........
...
Actions and agents names . . . . . . . . . . .
Hiding automated components . . . . . . . .
10-62
..
Table of connectivity solutions . . . . . . .
Overview of Data Connection Resources . .
10-63
10-65
10-66
..............
...
Enabling Java applets . . . . . . . . . . . . . .
Linking to an applet on the Web . . . . .
Setting applet parameters . . . . . . . . . . . .
Specifying applet parameters, attributes,
and properties . . . . . . . . . . . .
...
Setting HTML attributes . . . . . . . . . . .
Setting Alternate HTML attributes . . . .
Setting properties . . . . . . . . . . . . . . .
Setting up shared applet resources . . . .
Stopping, selecting, and restarting applets .
Copying and deleting applets . . . . . . . . .
Refreshing and exporting applet files . .
Setting security for applets . . . . . . . . .
Saving applet data . . . . . . . . . . . . . .
Tips and troubleshooting for Java applets .
.......
13-6
.......
13-7
11-2
11-5
11-6
11-7
11-10
11-11
11-11
11-12
......
13-9
..
13-10
......
13-11
.............................
Registering data sources for ODBC . . . .
Setting up a view for ODBC access . . . . . .
Writing formulas and scripts to access
relational databases . . . . . . . . . .
11-7
11-8
13-5
13-6
11-5
13-3
..
11-1
11-2
13-1
..
13-13
13-14
13-15
13-16
......
Linking and embedding objects in forms . .
Adding OLE custom controls to a form .
Designing applications using OLE
11-13
11-15
11-18
.....
14-1
14-2
14-4
14-5
..
14-6
....
14-6
14-8
.....
.......
.......
14-8
....
......
14-9
14-10
14-12
16 Creating a Workflow
Application . . . . . . . . . . . . . . . . . . . 16-1
...............
Planning workflow . . . . . . . . . . . . . . . .
Setting up automatic mailing . . . . . . . . . .
Mailing features and Web applications . . .
Displaying the Mail Send dialog box . . . . .
Creating a database that receives mailings .
Workflow overview
16-1
16-2
16-3
16-5
16-5
16-5
...
16-6
...
16-7
...
16-8
....
14-12
....
14-13
....
14-14
......
Publishing actions . . . . . . . . . . . . . . . .
Exchanging data using Notes/FX . . . . . . .
Preparing a form to exchange data . . . . . .
14-16
17-1
14-17
17-2
14-19
14-20
...................
Domino applications and XML . . . . . . . .
What is XML?
......
XML terminology . . . . . . . . . . . . . . . . .
Putting XML in a form or page . . . . . . . .
Using a view to generate XML . . . . . . . . .
Using an agent to generate XML . . . . . . .
Using a Java servlet to generate XML . . . .
Viewing the XML in an application
with DXL utilities . . . . . . . . .
....
15-1
15-4
15-5
15-6
15-8
15-11
15-13
15-15
15-17
.
...
...
17-3
..
17-4
.....
17-7
.........
18 Application Security . . . . . . . .
Security in an application . . . . . . . . . . . .
The database access control list . . . . . . . .
Setting up a database ACL . . . . . . . . . . .
Access levels in the ACL . . . . . . . . . . . .
Access level privileges in the ACL . . . . . .
Roles in the ACL . . . . . . . . . . . . . . . . .
Editing the database ACL . . . . . . . . . . . .
Default ACL entries . . . . . . . . . . . . . . .
17-10
18-1
18-1
18-2
18-2
18-3
18-6
18-9
18-11
18-12
Contents ix
.........
User types in the ACL . . . . . . . . . . . . . .
Enforcing a consistent access control list . .
Displaying the ACL history . . . . . . . . . .
To display a name's effective access . . . . .
Security overview for Web applications . . .
Application access for Web users . . . . . . .
Acceptable entries in the ACL
....
.....
.....
.....
...
18-13
18-20
18-21
18-23
18-23
18-24
18-24
18-25
18-26
18-26
18-28
18-29
...
18-30
........
18-30
..
18-30
..
..
18-31
.
Tracking who edits a document . . . . . . . .
Updating Readers and Authors fields . . . .
Setting up the Administration Process for
databases . . . . . . . . . . . . . . . .
18-32
18-33
18-34
18-35
..
18-36
.....
Limiting Editor access to sections of forms .
18-36
18-41
...
Notes and Domino encryption . . . . . . . . .
Database encryption . . . . . . . . . . . . . . .
Encryption levels . . . . . . . . . . . . . . .
To encrypt a database . . . . . . . . . . . .
Encrypting documents and fields . . . . . . .
18-43
........
Enabling encryption for a field . . . . . . .
Allowing the author to choose the
encryption key . . . . . . . . . .
.....
Creating secret encryption keys . . . . . . . .
Distributing secret encryption keys . . . . . .
Merging secret encryption keys . . . . . . . .
To create a field that maintains a list of
secret encryption keys . . . . . . . .
18-40
18-41
18-46
18-46
18-47
18-49
18-49
18-49
18-50
18-51
18-53
18-54
..
Managing encrypted information . . . . . . .
To encrypt all documents automatically .
18-55
......
......
18-56
18-57
18-57
18-60
19 Completing an Application
and Managing Design Changes . . 19-1
Completing an application
...........
.....
Providing online Help for an application . .
Creating "Using Database" and "About
Database" documents . . . . . . . .
18-45
..
18-38
18-45
19-1
19-2
19-3
..
19-3
19-5
..
............
19-6
19-7
19-8
...
...........
19-9
...........
Modifying multiple design elements . . . . .
Hiding the design of a database . . . . . . . .
Hiding design elements . . . . . . . . . . . . .
Locking a design element . . . . . . . . . . . .
20 Deploying an Application . . . .
Preventing design changes
..
....
..............
..............
..............
.....
Pilot testing an application . . . . . . . . . . .
Renaming a database . . . . . . . . . . . . . . .
Renaming design elements . . . . . . . . .
Design synopsis . . . . . . . . . . . . . . . . . .
19-9
19-10
19-11
19-12
19-14
19-16
19-17
19-17
19-18
19-20
...
.....
19-21
......
Changing database and design properties .
Setting database launch properties . . . .
Templates
.....................
Creating templates . . . . . . . . . . . . . . . .
Examples: Creating templates . . . . . . .
Creating a design library template . . . .
Linking a database to a template . . . . .
19-22
19-24
19-25
19-27
19-28
......
Rolling out a database . . . . . . . . . . . . . .
Mandatory tasks . . . . . . . . . . . . . . . .
Optional tasks . . . . . . . . . . . . . . . . .
Copying a new database to a server . . . . .
To copy a new database to a server . . . .
Setting up replication for an application . . .
Creating one replica manually . . . . . . .
Replication settings . . . . . . . . . . . . . . . .
Limiting the contents of a replica . . . . .
19-41
19-42
19-43
19-44
19-46
20-1
20-1
20-2
20-2
20-3
20-4
20-4
20-6
20-6
20-8
20-10
20-13
20-14
....
.......
.......
.....
20-15
20-16
19-29
19-30
19-31
21 Optimizing and
Troubleshooting Databases . . . . . 21-1
19-32
.....
Making and distributing design changes . .
Refreshing a design . . . . . . . . . . . . . . . .
Replacing a design . . . . . . . . . . . . . . . .
Design changes and replication . . . . . . . .
19-33
19-35
19-36
19-38
19-40
....
....
20-19
....
21-1
.......
21-1
20-18
.
............
............
21-7
21-8
21-9
Contents xi
..............
Document archiving tool . . . . . . . . . . . .
Viewing a document Archiving Log . . .
Compacting databases
.....
...
Monitoring replication of a database . . . . .
The database replication history . . . . . .
Viewing replication events in the log
file . . . . . . . . . . . . . . . . . . . .
Replication or save conflicts
...
..........
.....
..........
....
..
Updating database indexes and views . . . .
Notifying users of a moved database . . .
Troubleshooting database performance . . .
Users cannot access the database . . . . .
Users experience a delay when
accessing the database . . .
.......
.
....
21-12
21-14
21-14
21-16
21-16
21-19
...
21-31
...
21-31
...
Deletions are not replicating . . . . . . . .
Unexpected deletions occur in a replica .
Deleted documents reappear . . . . . . . .
21-32
21-15
21-18
............
Overview of DOLS developer tasks . . .
21-20
21-21
21-22
21-23
21-24
21-33
21-33
21-25
22-1
22-2
...
22-2
.....
.....
.....
22-4
21-24
21-25
21-32
21-9
..
22-5
22-15
22-22
21-26
21-27
Appendix C Developing
Applications Using MAPI . . . . . . . . C-1
21-28
..
21-29
.....
21-30
21-30
21-30
21-31
Index . . . . . . . . . . . . . . . . . . . . . . . Index-1
....
Database replicas are different sizes . . .
The database stops replicating
......
Preface
The documentation for IBM Lotus Notes, IBM Lotus Domino, and IBM
Lotus Domino Designer is available online in Help databases and, with the
exception of the Notes client documentation, in print format.
License information
Any information or reference related to license terms in this document is
provided to you for your information. However, your use of Notes and
Domino, and any other IBM program referenced in this document, is solely
subject to the terms and conditions of the IBM International Program
License Agreement (IPLA) and related License Information (LI) document
accompanying each such program. You may not rely on this document
should there be any questions concerning your right to use Notes and
Domino. Please refer to the IPLA and LI for Notes and Domino that is
located in the file LICENSE.TXT.
System requirements
Information about the system requirements for Lotus Notes and Domino is
listed in the Release Notes.
Related information
In addition to the documentation that is available with the product, other
information about Notes and Domino is available on the Web sites listed
here.
xiii
Table of conventions
This table lists conventions used in the Notes and Domino documentation.
Convention
Description
italics
monospaced type
file names
Title
Description
Upgrade Guide
Installing Domino
Servers
Administering the
Domino System,
Volumes 1 and 2
Administering Domino
Clusters
Description
Title
Description
Planning Applications
Chapter 1
Introduction to IBM Lotus Domino Designer
Welcome to IBM Lotus Domino Designer. Domino Designer is an
integrated application development environment that lets developers
and Web site designers create, manage, and deploy secure, interactive
applications.
This overview introduces some of the features you will use to create
applications.
The Whats new in this release chapter provides quick links to topics
defining the new features in Lotus Domino Designer Release 6.
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:
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:
Pages
Forms
Outlines
Navigators
Views
Folders
Framesets
Shared Resources
Agents
From a database
To start Domino Designer from the Bookmark bar in the Notes client
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.
If you already have a database to work with, you can start Domino
Designer directly from that database. You must have Designer or
Manager access to the database in the ACL.
1. Open the database.
2. Choose View - Design.
Tip You can also right-click the database icon on the Bookmark bar and
select Open in Designer from the list.
Planning Applications
Bookmark bar
Design pane
Work pane
Purpose
Design list
Design pane
Designer bookmarks
Menu bar
Preview buttons
Window tabs
Work pane
Planning Applications
Item
Title bar
Reference tab
Objects tab
Info list
Script area
Errors box
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
Referenc The Reference tab of the Info List is language sensitive; the contents of
e tab
the Reference tab change depending on the language selected. If you
are editing in the Formula language, the window contains
@commands, @functions and fields. If you are editing in LotusScript,
the window contains LotusScript information. If you are editing in
JavaScript, the window contains information about the Document
Object Model. If you are editing in Java, the window contains
Java-related information.
Script
area
Lets you enter formulas in the Script area. Formulas can be written in
Formula language, LotusScript, JavaScript, or simple actions.
Note that you can print source code by selecting File - Print when you
are in the Programmers pane. You can print any code you can view in
the Programmers pane.
Properties boxes 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.
Creating a database
There are three ways to create a database:
Using a template.
The fastest way to create a database is to use one of the Domino
templates included with Domino Designer. Domino Designer
includes templates for creating a variety of applications. Applications
created using one of the Domino Designer templates can be used as
is or customized.
To decide if there is a template that is right for you, see the Table of
Domino Designer templates.
Planning Applications
Properties boxes
If you have access to a database that already has all the elements you
are looking for, you can copy the design and create a new database
with the same features. Once you have created the database, you can
customize it to meet your companys needs.
Pages
Fields
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.
Planning Applications
Pages can be used anytime you are displaying information to the user.
Pages can contain:
Layers
Text
Tables
Graphics
Applets
Links
When you create a form in Designer, users can open the form in the
Notes client from the Create menu. On the Web, you must provide a
button or action that opens the form. When the user completes the form
and saves it, the information is saved as a document. When a user
reopens the document, the document uses the form as a template for
displaying the data.
For more information on forms and documents, see the chapter
Designing Forms.
Fields
Fields are the elements on forms that collect data. Each field on a form
stores a single type of information, which is stored in documents. A
fields data type defines the kind of information a field accepts.
You can create fields in the following data types:
Text
Date/Time
Number
Dialog List
Check box
Radio button
Listbox
Combo box
Rich text
Authors
Names
Readers
Password
Formula
Time zone
Color
Views
Folders
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.
Planning Applications
Folders
A folder is a container that stores documents. Folders have the same
design elements as views, and you design folders in much the same way
as a view. The difference between folders and views is that a view
always has a document selection formula that collects and displays
documents automatically. A folder remains empty until users or
programs add documents to the folder.
For more information on folders, see Lotus Notes 6 Help.
Creating navigation
Every application needs to include a way to navigate from one place to
another. You add navigation to an application using:
Outlines
Navigators
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
1-12 Application Development with Domino Designer
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.
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.
Navigators
Navigators are graphical road maps that direct users to specific parts of a
database. They let users find documents or take actions without having
to open views. Navigators are like image maps. You can create hotspots
on a graphic that take the users to links within or outside of your
application. You can embed navigators on forms or pages. Navigators
can take the place of the folder pane or work in conjunction with it.
For more information, see the chapter Designing Navigators.
Planning Applications
Actions
Hotspots
Agents
Actions
Actions automate tasks that are found on Notes menus or tasks defined
by formulas or a LotusScript program. Users click a button, hotspot, or
pick from the Action menu to execute the action. For Web applications in
particular, use actions to simulate Notes menu items.
Hotspots
A hotspot is text or a picture that a user can click to perform an action,
run a formula or script, or follow a link. The hotspot can be a link to
another Web site, database, or element in a database. It can be a button,
pop-up, or an action as well.
Agents
Agents are programs that perform a series of automated tasks according
to a set schedule or at the request of a user. An agent consists of three
components: the trigger (when it acts), the search (what documents it acts
on), and the action (what it does). Use agents to set up user-activated
tasks, or background tasks, in any part of a Domino application. Agents
can be simple, such as moving documents to a folder, or complex, using
Java programs to run multiple automated tasks at scheduled times.
Agents are stored with databases, but you can use them to run
automated tasks for views, documents, fields, and databases.
For more information, see the chapter Adding Automation to
Applications.
Planning Applications
Adding automation
Hide/when formulas
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.
Style sheets
JavaScript libraries
Non-NSF files
Planning Applications
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.
Planning Applications
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. These
libraries are made up of several JSP tags. JSP tags are similar to HTML
tags, except that they contain instructions for executing complicated Java
programming logic, instead of instructions for defining how to format
the contents of the tag. The logic in the Domino tag library is specifically
designed to retrieve, edit, and otherwise manipulate Domino data, but
the complicated logic itself always takes place behind the scenes. Once
the libraries are included in a page, all the page developer has to do is
include a tag in a page and all the programmatic capabilities of the tag
are automatically available.
Planning an application
Before you begin any design work, create a plan for how users will access
and use your application. At the minimum, your application plan should
address these questions:
Will users access the application from a Notes client only , Notes and
a Web application , or Web browser only?
What demands will be placed on the application that is, will there
be large views containing many documents?
How will users know how to navigate and use the application?
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.
2-1
Planning Applications
Chapter 2
Planning an Application
Security
The security model is different for Notes and Web users. Manager and
Designer access to databases is not available for Web users as it is for
Notes client users. Therefore, do not include LotusScript actions or
agents that require a user to have Manager or Designer access to
complete the task.
Authenticating users requires extra planning for applications available
via Web browsers. Most Web applications provide some level of access
for Anonymous users. For higher levels of access, you must match Web
users to the names in the Domino Directory. Because Web users
generally login to an application using an abbreviated name, consider
using the @UserName command to return their fully distinguished Notes
name for proper authentication.
Forms
Many times the same form will work in both a Notes client application
and a Web application. You can compensate for minor differences in
functionality using hide-when formulas for design elements on a form.
At times you may want to display one subform for a Notes client and
another for a Web browser. In this example, the formula calls one of two
computed subforms named NS and IE that include browser-specific code
by using the CGI variable for browser type in @BrowserInfo:
@If(@BrowserInfo("BrowserType")="Netscape";"NS";"IE")
Each subform has its own JavaScript Header, so you can selectively
include JavaScript as well as other data types in your forms by using
computed subforms.
All subforms open simultaneously with the main form. You cant display
a computed subform on the basis of calculations after the page opens.
Forms are quite flexible in a mixed-client environment. Using
programming designed to support multiple clients, you can program a
form event to execute one set of commands when accessed by a Notes
client and another set of commands when accessed by a Web client. In
some cases, you may find it easier to design two completely separate
forms one for a Notes client, and another for a Web client. In this case,
you assign the same alias to the two forms, hide one from the Notes
client, and the other from the Web client, so that the correct form
displays in the correct context.
Planning an Application 2-3
Planning Applications
Fields
Consider that not all field types that are supported in a Notes application
are supported in a Web application. For example, the Web does not
support a multivalue keyword field that allows users to enter choices not
in the list. The workaround for this is to use two fields in a Web
application one field to accept new choices for the list and the other
field to build and display the list. If users can access the application from
either the Notes client or the Web, you must synchronize the field values
so that all users see the same values.
If you can solve a problem with two versions of a field formula, one that
works in Notes and the other that works on the Web, then include both
in the form and use the Hide from Notes/Hide from Web browsers
selection in the Field Properties box to display one or the other.
If youre using the same form for both Notes clients and browsers, the
Hide from Notes/Hide from Web browsers attribute on a design
elements properties can be very useful. However, note that hidden
has a different meaning for each client. In Notes, hidden fields are still
present in the document and can be used in scripted calculations. Fields
hidden from Web browsers, on the other hand, are cut out of the
document by Domino before the page is served to the browser. The field
contents are not available to be used by JavaScript.
Tip: If you want to make fields invisible in a browser, but keep their
contents available to JavaScript, dont use the Hide from Notes/Hide
from Web browsers and dont put type=hidden into the fields HTML
Body Attributes objects. Make sure that:
Their hide-when properties are set correctly for the Notes client.
Be aware that names and values treated this way are not secure. They
can still be seen by any user who clicks on the browsers View Page
Source function.
Remember, too, that not all fields can be passed to a browser this way
the password field, for example, $Updatedby, $HtmlHead, and any
objects that contain NULL characters (which includes users public keys)
because NULLs cannot be expressed in HTML.
2-4 Application Development with Domino Designer
Views
Displaying Notes views in a Web application results in a loss of some
display attributes unless you first embed the view on a page. You can
embed multiple views on a page to achieve a sophisticated layout. You
can also specify a view template that will apply uniform style properties
to embedded views for use in Web applications.
For more information, see the topic Displaying views in Web
applications in the chapter Designing Views.
Navigation
Using an outline for navigation can provide a uniform structure for
Notes client and Web browser users. An outline lets users open views,
pages, or URLs. Embed the outline on a page to preserve all of the
display properties for Web browser users.
You might also consider an imagemap as a navigation tool.
For more information, see the chapter Navigating an Application later
in this book.
Agents
Programming with agents provides all of the processing power for an
application. Using agents is where you will encounter the most significant
differences in developing applications for Notes client and Web browsers.
Although you should be able to share a lot of code, there will be instances
when you need to write certain agents for the Web, and certain agents for
the Notes client. The key programmable server events for Web applications
are WebQueryOpen and WebQuerySave. To avoid performance problems,
use these events to perform key tasks, and use background agents to
perform more complex processing. Agents can be run from the Web using
@Command([ToolsRunMacro]) or @URLOpen formulas.
Planning an Application 2-5
Planning Applications
Actions
By default, Web agents run under the identity of the agent author (the
person who saved the agent). To run agents under the identity of the
Web user, open the Agent Properties box, click the Design tab, and select
Run Agent as Web user option in the For Web Access section. This
option can provide more security, because when a Web user tries to run
an agent with this property set, Domino prompts the user for a name and
password and checks them against the invokers rights in the database
ACL.
In the Notes client, many form, field, and button events can be scripted in
either JavaScript or LotusScript (or, to be sure, @formulas). Depending
on how your application uses scripted events, this may mean that you
write your agents using JavaScript and use the same form for both Notes
and Web clients. There are differences in the capabilities, however.
JavaScript in the Notes client has access only to the data in the currently
open form it lacks the access to the front-end and back-end Domino
Objects of LotusScript. Your application may work best if you write
LotusScript for execution in the Notes client and JavaScript for browsers,
and use hide-whens or separate forms to keep the execution straight.
Keep in mind that many @functions and @commands dont work in a
browser. The @functions that dont work fall into three major categories:
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.
Planning Applications
An HTML editor
JavaScript libraries
Pages
Applets
Java servlets
Change from the Lotus Software color palette to a Web color palette
to provide greater color fidelity on the Web. To change palettes,
choose File - Preferences - User Preferences. Check Use Web
Palette on the Advanced options list of the Basics page.
Set views, outline controls, action bars, and rich text fields to be
displayed as Domino applets when viewed with a browser.
For more information, see the topic Domino Applets.
Check the Access Control List (ACL) setting to make sure it allows
appropriate access for Internet users.
For more information, see Setting up database access for Internet
users.
Planning Applications
Class
Style
Title
Other
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:
The applets use the Java Developers Kit (JDK), Release 1.1.8 to
support Java-enabled Web browsers. The only fonts available are
typically Courier, Helvetica, and Times.
Outline applet
The outline applet lets Web users work with outlines embedded in a
page or form.
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.
Editor applet
The editor applet lets Web users change the font, color, size, and
style for text in rich text fields.
Planning Applications
For a complete description of how the applets work, see the description
for each design element:
When users read, hide information that is useful only when users
create or edit documents.
When users edit, print, and copy, hide information that is useful
when users read documents.
Planning Applications
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.
Then
Printed
Embedded
For more information on using Single Sign On, see Administering the
Domino System.
Planning Applications
Echo the action button tasks in the Action menu and echo the forms
you create in the Create menu.
Screen readers cannot always provide information about action
buttons. For this reason, when you design an application, you should
provide users with an alternative way to trigger actions and create
forms. Echoing action button tasks in menus provides this alternative
route. To echo an action button on the Action menu, open the
properties box for the action and select Include in Action Menu. To
provide access to a form that might otherwise be triggered by an
action button in a view, for instance, open the properties box for the
form and select Include in menu.
Place the most frequently accessed menu items at the top of the
menu list.
The vertical order in which the Action buttons appear in the action
pane indicates the order in which they appear on the Action menu
and bar. You can create the order in which forms appear on the
Create menu. You can cut and paste the most frequently used actions
to the top of the list in the action pane. To place the form that is most
often accessed by users at the top of the Create menu list, insert the
number 1 followed by a period (1.) in front of the name in the forms
name field. You can number the remaining forms accordingly to
control their order in the menu list.
Check that the accelerator keys assigned to menu items make sense.
If an application has more than one menu item that starts with the
same letter, Notes assigns a default accelerator key using the first
letter not already in use. If the accelerator key assigned to an action
or form does not make sense, you can force the assignment of a
specific key. In the name field for the action or form, add an
underscore before the letter you want to assign as the accelerator
key. For example, if you want to assign p as the accelerator key for
the form entitled Complete evaluation, enter Com_plete evaluation
in the forms name field.
Avoid:
Layout regions.
Planning Applications
Planning Applications
Unicode support
Planning Applications
Maximum limit
Database size
Response levels in a
hierarchical view;
number of documents
per level
Characters in names
Fields in a database
Columns in a table
64
Rows in a table
255
Views in a database
Forms in a database
Columns in a view
Documents imported
into a view
Cascading views in a
database
200
46
continued
Planning Applications
Item
Maximum limit
250
Documents in a view
Roles in an Access
Control List
75 Roles
ID password length
63 characters
Authorized users on a
multiple password ID
8 users
Outline entries in an
outline
~21,000 entries
Chapter 3
Creating an Application
Domino databases
All Domino applications begin with a Domino database. Domino
databases are the containers for your application. Databases hold the
data, logic, and design elements for your application. Your Domino
application can be made up of one or more Domino databases.
DATABASE
Design Elements:
Pages, Forms, Views ...
DOCUMENT
Fields
Data
Documents
FIELD
Field Type:
Rich Text
Field Name:
Body
Data:
'Dear John ...'
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.
3-1
Building Applications
Creating databases
There are three ways to create a new database:
Using a template
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:
File names can be any number of characters long (within the limits
of your operating system).
File names must end with the NSF file extension.
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:
Click Show advanced templates and select a template from the
list.
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.
Building Applications
2. In the Title field, enter a title for the new database, using a maximum
of 96 characters.
Copy the design of the database and use it as the basis for a new
application.
You can use the database as is, or you can modify it. If you modify a
database, be sure to protect the individual design elements from being
overwritten by a design refresh or replace.
Building Applications
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 6
Help. Or, go to http://www.lotus.com/ldd/doc to download or view
Lotus Notes 6 Help.
For information on creating toolbar buttons to run custom formulas, see
the topic Toolbars in the Domino Designer Programming Guide.
Creating an Application 3-7
Building Applications
Do this
Change the bookmark icon color scheme Choose File - Preferences - User
on the Bookmark bar
Preferences.
Click Basics.
Under Display Options, choose a
color scheme in the Icon color
scheme list.
Restart Designer to see your
changes.
Change a bookmark icon or a Bookmark
folder icon
Building Applications
A folder on the Bookmark bar for easy access to items that you use
frequently such as applications, databases.
4. In the Select a location for the new folder list box, select the
database in which you want to create the folder and click OK.
Designer places the folder at the end of the database design element
list. You can now populate this folder with design elements and
other folders.
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:
Building Applications
Image resources
Image resources are graphic files that can be used throughout your
application. While image resources can be GIF, JPEG, or BMP format,
they are saved in Designer as GIF or JPEG. An image resource can be
used as a graphic or icon on pages, forms, subforms, action buttons,
outline entries, and as background images on forms, documents,
pages, table cells, and action buttons. For more information, see the
topic Creating an image resource later in this chapter.
Shared Fields
Subforms
A subform is a collection of fields, graphics, buttons, and actions you
plan to use in more than one form. For example, you might create a
corporate letterhead in a subform and then use the subform on a
variety of business forms. For more information, see the topic
Subforms in the chapter Designing Forms.
Script libraries
A script library is a place for storing code that can be shared in the
current application using LotusScript, JavaScript, and Java or in
other applications using JavaScript and Java. Using script libraries
allows you to maintain code in one place. For more information
about script libraries, see Using script libraries in the Domino
Designer Programming Guide.
Shared actions
Use shared actions in forms, pages, folders, or views to set up
user-activated tasks. You can add shared actions to the Actions menu
or as buttons on the action bar. In particular, actions let users
complete tasks when accessing Domino databases on the Web. For
more information on shared actions, see the topic Creating and
Creating an Application 3-13
Building Applications
You can define a field for use on more than one form. For example,
many forms have a creation date field; you can define this field once
and reuse it. When you define a field as a shared field, Designer
displays the field with a dark border and adds the field name to a list
of shared fields available for use in a database. For more information,
see the topic Creating shared fields in the chapter Designing
Fields.
Comment
Additional information that is helpful in identifying the file
resource.
Needs refresh
In the File Resource properties box, the Needs refresh check box is
selected.
1. In the files work pane, highlight the file resource that you have
edited.
2. Click Refresh.
3. In the Open dialog box, select the updated file name (it appears
preceded by a tilde (~)), and click Open.
Building Applications
The file resource is refreshed. The refresh icon disappears from the
files work pane and the Needs refresh check box in the File
Resource properties box is cleared.
In the File Resource properties box, the Needs refresh check box is
selected.
MIME type - the MIME type of the file resource for Web clients. The
Content-Type header of the HTTP response is set to this value.
Domino Designer fills in this field if it recognizes the extension of the
file resource (for example, a GIF image file or an EXE application file).
Images across and Images down (if you are creating image sets).
Colorize grays - lets an image blend with the users system colors.
Building Applications
Needs refresh - adds the refresh symbol next to the image resource
name in the list of images and targets it as an image to be refreshed.
Design tab
On the Design tab of the Image Resource Properties box, select any of the
following design options:
Field or box
Description
To colorize grays
If you want an image to blend with the users system colors, select the
option Colorize grays on the Basics tab of the Image Resource
Properties box. When enabled, the grays in an image that use the Lotus
palette change to the color scheme of the users operating system. This
feature lets the image resources blend in with the other elements of the
users system, such as dialog boxes and menu bars.
4. Under Databases, select the database from which you want to insert
the image resource.
5. Under Resource type, select Images.
6. Under Additional resources, select an image to insert from the list
of images.
7. Click OK to display the image in the form, document, or page.
Building Applications
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.
5. Type a new image resource name. You should also specify an alias if
there is a chance that the image resource could be renamed. To
specify an alias, after the image resource name, type a vertical bar (|)
followed by the alias name. For example, ImageName|ImageAlias.
The new name appears in the image resource list.
Building Applications
3. Click Open.
State
Normal image
First position
Mouse-over image
Second position
Selected image
Third position
Mouse-down image
Fourth position
Building Applications
2. In a single GIF, BMP, or JPG file, line up the images vertically, with a
one-pixel-wide well between each one.
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 Lotus Notes 6 Help.
Or, go to http://www.lotus.com/ldd/doc to download or view Lotus
Notes 6 Help.
To allow document locking
1. Specify an administration server for the database. This server will be
used as the master lock server when a user locks a document.
2. Choose File - Database - Properties and click the Basics tab.
3. Select Allow document locking.
To prevent document locking
1. Choose File - Database - Properties and click the Basics tab.
2. Deselect Allow document locking.
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.
Expandable rows appear in views that contain categorized columns;
document sections are also expandable. For your icons to be visible in a
view, each image should be no wider than 6 pixels. The font size of the
column text determines how high your image should be. For a column
with text that has a font size of 10, each image should be no higher than
12 pixels.
1. Using a graphics program, create an image well by importing two
images into one graphic. One of the images will appear as the icon
that expands a row or section, and the other will appear as the icon
that collapses the row or section. Place the expand image on the left
and the collapse image on the right.
2. In Designer, create an image resource from the icon file.
Internet Explorer
Netscape
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.
Building Applications
4. Click OK.
5. Close and save the Location document.
3. Click OK.
You must modify the applications access control list. The Web
preview process uses the access assigned to -Default- or, if available,
an entry called Anonymous. One of those entries needs Reader
access to let you preview pages, framesets, documents, navigators,
and views. One of those entries needs Author access with create
document permission to let you preview forms.
Building Applications
localhost
Chapter 4
Designing Pages
Pages
Pages and forms are similar in certain ways. A page is a database design
element that displays information. Pages can be used anywhere in your
application that you have text, graphics, or an embedded control, such as
an outline, to present to the user. A page or form can contain the following:
Elements to use
on a page
Description
Actions
Applets
Attachments
Computed text
Embedded
elements
Graphics
4-1
Building Applications
This chapter describes how to design pages for Web and Notes
applications and includes detailed descriptions of the components you
can add to a page. The components you can add to a page can also be
added to forms and subforms.
Elements to use
on a page
Description
Horizontal rules
HTML
Imagemaps
JavaScript libraries You can find and insert JavaScript libraries into a page,
form or subform. For more information on inserting
JavaScript libraries, see the topic Inserting a JavaScript
library in this chapter.
Layers
Links
Sections
Description
Tables
Text
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.
Building Applications
Elements to use
on a page
Action
Background
tab
Launch tab
Security tab
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:
Options for displaying pages
Create an outline entry that opens The topic Outlines in the chapter
the page.
Designing Navigation for an Application.
Set the database launch property
to launch the page when the
database is opened.
Building Applications
Size
Domino maps the text size you select in Designer to an HTML text size.
The following table lists the text size in Notes and the corresponding
HTML size. Note that Domino does not map font sizes to HTML heading
tags (H1, H2, and so on).
Maps to HTML size
11
3 (default size)
13
17
23
greater than 23
Preserving spaces
To align a column of numbers or to preserve or insert spaces, use the
default monospaced font. On a Windows system, the default
monospaced font is Courier. Domino converts the default monospaced
font to a monospaced font on the Web and preserves any spaces you
enter.
Text colors
Web users see the same approximate text colors as Notes users, but the
colors may not match exactly.
Building Applications
Select Value (located under Computed Text on the Objects tab of the Info
List).
In the Script area, enter the formula:
@Name([CN];@UserName)
If the users name is Sara Ryan/Acme, when she opens the page or form
she will see:
Welcome Sara Ryan.
Note Domino publishes a <span> tag around the computed text for
access via JavaScript.
Select a solid color. You can select a color from the palette or
customize colors by using the color wheel button in the top right
corner of the Color box. To set the color of your horizontal rule to
your systems color scheme, click the Color box menu and click the
System button.
To select a solid color, select a color and click the solid rectangle.
To select a gradient color, select the first color, click the shaded
rectangle and select the To color.
Select No 3D shading.
Tabbed tables Tables that let users switch rows by clicking on tabs
at the top of the table.
Building Applications
user clicks the tabs at the top of the table to select which row displays.
With programmable tables, the user clicks on an action, a link, or an
outline entry to select which row appears.
You write a formula in the Script area of the Programmers 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 companys 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
companys 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.
To create a programmable table
1. Move the cursor to where the table will appear on the page or form.
In a document, you must be in a rich-text field.
2. Choose Create - Table. The Create Table dialog box appears.
3. Select the number of rows and columns for the table.
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:
In the Table HTML Tags field, enter a Name/ID for the table.
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.
2. Enter text and graphics in each row and column of the table.
3. Enter a line of text on the page (below the table) that is related to
what users will see when that row of the table is displayed. Enter a
line for each row of the table. For example, if you have a two-row
table one row has the company location and the other has the
company history enter two lines of text:
Our company locations
Our company history
4. Select the text for the first line and choose Create - Hotspot - Action
Hotspot.
5. Select the Hotspot Click event in the Objects tab of the Info List in the
Programmers pane.
6. Enter a formula in the Script area of the Programmers pane that sets
the field $CompanyInfo to the name of the row of the table you want
to display.
FIELD $CompanyInfo:= "a";
@Command([RefreshHideFormulas])
7. Select the second line of text and create a hotspot with the formula:
FIELD $CompanyInfo:= "b";
@Command([RefreshHideFormulas])
When users click on the first hotspot they will see the text and graphics
in the first row of the table only. When they click on the second hotspot
they will see the text and graphics in the second row of the table only.
For more information about writing formulas, see the Domino Designer
Programming Guide.
Building Applications
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:
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.
Select the border style. The border appears around the section.
Select a border color.
3. On the Expand/Collapse tab:
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.
Select Hide title when expanded if users dont need to see the
section title when the fields are displayed.
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.
Creating links
You can create text or graphic links that users click on to navigate to
other parts of an application or to external sites on the Web. In the
properties box, you can set how the link displays to users. You can use a
different color text for text links, or a hotspot around a graphic that
shows when a user moves the mouse over it. Domino converts these links
to Hypertext links on the Web.
Pages
Forms
Framesets
Views
Folders
Navigators
When you link to a named element, the link references the elements
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.
To copy and paste a link
1. Select the design element you want to link to.
2. Choose Edit - Copy as Link - Named Element.
3. Select the text or graphic that will serve as the link and choose Create
- Hotspot - Link Hotspot.
The HotSpot Resource Link Properties box appears.
4. At the Hotspot Info tab, click the Paste icon.
5. (Optional) Enter a target frame for the link.
6. (Optional) Select Show border around hotspot. (Not supported on
the Web.)
Building Applications
4. Enter a full URL (including protocol) for the value. For example:
http://www.lotus.com
Example: links
For each concert schedule you send out, you want to provide a
cross-reference for more information about the performer. Create a link
in the document you create for a specific concert and specify a URL with
detailed information about the performer.
1. Edit the document announcing the concert.
2. Select text for the link hotspot.
3. Choose Create - Hotspot - Link Hotspot.
4. At the Hotspot Info tab of the Hotspot Resources Link Properties
box:
Type: Select URL
Value: Specify the Web address; for example:
http://www.concertseries.org/performers/luke.html
5. Save the document.
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.)
Designing Pages 4-15
Building Applications
3. On the Hotspot Info tab of the Hotspot Resource Link Properties box,
select URL as the type of link.
Background graphics
Preparing graphics
Your goal, when preparing a graphic, is to have it look as much as
possible like the graphic you created in your drawing program. How
graphics look depends on the users viewer, operating system, and color
mode.
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.
Create a picture
Building Applications
2. Check Use Web Palette on the Additional Options list of the Basics
tab. If this option is unchecked, Designer uses the Lotus color palette.
Building Applications
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.
4-20 Application Development with Domino Designer
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.
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:
Views
Folders
Outlines
Navigators
Date pickers
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.
Building Applications
4. (Optional) Click the embedded element and choose Element <element> Properties to change the alignment, style, or hide options.
Select the JS Header event in the info list under the Objects tab
3.
4.
Import HTML, thus using the source of an existing Web page or form
as the base of a new page or form. Designer renders the imported
HTML on the page, form, or subform already translated from HTML.
Building Applications
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.
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.
To enter HTML directly on a page, form, or subform
1. Open a page, form, or subform.
2. Enter the HTML directly on the page, form, or subform.
3. Open the Properties box for the page, form, or subform (Design <design element> Properties).
4. 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
dont have Render pass through HTML in Notes selected.
To include some HTML on a page, form, or subform
If you do not want the entire page, form, or subform treated as HTML,
you can include some HTML on the page, form, or subform and mark
this text as HTML. Designer serves it correctly to the browser.
1. Enter or paste HTML on the page, form, or subform.
2. Select the text and choose Text - Pass-Thru HTML.
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.
Designing Pages 4-25
Building Applications
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.
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:
Position
HTML properties
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 create a new layer
Follow these steps to create a new layer on a page. Note that you follow a
similar process to create a layer on a form or subform.
1. Click Pages in the Design pane.
2. Click New Page.
3. Choose Create - Layer.
4. Create the contents for the layer, such as text and graphics.
5. Choose Layer - Layer Properties to assign the following layer
properties:
On the Position tab, change the position of the layer.
On the Background tab, select the background color or graphic for
the layer.
On the HTML tab, specify the HTML for the layer.
Building Applications
To delete a layer
1. Select the layer that you want to delete.
Description
Top
Specifies the location of the top Auto aligns the top of the
layer vertically with its original
edge of the layer.
location (insertion point).
Left
Specifies the location of the left Auto aligns the left edge
horizontally with its original
edge of the layer.
location (insertion point).
Width
Height
Z-Index
Default value
Top
Pixels
Inches
Ems
Percent
Left
Auto
Pixels
Inches
Ems
Percent
Width
Auto
Pixels
Inches
Ems
Percent
Building Applications
Description
Height
Pixels
inches
Ems
Percent
Z-Index
Auto
Integer
ID
Class
Use the Class attribute to apply a CSS class for a defined object.
For example, if the objects name is ZipCode, the class could be
Numeric. CSS styles are defined in the HTML Head Content
event for a form or page.
Style
Title
Other
Building Applications
Tag
Repeat once
Repeat vertically
Repeat horizontally
Center
Size to fit
5. Set the frameset that the page will be associated with and the frame
within that frameset.
Building Applications
If you have a default style sheet editor, click Open File to edit
the resource.
Click Open With and select an editor to open the style sheet
resource.
A property set via the style sheet resource takes precedence over a
conflicting property set in the elements properties box.
For image, the following properties are applied to the image caption:
color, font-weight, font-style, font-size, font-family, and
text-decoration.
The visibility property is not listed in the table because of its minimal
support. It is supported only for the <DIV> tag for hidden and
collapse values.
Building Applications
List of Properties
Document
<Body>
Layer
Paragraph
<DIV> <P>
List Item
<LI>
Table
Cell
<TABLE> <TD>
Graphic
<IMG>
background-color
Yes
Yes
N/S
N/S
Yes
N/A
background-image
N/S
N/S
N/A
N/A
background-repeat
N/S
N/S
N/A
N/A
Yes
border-bottom-width
N/A
N/A
Yes
Yes
Yes
Yes
Yes
border-color shorthand
N/A
N/A
Yes
Yes
Yes
Yes
Yes
border-left-width
N/A
N/A
Yes
Yes
Yes
Yes
Yes
border-right-width
N/A
N/A
Yes
Yes
Yes
Yes
Yes
border shorthand
N/A
N/A
Yes
Yes
Yes
Yes
Yes
border-style shorthand
N/A
N/A
Yes
Yes
Yes
Yes
Yes
border-top-width
N/A
N/A
Yes
Yes
Yes
Yes
Yes
border-top-color
N/A
N/A
Yes
Yes
Yes
Yes
Yes
border-top-style
N/A
N/A
Yes
Yes
Yes
Yes
Yes
border-width shorthand
N/A
N/A
Yes
Yes
Yes
Yes
Yes
color
Yes
Yes
Yes
Yes
Yes
Yes
Yes
font-family
Yes
Yes
Yes
Yes
Yes
Yes
Yes
font-size
Yes
Yes
Yes
Yes
Yes
Yes
Yes
font-style
Yes
Yes
Yes
Yes
Yes
Yes
Yes
font-weight
Yes
Yes
Yes
Yes
Yes
Yes
Yes
height
N/A
Yes
N/A
N/A
N/A
N/A
N/A
left
N/A
Yes
N/A
N/A
N/A
N/A
N/A
margin-bottom
N/A
N/A
Yes
Yes
Yes
N/A
Yes
margin-left
N/A
N/A
Yes
Yes
Yes
N/A
Yes
margin-right
N/A
N/A
Yes
Yes
Yes
N/A
Yes
margin shorthand
N/A
N/A
Yes
Yes
Yes
N/A
Yes
margin-top
N/A
N/A
Yes
Yes
Yes
N/A
Yes
padding-bottom
N/A
N/A
Yes
Yes
Yes
N/A
Yes
padding-left
N/A
N/A
Yes
Yes
Yes
N/A
Yes
padding-right
N/A
N/A
Yes
Yes
Yes
N/A
Yes
padding shorthand
N/A
N/A
Yes
Yes
Yes
N/A
Yes
padding-top
N/A
N/A
Yes
Yes
Yes
N/A
Yes
position
N/A
Yes
N/A
N/A
N/A
N/A
N/A
continued
List of Properties
Document
<Body>
Layer
Paragraph
<DIV> <P>
List Item
<LI>
Table
Cell
<TABLE> <TD>
Graphic
<IMG>
text-decoration
Yes
Yes
Yes
Yes
Yes
Yes
Yes
top
N/A
Yes
N/A
N/A
N/A
N/A
N/A
width
N/A
Yes
N/A
N/A
N/A
N/A
N/A
z-index
N/A
Yes
N/A
N/A
N/A
N/A
N/A
A page or form has events associated with it that you can use to run a
simple action, a formula, a LotusScript routine, or a JavaScript program.
To see what events are available for a page or form, open the page or
form in Designer and look at the list of events in the Objects tab in the
Programmers pane. When you select an event, the programming choice
for that event appears to the right of the Object tab. For example, if you
select the onLoad event for the Web, you program it using JavaScript or
Common JavaScript. If you select the onLoad event for the client, you can
use JavaScript, Common JavaScript, LotusScript, or Formula.
For information on each event and an example of how to program them,
see the Domino Designer Programming Guide.
Building Applications
}
var count = eval(document.cookie.substring(countbegin,
countend)) + 1;
document.cookie=cookieName+"="+count+";
expires=Saturday, 03-Apr-2010 08:00:00 GMT";
}
function getTimes() {
if(document.cookie) {
var index = document.cookie.indexOf(cookieName);
if (index != -1) {
var countbegin = document.cookie.indexOf("=", index)+
1);
var countend = document.cookie.indexOf(";", index);
if (countend == -1) {
countend = document.cookie.length;
}
return document.cookie.substring(countbegin,
countend);
}
}
return 0;
}
Building Applications
Chapter 5
Designing Forms
Forms
Forms, like pages, display information. Everything that can be done with
a page can be done with a form. What sets forms apart from pages is that
forms can be used to collect information. A form provides the structure
for creating and displaying documents, and documents are the design
elements that store data in the database. When a user fills out the
information in a form and saves it, the information is saved as a
document. When a user opens the document, the document uses the
form as a template to provide the structure for displaying the data.
Here are the basic steps involved in designing a form:
1. Decide on the purpose and type of form you need. To do so,
consider:
The kind of information you want to collect and which elements
you need.
How and where the resulting documents, which contain and
display the collected information, appear.
2. Create the form.
3. Add elements to the form.
4. Name the form.
5. Assign its properties.
6. Preview and test the form in the browsers users access it with.
5-1
Building Applications
Form elements
You can use the following elements in a form or subform. Many of these
elements can also be used in pages.
Element to use on Description
a form or subform
Actions
Actions automate tasks for the user. Add actions to the menu
in the Notes client, or add actions with buttons or hotspots on
a form, subform, or page. For more information, see the topic
Actions in the chapter Adding Automation to Applications.
Applets
Attachments
Automation
Computed text
Embedded
elements
Description
Fields
Fields are the design elements that collect data. You can
create fields only on forms or subforms. Each field on a
form stores a single type of information. A fields field type
defines the kind of information a field accepts. You can
place fields anywhere on a form. For information on fields,
see the chapter Designing Fields.
Graphics
Horizontal rules
HTML
Imagemaps
JavaScript libraries You can find and insert JavaScript libraries into a page,
form or subform. For more information on inserting
JavaScript libraries, see the topic Inserting a JavaScript
library in the chapter Designing Pages.
Layers
Layout region
Building Applications
Element to use on a
form or subform
Element to use on a
form or subform
Description
Links
Sections
Shared resource
Images
JavaScript libraries
Shared fields
Subforms
Style sheets
HTML Files
Subforms
Tables
Text
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:
Condition
Building Applications
When a user creates and fills out the information in a form and saves it,
the information is saved as a document. When a user opens the
document, the document uses the form as a template to provide the
structure for displaying the data. When designing forms, you should
consider where and how the resulting documents will be displayed.
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.
Building Applications
For more information on writing form formulas, see the Domino Designer
Programming Guide.
Profile forms
To delete a form
Remove a form when users no longer need it. After you delete the form,
documents that were created with the deleted form are displayed with
the default form instead. After you delete a form, to prevent users from
receiving a form cant be found message, create an agent that reassigns
the form name.
For information on using agents to reassign documents to a new form,
see the topic Using agents to update documents affected by form
changes in the chapter Completing an Application and Managing
Design Changes. changes.
1. Open the database.
2. In the Design pane, click Forms.
3. Select the form you want to delete.
4. Press DEL or choose Edit - Delete.
Use tables to align elements on a form. Nested tables give you very
precise control over how you present content. In addition, you can
use tables to create certain text effects, such as having text wrap
around a picture.
Computed fields are evaluated from the top down and left-to-right.
Place dependent fields after the fields they depend on.
Use centered text at the top of a form only. It tends to get lost when
used farther down on the form.
Hide elements that users dont need to see when they are editing,
reading, or printing. In particular, hide nonessential graphics while
printing.
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.
Building Applications
Name requirements
Keep the following in mind:
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 form.
You can also reassign existing documents to the new form, and rewrite
formulas or reassign documents if the form name is translated. The form
name and its aliases are separated by a vertical bar (|).
If a form has only one name, it appears on the Create menu and in the
documents FORM field. If there are two or more names, the forms first
(leftmost) name always appears on the Create menu, while the forms
last (rightmost) name, which is typically the alias, appears in the FORM
field. Sometimes a form can have multiple names usually due to
translation. In those cases the middle names are ignored. As long as the
alias does not change, documents will display using the original form
and all formulas referencing the form will continue to work.
Tip If you add an alias to a form that is referred to in an existing view
(or folder) selection formula, the formula will not display documents
created or edited after the alias is assigned. It is good design practice to
assign an alias at the same time you name a form to avoid such problems.
To add an alias
1. Choose Design - Form Properties to open the Form Properties box.
2. In the Name field (at the Form Info tab), add a vertical bar (|) to the
right of any other names. Then add an alias.
In the following example, Interview is the alias and Main Topic is the
original name:
Main Topic | Interview
5-10 Application Development with Domino Designer
Inter_view
Link Message
Phone Message
Building Applications
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:
For example, this formula opens a new Main Topic document in the
current database:
@Command([Compose];"Main Topic")
Building Applications
@Command([Compose];"":"database";"formname")
At the Conflict Handling section of the Form Info tab, choose one of
the following options for the form:
Once the user starts to create fields on the form using an external data
resource, the default metadata object can be changed.
To define a header on a form
If you are designing a form for a Notes application, you can define a
header that does not scroll off the screen when the user scrolls down the
form or document created with that form. For example, in the Notes mail
template, a header displays all of the information contained in the mail
sender and recipient fields. This section remains static while you scroll
through a mail message. Headers can contain any element that a form
can contain. The only caveat is that a table cannot be the first element in a
header; it must be preceded by a text object, even if the text object is
blank.
1. Enter the text, graphics, tables, or other elements you want in the
header region of the form.
2. Move the cursor to the line below where you want the header to
start.
3. Choose Design - Form Properties.
4. On the Header tab select Add header to form to mark off the
header area.
5. Set the display properties for the header.
Height can be set in pixels or as a percentage of the form height.
You can choose Fit to content, which set the heights
automatically depending on the contents.
Select a scrolling option. Auto automatically turns scrolling on
when the content of the header exceeds the space allotted.
Allow resizing lets users reissue the header area. You can
choose this option only when the border width is greater than 0.
Building Applications
Building Applications
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.
3. On the Form Info tab, select None of one of the following versioning
methods, as follows:
Description
New versions
become
responses
Prior versions
become
responses
New versions
become
siblings
Building Applications
Versioning
method
Description
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.
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).
Building Applications
When a user reads the response, the window title displays the total
number of responses to the main document, the response being
displayed, and the subject of the main document. For example, if the
response document is the second of four responses to Icebox 2000, the
title displays as Response 2 of 4 to Icebox 2000.
Using subforms
A subform is a collection of form elements that are stored as a single
object. Subforms can contain the same elements as regular forms.
Subforms save redesign time. When you change a field on a subform,
every form that uses the subform updates. Common uses of subforms
include adding a company logo to business documents or adding mailing
label information to mail and memo forms. A subform can be a
permanent part of a form or can appear conditionally, depending on the
result of a formula. For example, you might offer users a choice of
custom mail forms with different graphics and styles for various types of
mail messages, such as memos, alerts, or letters. Note that field names
used in the subform cant be used elsewhere on the form. Changes you
make to a subform affect all forms and documents that use the subform.
To creating 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.
Render pass through HTML in Lets you paste HTML directly into the
subform. For more information on pasting
Notes
in HTML, see the topic Using HTML on a
page or form in the Designing Pages
chapter.
Do not add field names to
field index
Building Applications
Subform property
Deleting subforms
When a user opens a document that references a deleted subform, the
message Subform: <subform name> not loaded appears on the status
bar. The document opens without any representation of the deleted
subform. When a designer opens a form that references a deleted
subform, the message Subform: <subform name> not loaded appears
on the status bar. When a designer clicks the deleted subform area on the
form, the message Invalid or nonexistent document appears and the
designer cant open the subform.
To avoid these messages, add another subform to the database and give
it the same name as the deleted one.
To delete a subform from a form
You can remove a subform from an individual form, without disturbing
other forms that use it.
1. Click the subform area on a form.
2. Choose Edit - Delete.
3. Adjust the formatting if necessary.
Text
Background graphics
Fields (except for the following fields: color, dialog list, formula,
password, rich text, rich text lite, and time zone)
Buttons
Button graphics
Attachments
Computed text
Embedded elements
Horizontal rules
Hotspots
Image resources
Inserted resources
Java applets
Layers
Links
Objects
Designing Forms 5-25
Building Applications
Layout regions
OLE objects
Page breaks
Pop-ups
Sections
Shared actions
Shared fields
Subforms
Tables
You can hide or collapse a layout region and all its components under
certain conditions. For example, you can hide a layout region when Web
users view the application, or when users edit the form.
You can adjust the size, position, and look of a layout region.
1. Open a form.
2. Click the layout region and choose Design - Layout Properties.
3. Select a different Left setting to move the layout region horizontally.
Elements within the layout region stay in a fixed position, relative to
the borders of the layout region.
4. Select a different Width or Height setting to size the layout region
perimeter.
5. Check Show border to make the layout region borders visible. To
make the borders invisible, uncheck this field.
6. Check 3D style to show the layout region in gray and to show
fields and buttons as they look in dialog boxes.
7. Check Wrap text around region to have text in the form wrap
around the layout region. The default is to have text appear above
the layout region.
8. Click Show grid to see the current spacing between elements.
9. (Optional) Do one or more of the following to align and rearrange
elements:
Click Snap to grid to align all elements with the grid.
Change the grid size if you want a narrower or wider
arrangement of elements.
Building Applications
5. (Optional) Click the Hide tab of the Control Properties box to adjust
the hide properties.
6. (Optional) Choose Design - Send to Back to position the graphic
behind other elements.
Embedded controls
There are three types of embedded controls that can only be used on a
form:
1. Open the form in which you want to add the file upload control.
2. Move the cursor where you want the upload control to appear.
3. Choose Create - Embedded Element - File Upload Control.
4. Select the control and right-click to open the File Upload Control
Properties box.
5. On the Hide tab select Hide paragraph from Notes R4.6 or later.
Create the fields that collect the data needed to display the
embedded scheduler.
Program the embedded scheduler to retrieve the data from the fields.
Building Applications
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.
To program the embedded scheduler
Once you have created the fields for collecting the data, you must
program the embedded scheduler so that it can retrieve the data from the
fields. You can program the embedded scheduler using the following
attributes.
To associate the fields with the attributes:
1. Select the attribute from Objects tab of the Info List and
2. Enter a field name in quotation marks in the Script area of the
Programmers Pane.
Attribute
Description
Required people
items
Optional people
items
Attribute
Description
Rooms items
Resources items
Building Applications
Attribute
Description
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).
To set properties for the embedded scheduler
1. Open the Embedded Scheduler Properties box.
2. At the Info tab, you can set any of the following properties for the
embedded:
Show color legend Checking this displays the busy time color
legend.
Allow sorting Checking this field turns on the sorting button that
is displayed above the attendee names.
Top, Middle, and Bottom titles Lets you specify titles for the top,
middle, and bottom of the embedded scheduler. You can click the
formula symbol for each title and enter a formula that evaluates to a
title.
3. At the Colors tab of the Embedded Scheduler Properties box, you can
customize various foreground and background colors.
4. At the Layout tab of the Embedded Scheduler Properties box, you
can set the width and height properties for the embedded scheduler.
Building Applications
Building Applications
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 profile
document to contain settings that all documents in the database need,
such as environment variables. Use multiple profile documents for more
customizable settings, such as user preferences. A user must have at least
Author access in the ACL of a database to create a profile document that
is available to all users.
You can use any form to create a profile document. After creating the
form, you create a button, action, or agent for the application that uses
either @CommandEditProfile in a formula or UIWorkspace.EditProfile or
NotesDatabase GetProfileDocument in a LotusScript program to create
or retrieve a document. In each case, Notes looks for a profile document
with the form name you specify, and creates a profile document if one
does not already exist. For an example of a profile document, see the
Interest Profile form in the Discussion - Notes & Web template.
For more information about accessing or editing a profile document
using Formula language or LotusScript, see the Domino Designer
Programming Guide.
See the Domino Designer Programming Guide for more information about
Formula language and LotusScript.
In Notes, you can create or edit a profile document by using
@Command([EditProfileDocument]) or @SetProfileField. In Web
applications, use @SetProfileField to create profile documents. Note that
@Command([EditProfileDocument]) does not work on the Web.
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.
Building Applications
10. On the Display tab, add a label and width for the button.
11. In the Programmers pane, click Formula, and write a formula using
@DialogBox. Include the name of the dialog form.
For information on using @Dialogbox, see the Domino Designer
Programming Guide.
For the dialog form, use a layout region with the 3D property
selected.
Although you can design the dialog form in any way, a 3D layout
region most closely resembles a dialog box. A layout region that is 3
inches square is big enough to display a few fields and two or three
buttons.
Place static text labels above or to the left of fields and end them with
a colon (for example, Name:).
For button text with multiple words, use initial capital letters. Use
ellipses for buttons that lead to another dialog box or task for
example, "Show Details"
Building Applications
[OkCancelEdit]
This formula fills the Name field with the users response to the prompt.
The default value is the users Notes name. If the user selects Cancel,
Notes cancels the formula evaluation.
FIELD Name := @Prompt([OkCancelEdit]; "Enter Your Name";
"Type your name in the box below."; @UserName);
[OkCancelList]
This formula captures the users response in a temporary variable called
ComposeType and uses it to create a new report using the appropriate
form.
ComposeType := @Prompt([OKCancelList]; "Report Type";
"Choose a report type."; "Adjustment Report";"Adjustment
Report":"Infant Progress Report":"Toddler Progress
Report":"Preschool Progress Report":"Transition to
Kindergarten Report");
@Do(@Command([Compose]; ""; ComposeType));
5-40 Application Development with Domino Designer
4. In the Objects tab on the Info list in the Programmers pane, select the
Click method for the button, hotspot, or action.
5. In the Script area of the Programmers pane, make sure you have
selected Run - Client - Formula.
6. Write a formula using @PickList and the [Custom] parameter, unless
you want to use [Name] to display a Domino directory or personal
name and address book.
7. Close and save the form.
Using @PickList
The @PickList function looks up the values in a view as @DbColumn
does, but lets the user pick a value from one document. This function is
similar to using @Prompt in a form, but is specifically for use with views.
@Picklist offers the following advantages over formulas that use
@DbColumn or @DbLookup.
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 );
Building Applications
3. For an action, choose View - Action Pane and then click the action.
For button or hotspot, click the form and then click the button or
hotspot.
documents to track, you must add one or both of the following hidden
fields to the form that creates the documents.
Use this field
$ChargeRead
$ChargeWrite
Building Applications
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).
$SectDataName
$SectDataOptions
$SectDataOptions
(continued)
$SectDataRowsAndCols
Building Applications
$SectDataRowsAndCols
(continued)
$SectDataOriginXandY
Building Applications
Example
In Designer, you can view examples of contact printing forms and fields
by opening your Lotus Notes 6 Personal Address Book (NAMES.NSF)
and viewing forms such as Address labels 20 or 30, business.
In Lotus Notes 6, 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.)
Building Applications
Form name
Condition
$$ReturnDocumentDeleted
$$ReturnGeneralError
Copy the forms into the domain catalog database on the Domino
server you are using for domain search.
Building Applications
For domain search, the Notes client uses the form named DomainQuery
in the catalog servers catalog.nsf database as the search form. This form
uses the FTDomainSearch method to implement the search. Web domain
searches can use any form through an OpenForm URL command and
build and invoke a SearchDomain URL command to perform the search,
supplying arguments either as URL command arguments or through
posted field values.
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
none
SearchMax
SearchWv
FALSE
SearchOrder
1 = by relevance
2 = by date ascending
3 = by date descending
4 = use view order (SearchView only)
FALSE
SearchFuzzy
SearchEntry
Start
Count
Scope
Scope of search:
1 = notes databases only
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.
Header Field
Item name
CREATION DATE
_CreationDate
REVISION DATE
_RevisionDate
_Title
_Note_Title
AUTHOR
_Note_Author
For example, to find all documents created before 5 January 2000, use the
following query:
[_CreationDate] < 01/05/2000
There are no field names stored in the document; the dates actually come
from the documents header, not from fields. So you can use these
reserved names with any document, even though they wont appear
among the field items in the Document Properties dialog.
There is no syntax corresponding to the search builder functions to find
documents based on a difference from todays date, for example is in
the last n days. Your agent will have to supply actual dates at runtime
(which it can calculate by adjusting todays date). Keep in mind that date
formats vary based on user settings, and you must use a format that
matches the workstation or server that will evaluate the query.
Customizing Domain search results forms
Search results are displayed using the SearchResults, ResultEntry, and
the DetailedResultEntry form. The SearchResults form defines the layout
of each page of results. The ResultEntry and DetailedResultEntry forms
define the format of a single result within that page, and are repeated for
each result returned. On the Web you specify the name of this form
Building Applications
The Add Search button that appears beside the full text search entry
area in agents lets you search for documents by date created and by
date modified. To write such queries yourself for use with the FTSearch
method, you can use the following special item names:
through the SearchEntry field/argument. The fields below are for the
ResultEntry and DetailedResultEntry forms.
Field Name
Description
DSCreationTime
DSModifiedTime
DSURL
URL to document
DSDBTitle
Database title
DSDocSummary
Document summary
DSDocTitle
Document title
DSDocAuthor
Document author
DSScore
Relevance score
DSSServer
DSType
You can name your results form whatever you want and then specify
your chosen name in the SearchDomain URL or to the FTDomainSearch
LotusScript call. The Web will look for a form named
$$SearchDomainTemplate if you dont name one in the URL.
When designing or viewing a Domain Search results form, it can be
helpful to know where the Domain Indexer finds the titles that it displays
in the results. The Indexer checks each document for the following Notes
fields or items, in the order they are listed here, to use to represent the
documents title: Title, Subject, Headline, and Topic field; window title
(as designated by the developer of that Domino application); and view
summary (using the default form and default view). If none of these
items can be found, the Domain Indexer displays Document has no
title in the results.
In file systems such as Lotus SmartSuite or Microsoft Office, the title
and author are extracted from the document properties fields. For HTML
files, TITLE and AUTHOR tags are used.
How SearchResults and ResultEntry/DetailedResultEntry are used
The LotusScript below is attached to the click event of the Search action
hotspot used by the Notes client on the search form. The lines that call
the name of the results form and the result entry form are bold.
Sub Click(Source As Button)
Dim s As New NotesSession
Dim db As NotesDatabase
Dim w As New NotesUIWorkspace
5-54 Application Development with Domino Designer
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)
If rtype = "1" Then
rformname="DetailedResultEntry"
Else
rformname="ResultEntry"
End If
Select Case sort
Case "R"
stype = FT_SCORES
Case "O"
stype = FT_DATE_ASC
Case "N"
stype = FT_DATE_DES
End Select
Forall values In usestr
If values = "2" Then useint = useint + FT_STEMS
If values = "3" Then useint = useint + FT_FUZZY
End Forall
Forall values In sscope
If values = "1" Then useint = useint +
FT_DATABASE
If values = "2" Then useint = useint +
FT_FILESYSTEM
End Forall
On Error Resume Next
If db.isopen Then
Designing Forms 5-55
Building Applications
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
Start
Count
Hits
TotalHits
SearchMax
SearchWv
(only for URL
command)
SearchOrder
(only for URL
command)
1 = by relevance
2 = by date ascending
3 = by date descending
4 = use view order (SearchView only)
SearchThesaurus
(only for URL
command)
continued
Designing Forms 5-57
Building Applications
Field
Description
SearchFuzzy
(only for URL
command)
SortOptions
(only for Notes
client)
FT_SCORES = by relevance
FT_DATE_ASC = by date ascending
FT_DATE_DES = by date descending
OtherOptions
(only for Notes
client)
SearchEntry
(Domain Searches
only)
SearchView
Text unique identifier of the view being searched. This
(only for SearchView identifier is useful in building subsequent SearchView
URL command)
URL commands.
Scope
(only for
SearchDomain URL
command)
Scope of search:
1 = notes databases only
2 = file system only
0 = both
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
TotalHits
Designing forms
Avoid using large bitmaps or graphics.
Designing fields
Building Applications
Chapter 6
Designing Fields
Fields
A field is the part of an application that collects data. You create fields on
forms, subforms, or in layout regions. Each field stores a single type of
information. A fields field type defines the kind of information a field
accepts, such as text, numbers, dates, or names. When a user, either in a
Notes client or a Web browser, creates a form, fills out the information in
the fields, and saves the form, the data in the fields is stored in an
individual document. The contents of the fields can then be displayed in
documents and views or can be retrieved for use in formulas. A field can
be used on a single form, or you can create shared fields for use in
multiple forms in a database.
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:
Field name
Field type
6-1
Building Applications
This chapter describes how to create fields to collect and store specific
types of information.
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.
Building Applications
You can define a field for use on more than one form. For example, many
forms have a creation date field, so you can define this field once and
reuse it. When you define a field as a shared field, Designer displays the
field with a wider border than other fields and adds the field name to a
list of shared fields available for use in a database. To insert a shared
field into another form in the database, select the field name from the list
of shared fields.
When users click OK, they see the contents of the shared field as
non-editable text.
To prevent this message, modify each form to convert the old shared
field to a single-use field (by cutting it and pasting it back on the form).
The field definition is stored within each form, rather than in a central
location, and documents can be displayed as they were when they
referred to a shared field definition.
Building Applications
1. Make sure that the database containing the shared field is set up to
be a multilingual database (File - Database - Properties. At the
Design tab, check Multilingual database.)
Naming a field
A field name must begin with a letter and can include letters, numbers,
and the symbols _ and $. The name can contain up to 32 bytes. (If youre
using multibyte characters, remember that 32 bytes is different than 32
characters.) Use short, descriptive field names that you will remember
when you write formulas that refer to the fields.
Field names cannot contain spaces. Run multiple words together, for
example, ModifiedDate, or separate them with an underscore:
Modified_Date. The Designer templates use the naming convention of an
initial capital letter followed by lowercase letters, for example,
SendCopyTo.
If several fields on forms in a database contain similar information, for
example, the date of creation and the authors name, use the same field
name for all of them. This makes sharing information between forms
easier as you continue to develop the application. Establishing and
maintaining naming standards simplifies application design throughout
your organization.
Renaming a field
Unlike forms and views that can have aliases, a field can have only one
name. Renaming a field has the same effect as deleting a field from a
form. For example, if you have a field called Comments, and users
enter text into many instances of this field in documents, and you then
rename the field to Observations, all of the data in Comments will
no longer appear when you display the document. If you must rename a
field and need to transfer data, create a new field, create and run an
agent to reassign data to the new field, then delete the old field.
Remember to update all formulas to refer to the new field name.
Field types
The fields field type determines what type of information it can contain.
You define the field type in the Field Properties box. The field types are:
Authors
Checkbox
Color
Combobox
Date/Time
Dialog List
Formula
Listbox
Names
Number
Password
Radio button
Readers
Rich text
Text
Time Zone
Building Applications
Rich text fields are better for formatted text, large amounts of text, or
embedding or attaching objects. For example, the Subject field on a
mail form is a text field, and the Body field is a rich text field.
Rich text lite fields are rich text fields with a helper icon and down
arrow next to the field. Clicking the icon gives the user a fast way to
add an object into the rich text lite field. Clicking the down arrow
displays a drop-down menu. The elements listed in the drop-down
menu are the only elements the user is allowed to insert into the rich
text lite field. Any attempt to insert or paste an invalid element into
the rich text lite field displays an error message.
Designing Fields 6-7
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.
Pictures
Shared Images
Attachments
Views
DatePicker
Shared Applets
Text
OLE Objects
Calendar
Inbox
Help - checking this lets the user choose to display brief help on an
object type. The help changes depending on the object type the user
selects.
Clear - checking this gives the user the option to clear the contents of
the field.
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:
For datepicker, inbox, and calendar, the object is inserted into the
field immediately.
The rich text field displays for editing within an HTML text area.
This is the default behavior.
The rich text field displays using the editor applet, allowing for a
broader range of editing options.
Building Applications
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.
Indent paragraphs
Create links
Cut, copy, and paste text within the rich text field
Note Web users cannot paste text from outside the editor because of
the limitations of the JDK, Release 1.0.2.
6. In the Script area, enter the height and width. For example:
"HEIGHT=300 WIDTH=500"
Tabs
Images
Ordered lists
Tables
In addition, any features that the editor applet cannot interpret are
displayed as HTML in green on the document.
Note Make sure you test your design ahead of time on different
browsers. Depending on the users browser, there may be display
problems.
Number fields
Use Number fields for numeric and currency data.
Numeric fields
The Number field type lets you limit a field to numerical values and
define how the numbers display in a form. For example, a Monthly Total
field in a Budget form adds together all of the numeric values from the
fields listed in the following formula to arrive at a total budget figure:
Advertising + Entertainment + Miscellaneous + Overhead +
Salaries + Travel
If you dont want users to change the value of a numeric field, select a
Computed option in the Field Properties box. In the example above, the
Monthly Total field is computed so users cannot edit the value.
Fields used in calculations must have default values. Otherwise, the
message Incorrect data type for operator or @Function: Text expected
appears.
Building Applications
On the Control tab of the Field Properties box, you can specify whether
the field should display formats according to the custom settings you
specify, or whether it should use the default settings of the users
workstation.
Choose any of these number formats on the Control tab:
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.
Format
Integers
123, -123
Decimal fractions
Scientific notation
1.23E2, -1.23E12
Currency
$2.50, ($600.09)
Currency fields
To choose currency as the type you want for the number field, check
Currency at the Control tab of the Fields Properties box. For currency,
you may want different fields to display different currency formats and
you can do that at a field level.
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.
Building Applications
If you want to use the currency defined in the users preferences, select
Use preferences from: User settings. If you want to define a custom
currency, select Use preferences from: Custom.
Building Applications
Gregorian calendar
3. Check Display Time and then choose display time options. As you
select options, the sample will change to show you what the user will
see.
The following are the display time options:
Show:
All
Hours, minutes, and seconds
Hours and minutes
Hours only
Time zone:
Adjust time to local zone - Displays the time relative to the time
zone in which the document was created.
For example, if the document was created at 3:00 PM in Boston
and is read by a user in Los Angeles, the creation time is adjusted
to the Pacific U.S. time zone and displays as 12:00 PM.
Always show time zone - Displays the zone in which the
document was created as a part of the value.
In this case, the time itself is not adjusted for the readers time
zone; instead, Notes displays the creators time zone. For example,
if the document was created in Boston at 3:00 PM, the user in Los
Angeles sees the creation time as 3:00 PM EST.
Show only if zone not local - Displays the zone in which the
document was created only if the document was created in a
different time zone than it is being viewed in.
For example, if the document was created in Boston at 3:00 PM,
users in the U.S. Eastern standard time zone see the creation date
as 3:00 PM, while users in other time zones see the creation date
as 3:00 PM EST.
To take advantage of time zone options, note that the date must be
included in the field.
Format (appears if you selected Custom):
12 hour
24 hour
Separator (appears if you selected Custom):
Enter the separator to use between the hours, minutes, and
seconds. For example, if you enter a colon (:), the time appears as
11:52:35 AM.
To show both date and time together in the same field, select both
Display Date and Display Time.
Examples: Possible date/time formats
10/30
10/30/95
10/30/1995
Building Applications
Monday 10/30/95
Monday 10/30/1995
October 30, 1995
Monday October 30, 1995
Today
Yesterday
Tomorrow
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
10/30 11:00 PM
10/30/95 11:45:30 AM
10/30/1995 11:45:30 AM
Monday 10/30/1995 11:45:30 AM
Monday 10/30/1995 11:45:30:00 AM
Monday 10/30/1995 11:45:30:00 AM EST
Monday October 30, 1995 11:45:30:00 AM EST
Monday 11:45:30:59 AM
11:00 PM
11:45:30 AM
Designing Fields 6-17
11:45:30:59 AM
11:45:30:59 AM Today
11:45:30:59 AM EST Today
98 12/17/Thu
@Created
@Modified
@Accessed
Current date
Date
@Today
@Now
Building Applications
Display Date
@Created
Names fields
Create a Names field to display user names. A Names field can be
computed or editable. If you associate the formula @UserName to a
Names field, the name will appear the way it appears in Notes IDs for
example, Sara Ryan/Acme/US.
To display only the common name portion of names, use the [CN]
parameters with @Name. For example, in an editable names field called
Members use this formula as the default value:
@Name([CN];Members)
This formula displays the name Sara Ryan if the users hierarchical
name is Sara Ryan/Acme/US
For more information about formulas for displaying user names, see the
formula language chapters in the Domino Designer Programming Guide.
Building Applications
Use Access Control List for choices This option brings up a list of
people, servers, groups, and roles in the access control list.
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.
Allow values not in list on the Control tab of the Field Properties box
to let users add their own words without changing the original list. Also,
some of the interface styles have an option to Allow multi-values on
the Field Info tab which let users select several choices in the field.
Choice list fields can be editable or computed; however, most choice list
fields are editable. The field types that present lists of choices are:
Field Type
Usage
Allow
multi-values
Available
Each choice is
Not
displayed with a box
available
users click to select.
Checkboxes have
border, column, and
spacing options. To
create a wide checkbox
panel, choose a
column number
between 2 and 8.
Available
continued
Building Applications
Allow
values not
in this list
Field Type
Usage
Allow
values not
in this list
Allow
multi-values
Each choice is
Not
displayed with a
available
button; 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.
Not available
Each choice is
Not
displayed with an
available
expanded list box.
Users click an entry to
select it. List boxes
have border, size, and
placement options. To
resize the list box
without dragging it,
change the Width and
Height measurements.
To move the list box in
a layout region
without dragging it,
change the Left and
Top measurements.
Available
continued
Field Type
Usage
Allow
values not
in this list
Not available
Building Applications
Each choice is
Available
displayed with a
drop-down list box.
Users click arrows to
view the entries. They
can then click the one
they want. Combo
boxes have border,
width, and placement
options. To resize the
combo box without
dragging it, change the
Width measurements.
To move the combo
box in the layout
region without
dragging it, change the
Left and Top
measurements.
Allow
multi-values
Description
Description
Use View dialog for choices This option brings up a dialog box containing
entries from a column in a view. Select the
database to look up, select a view, and select a
column number.
Users can review choices and codes more conveniently from outside
the form or application.
@If(Location="Europe";"France":"Germany":"Italy":"Spain";Loc
ation="Far East";"Japan":"Singapore":"South
Korea";Location="North America";"Canada":"Mexico":"United
States";"")
If you use aliases, the leftmost name is displayed in the document, but
the rightmost name is stored internally.
Building Applications
SW
SVC
Password fields
A Password field is a text field that maintains a users privacy by
displaying each character a user enters as an asterisk on the screen. The
contents of the Password field are not secure, and the data is visible in
the Document Properties box from the Notes client. There are several
ways to secure the contents of a Password field. If you are using the
Password field as a method for securing an application, the best way to
secure the contents of a Password field is not to save the contents after
the entry is verified. This can be done using a formula that clears the field
once its been verified. You can use the input translation event or a
LotusScript QuerySave event.
6-28 Application Development with Domino Designer
REM "This compares the value above to the value the user
entered after running it through the @Password hash function
and prompts the user whether they typed in a valid password
or not.";
@if(@isError(x);@Prompt([OK];"Error";"Error");@Password(Pass
word) = x;@Prompt([OK];"You passed";"You
passed");@Prompt([ok];"Password failure";"You entered an
incorrect password"));
REM "This deletes the password field.";
@Unavailable
Building Applications
x:=@DbLookup("";"Server/Acme":"names.nsf";"($Users)";@Userna
me;"HTTPPassword");
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
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 accept the
formula you put in without compiling it. If you literalize a formula, the
field references must be: text, text list, number, number list, date, date
range, or date list. If the field referenced is of any other field type, it will
be left out as a field reference.
The following is an example of a formula for a formula field for which
Literalize is selected as an option:
Select (Names = ExampleNames) & (Numbers = ExampleNumbers) &
(Categories = ExampleCategories)& (Dates = ExampleDates)
Value
ExampleNames
ExampleNumbers
1: 2: 3
[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.
Designing Fields 6-31
Building Applications
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.
If the resulting formula is invalid, the field is saved with a value of type
error. In some cases, the user would never be able to exit out of the
document. To differentiate between success and failure, you should test
in the QuerySave event to determine if the Formula field is indeed a
formula. If it is not, then the computation did not result in a valid
formula.
For example, a computed formula field has the following formula:
tLitNames := "\"" + @Implode( ExampleNames; "\" : \"")
+ "\"";
tLitNumbers := @Implode( @Text(ExampleNumbers); " :
");
tLitCategories := "\"" + @Implode( ExampleCategories;
"\" : \"") + "\"";
"Select (Names = " + tLitNames + ") & (Numbers = " +
tLitNumbers + ") & (Categories = " + tLitCategories + ")"
Value
ExampleNames
ExampleNumbers
1: 2: 3
For information on writing formulas for fields, see the Domino Designer
Programming Guide.
Building Applications
Use the Reference tab in the Programmers 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.
Formula calculates
Computed
Computed when
composed
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.
The RGB (Red, Green, Blue) value appears at the bottom of the
palette for each color. If you are using the Notes palette, the name of
the color also appears.
At the RGB tab, the user can either enter values from 0-255 for Red,
Green, and Blue or can use the RGB sliding arrows to choose a value
from 0-255. The mixed color appears in the box to the right of the
RGB values. The user can also use the color matrix bars at the bottom
of the pane to define a color.
Note that the user must be running in a color mode greater than 256
color to see the real color. If a user enters an RGB not in the palette and
the user is in 256 color mode, then the closest color in the palette will be
displayed for the RGB. The correct RGB will be stored and will appear
correctly on systems with greater than 256 colors.
The chosen color is stored in RGB hexadecimal format.
The default value formula provides an initial value that the user can
change. Providing a default value for an editable field ensures that
the field gets filled in and often removes the need for users to enter
data such as their name or the date.
Building Applications
At the Notes/Web tab, the user can choose from a Lotus Notes color
palette or a Web color palette. Note that the Notes tab becomes the
Web tab only if the user has enabled Use Web palette (File Preferences - User Preferences).
The input enabled formula enables or disable the field for input. If
Input Enabled evaluates to O, data cannot be added to the field. If it
evaluates to anything else, data can be added to the field.
Input Enabled appears in the Object list of the Programmers Pane
for all field types except rich text and rich text lite. Input Enabled
only works when the field style is set to Native OS.
For information on writing formulas for fields, see the Domino Designer
Programming Guide.
Examples: Creating a formula for an editable field
Default value formula examples
The default value formula provides an initial value for an editable field.
You can set the value to a specific number or text string, or you can use a
formula. For example:
The formula
Returns
The number 0
@Now
@Name([CN];@Username)
Price
Building Applications
@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.
Formula
Building Applications
what is entered into the field. At the Control tab of the Field Properties
box, you can uncheck Show field delimiters if you do not want
brackets to appear at the beginning and end of the field.
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.
You can change the width and height of native controls, as described in
the following table.
Property
Choose one
Width
Height
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.
Building Applications
Hiding fields
Use hidden fields to perform interim calculations or to store information
you do not want users to see. In the Designer templates, hidden fields
appear at the bottom of forms, preceded by the heading Hidden fields.
Hiding fields is not a security feature. Users can see the value of hidden
fields on the Fields tab of the Document Properties box in the Notes
client. To keep the data fields safe, encrypt, rather than hide, the fields.
Hiding options
When you hide a field, you are actually hiding the paragraph on the
form that contains the field. If there is text, such as a field label or
graphics, in that paragraph, Designer hides them with the field. You can
hide a field and any associated text or graphic all the time or only at
certain times. For example, information useful only when users create or
edit documents can be hidden during reading, printing, and copying;
information that is used for display, such as a computed field that
displays the result of an authors choice in an editable choice list field,
can be hidden during editing.
The following are options for hiding fields:
Mobile
The information is hidden for Mobile users.
Then
Printed
Embedded
To hide a field
If you have computed fields that users dont need to see, or if you create
two fields one for display when reading and one for use when editing
you can stipulate when to hide the fields.
1. Select the field you want to hide.
2. Choose Design - Field Properties.
3. On the Hide tab, do one of the following:
Select Hide paragraph when document is: and click all
situations when users dont need to see the field information.
Select Hide paragraph if formula is true and write a formula in
the formula window on the Properties box to describe the
situations when users dont need to see the fields.
For more information on using a formula to hide a paragraph, see the
Domino Designer Programming Guide.
Designing Fields 6-43
Building Applications
Building Applications
The maxlength value defines the length of the text content a user can
enter into the field. Keep the maxlength value approximately 30
percent larger than the size value to enable a user to completely fill a
field with text.
4. Save the form.
you can keep fields for Notes users on the same form. Web users see the
HTML information when they read documents, but they do not see the
HTML information when they edit documents.
1. Create a field named HTML.
2. Select Value or Default Value in the Programmers pane objects list.
Building Applications
3. (Optional) Write the HTML code in the script area if you want to
present the same HTML code for every document created with the
form.
5. Write a default value or computed field formula for each field that
uses the parent document field name as the value. For example, to
inherit the FullName field, use FullName as the inheriting fields
formula.
Example: Inheriting address information
In a Customer Contacts application, a Letter form uses inheritance to
copy information from a Company Profile document. The Company
Profile contains name and address fields and a hidden field called
FullName. The Letter form inherits the values of the name and address
fields for the address block and uses the FullName field for the
salutation.
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.
When Web users open the Company Profile document and click a button
to create a Letter document, the Letter is already filled in with the
recipients name, address and the correct salutation.
Create a field on the main topic form and the response form named
Subject.
Make the Subject field on the main topic form editable so that the
user can enter the subject.
Make the Subject field on the response form a computed field which
uses the formula:
"Response to " + Subject
Field purpose
Body
ComposedDate
From
Subject
Building Applications
Contains
$$ViewBody
An embedded view.
$$ViewList
$$NavigatorBody
An embedded navigator.
$GroupScheduleRefreshMode
$GroupScheduleShowLegend
$ChargeRead
$ChargeWrite
Categories
Categorizes documents.
$VersionOpt
FolderOptions
SecretEncryptionKeys
HTML
$$HTMLHead
$$Return
Building Applications
For information about mail-enabling forms, see the topic Features that
support automatic mailing in the chapter Creating a Workflow
Application.
Values
BlindCopyTo
Comments
CopyTo
DeliveryPriority
L, N, H
DeliveryReport
1,0
Encrypt
1, 0
MailFormat
B, E, M, T
MailOptions
1, 0
ReturnReceipt
1, 0
Values
Comments
SaveOptions
1, 0
SendTo
Sign
1, 0
Tip If you write a LotusScript program that uses the Send method of
the NotesDocument class or a formula that uses @MailSend, you can
include many of the above mailing options in the script or formula.
For more information on using LotusScript, see the Domino Designer
Programming Guide.
Interactions with the Mail Send dialog box
The MailOptions field with a value of 1 overrides the users choices in the
Mail Send dialog box if the form is set to enable optional mailing. With a
MailOptions field set to 1, users can click Yes to save the document, No
to close without saving, or Cancel to return to the document.
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.
Interactions with the Document Save dialog box
The values in SaveOptions, Sign, and Encrypt fields override the users
settings in the Document Save dialog box.
Building Applications
MailFormat
A computed MailFormat field can have one of the following values:
Value
Description
Encapsulated (E)
Text (Text)
Both (B)
Mail (M)
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
to close without saving, or Cancel to return to the document. To add the
mail signing and encryption options, create editable keywords fields
named Sign and Encrypt.
SendTo
The Allow multi-values and Allow values not in list are useful for
SendTo fields.
Building Applications
Type of tracking
No version tracking
3. For a computed field, select Value from the Objects tab of the Info
List in the Programmers pane.
For an editable field, select Default value from the Objects tab of the
Info List in the Programmers pane.
Building Applications
Chapter 7
Designing Views
Views
A view is a sorted or categorized list of documents. Views are the entry
points to the data stored in a database. Every database must have at least
one view, although most databases have more than one view.
Here are the general steps in planning your view.
1. Before you create the view, think about:
Whether the view style will be an outline view or a calendar view.
The type of view you want (shared, private, and so on).
Whether the view will be displayed on the Web. If so you may
want to consider creating an embedded view on a form, subform,
page, or document or consider creating a view applet or an
embedded view applet.
The categories in the view.
2. Create the view by clicking New View in Designer.
3. Name the view.
4. Add columns to the view.
5. Set up the documents to display in the view by writing the views
document selection formula.
6. Set up what will display in each column by programming the
column value.
7. Set up the sorting order for the columns.
8. Set the style for the view, row, and columns.
9. Save and close the view.
7-1
Building Applications
This chapter describes how to design views. Views help users find the
documents they want and serve as summaries of the database contents.
Folders
Folders are containers used to store related documents or groupings of
documents. Folders have the same elements as view and are designed
much the same way. For more information on designing folders, see
Notes Client Help.
Building Applications
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.
On the Web, each time a user opens, scrolls, expands, or collapses a view,
Domino converts the view to an HTML page. Each snapshot of the
view is a newly generated HTML page. The concept of a selected
document in a view in Notes does not apply to a view on the Web.
Displaying a view on the Web
By default, views are not enabled for display on the Web. For example,
the For Web Access properties of the Advanced tab of the View
Properties box are not enabled. If you want to create a view for the Web,
consider creating a view applet or embedded view applet, as these
options give you greater control over the view display.
For more information on designing views for Web applications, see
Displaying views in Web applications later in this chapter.
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:
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.
7-4 Application Development with Domino Designer
Building Applications
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:
Private views
Building Applications
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.
Note that Web users cannot drag documents into folders.
For more information on folders, see Lotus Notes 6 Help.
Building Applications
To save design time, designate a view as the standard for newly created
views or folders in the database.
If you start a name with a hyphen (-), the name appears before both
numbers and letters.
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.
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
Hidden views
When you surround a name with parentheses for example, (All) the
view does not appear to Notes users in the Notes View menu or to Web
users or Notes users in the list of folders and views.
Caution Users can see hidden views by holding CTRL+SHIFT while
selecting View/GoTo. Hiding a view is not a security measure, but
simply a design option.
For other ways to hide views, see Hiding a view later in this chapter.
By Author
By Date
You can rename the views or folders and omit the repeated word, but in
some cases the word is needed to make the names understandable.
Authors
Dates
If you cant change the names, you can specify a shortcut by typing an
underscore before a letter to make that letter the shortcut. For the By
Date view, you can make the letter D the shortcut in this way:
By _Date
Cascading views
Creating cascading views lets you arrange lists of views in a hierarchy;
that way, a group of related menu items are organized under one item. A
user clicks on the higher-level name to display the cascaded list. You
probably want to cascade views when you have long lists of views or
when you have related views that should be grouped together.
To create a cascading view, enter the name you want to appear on the
Create menu followed by a backslash (\), and then add the view name.
For example, the Personal Address Book template has two views related
to servers:
Server\Certificates
Server\Connections
Building Applications
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:
Building Applications
Selection 1
Selection 2
By Author
is any of
is not any of
By Date
date created
date modified
is on
is after
is before
is not on
is in the last <n> days
is in the next <n> days
is older than <n> days
is after the next <n> days
is between
is not between
By Field
<field name>
contains
does not contain
is on
is after
is before
is not on
is in the last <n> days
is in the next <n> days
is older than <n> days
is after the next <n> days
is between
is not between
<number field
name>
is equal to
is greater than
is less than
is not equal to
is between
is not between
continued
Selection 1
By Form
<form name>
<example form
name>
In folder
<folder name>
Multiple words
Selection 2
lets you fill out a form with field values
to search for
search terms you specify
Building Applications
Condition
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"
If you are using the Simple Search feature to select the form you can
resolve the problem in this way:
1. Open the view in Designer.
2. Inspect the View Selection formula in the Programmers pane.
3. Click the Add Condition button to reselect the form name to include
the new alias.
4. Save the view to update the selection formula.
Tip It is good design practice to assign an alias to a form at the time of
creation to avoid this problem.
Selecting main and response documents with a formula
By default, selection formulas include only documents of the type Main
Topic. You can include response documents in a selection formula
created with one of the simple functions above by editing the formula
Notes creates and appending the following:
| @IsResponseDoc
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.
Omitting a title
If you leave the title blank, the column doesnt have any identifying text.
Omit a title if the column is:
Hidden (and designers dont need any identifying text when the
view is Designer)
Building Applications
Guidelines
To change the font, size, or color of a column title, choose styles from
the Title tab of the Column Properties box.
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.
Note that long titles do not wrap on the Web. To prevent line wrap
on the Web, specify 1 in the Lines per heading setting in the View
Properties box. Domino converts this setting to a NOWRAP HTML
attribute. Specifying a number greater than 1 causes lines to wrap on
the Web. The same guidelines are true for the Lines per row
setting.
The number of characters that fit on one line depends on the font and
size you select, as well as the width of the column. If a title is not set
up to wrap to more than one line and the text is too long for the
width of the column, the text is truncated.
Description
Title
Width
Resizable
Description
Multi-value separator
Editable column
Building Applications
Style
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.
Option name
Selections
Description
Special
None
Show today when
appropriate
Always show 4 digit
year
Show 4 digit year for
21st century
Show year only if not
this year
Date format
month/day
month/year
month/day/year
Selections
Description
Time format
hour:minute
hour:minute:second
All
Time zone
Building Applications
Option name
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)
Note that because the formula evaluates when the view first displays,
you cannot use a hide-when formula to weed out documents matching a
certain condition. That is, if you write a formula that hides all documents
containing the word Confidential, the first batch is hidden, but
documents containing this word that are added subsequent to the first
display will appear in the view.
Caution Hide-when formulas are not a security measure. Users can still
get information by viewing the document properties. Use this feature as
a method for controlling the display of information in a view.
Note Because the ability to selectively hide a column based on a
formula is new in Designer 6, columns hidden in this way will display in
earlier releases of the client unless you also check the option Hide in
Notes R5 or before.
Hiding a column from R5 clients
When you check Hide column in Lotus Domino Designer 6, the
column will also be hidden when the application is accessed by an R5
client. If you check Hide column if formula is true in Designer 6, the
column will be visible when accessed by an R5 client because R5 did not
have the ability to selectively hide columns. If you are using the option to
Hide column if formula is true, check the option Hide in Notes R5 or
before.
Building Applications
Simple functions
Simple functions let you add programming without knowing a
programming language. The default selection for a new column is # in
View, which numbers documents according to their internal sequence
(for example, 3.1.2).
Field
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)
Building Applications
Field lets you populate the column with field values without writing a
program. This technique works only with text fields because columns
need a conversion formula to interpret other types of data dates, rich
text, numbers, or encrypted text.
Numbering documents
In a By Author view, the following formula numbers (as in 1., 2., 3.) each
of the documents within each authors category:
@IsCategory("";@DocNumber("") + ". ")
Building Applications
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.
You can also set the column value equal to a field value that supplies
RGB coordinates. You can use this feature in conjunction with the color
field to allow a user to set a color with a color picker. You can then apply
that color to a view component for example to the text in a column.
For information on using this feature to make view colors customizable,
see Allowing users to set colors in a view.
Description
Example
Attachment Names
Attachments
Author(s)
(Distinguished
Name)
Author(s) (Simple
Name)
Collapse/Expand
(+/-)
Building Applications
continued
Function name
Description
Creation Date
Last Modified
Size (bytes)
# in View
# of Responses
(1 Level)
# of Responses
(All Levels)
Example
Use 0 as the false case when you want to leave the column blank. The
formula above returns 0 when the document has no attachments, so
nothing is displayed. A column can display multiple icons, so in this
example you might replace the 0 with a different icon value, or use
nested If statements to establish conditions for displaying various icons.
A column can display up to 10 different icons. All of the icons must be
predefined icons. Domino cannot display predefined icons and custom
icons in the same column.
Building Applications
A column that displays icons cant display anything else, such as a plus
(+) sign for an expandable categories column. Also, a column can only
display one type of icon either a predefined column icon or a custom
icon, but not both.
Note Icons are accessible to vision-impaired users who use screen
reader software. The software reads the string names of the icons.
Custom icons display only on the Notes client; the Web client displays
the filename of the icon.
Numbers
Letters
Accented letters
Punctuation/special characters
Building Applications
Most views can benefit from a sorting method that organizes documents
in a way that makes sense to users. For example, a By Date view sorts
documents by their creation dates, and a By Author view sorts
documents by author names. To achieve this effect, designate at least one
column as a sorting column. Then define it as a user-sorted column, an
auto-sorted column, or both.
And finally, to streamline the display, you can categorize the Authors
column to produce the following:
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.
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.
Building Applications
User-sorted columns
For example, a Service Request form contains a Priority field, which uses
the following choice list:
Urgent
High
Medium
Low
Is hidden
Is not hidden
Is 10 characters wide
Is not sorted
Building Applications
You want the By Priority view to sort documents by the value in the
Priority field, but you dont want them to appear in ordinary alphabetical
order (High, Low, Medium, Urgent). You want users to see
Urgent-priority documents at the top of the view, High-priority
documents next, and so on.
Grid
Specify a grid style for the view. Use Color option to set a color
for the grid lines.
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. Beveledbackground is gray;
Simplebackground matches view color. Use the Color
options to set a color for the header. Use the Height option to
set a header height from one to five lines to specify how many
lines a column title can wrap. Useful for long column titles or
instructions placed in a column title.
Rows
Specify how many lines a column can contain. Increase this value
if you are using newline to separate multiple values in a view.
Shrink rows to content and setting a color for alternate rows
are useful accompaniments to multi-line rows. Row spacing
sets the vertical space between rows in a view. Default is
single-spaced rows.
Dont show categories suppresses the display of categories
with no documents. Colorize view icons colors the pre-defined
Domino view icons to match the header color.
Color options let you set colors for unread documents and for
column totals. Red is used in Domino templates for unread
documents. since Bold does not display in R5 clients, you can
specify an Unread color and check the Transparent option so
that R5 users will see unread rows in a color while Notes 6 users
see unread rows as bold.
continued
Building Applications
Body
Margin
Building Applications
Go to top row
Go to bottom row
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.
Building Applications
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.)
The resulting column, called a categorized column, groups
documents with matching values and converts the common value to a
category name. The column is usually one that appears on the left
side of the view. This column must always appear to the left of any
sorted columns.
Other options include:
(Optional) At the Style tab of the View Properties box, select Dont
show empty categories so that categories without documents are
not listed.
Designing Views 7-43
To sort these in proper order, add a hidden column to the left of this
column that sorts documents in ascending order with the formula
@Month(@Created);
Building Applications
Users have access to response forms, whose types are Response and
Response-to-Response.
Building Applications
If the response uses an Exit form, the response row might look like this:
Exit Form, mailed to employee 08/26/97
If the response uses a New Hire Information form, the response row
might look like this:
New Hire Information, not yet mailed
To help users find new or modified documents, display the unread mark
(an asterisk) next to unread documents in the view. A set of unread
marks are maintained for each user, so even if one person has read a
particular document, the asterisk still appears for other users who
havent read it yet.
Building Applications
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.
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.
Building Applications
Coding notes
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.
For a complete description of how to code the InViewEdit event, see the
Lotus Domino Designer Programming Guide.
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.
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 @All as the column formula.
Note The column formula can be any valid formula.
Setting the color value in the profile document
To specify a color for a column, the user must create a profile document
without a user name. Since this special type of form cannot be created
using the Create menu, you must supply a button, action, or agent the
user can use to create the document. When the document is created, the
user sees a color picker for the specified column.
For information on creating and editing a profile document, see Profile
forms in the Designing Forms chapter.
Example: Designing a column for user-customizable color
In an application that lists animal descriptions and allows users to set
color preferences, the following properties are set:
1. On the Options tab of the View Properties box, the Allow
customizations option is checked.
2. The first column of the view, named PD1 has the following options
set on the Column Info tab of the Column Properties box:
Use value as color is checked.
User definable is checked.
The Profile Document field has the value DEF
In the Programmers pane, the Column Value for PD1 is set to a
formula that offers some color choices:
Red := 255:0:0;
Purple := 128:0:128;
Designing Views 7-53
Building Applications
3. Select the view column you want to make customizable and choose
Design - Column properties.
Blue := 0:0:128;
DkGreen := 0:160:0;
Brown := 130:66:0;
PaleYellow := 255:255:208;
Tan := 224:161:117;
DefaultColor := 0:0:0;
3. The DEF profile document is coded as follows:
Color schemes for user customizable dialog colors:
Use this color for Koala:
Use this color for Giraffe:
Koalacolor]
[Giraffecolor]
[PD1 ]
"By Author"
"View1"
"By Author\\Last Name"
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
Building Applications
@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.
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.
Formatting options for calendar views
Once you create a calendar view, you can format it. Click the Date and
Time format of the View properties box. The Date and Time format tab
appears only when Calendar is selected for the view style. On the Date
and Time tab you have the following display options.
Initial format
Sets the format displayed to the user when the view first opens.
Building Applications
7. Click the Date and Time tab of the Column properties box and check
the Display Date and Display Time options.
time slots as well as the duration for example, one hour. If you
select the option Users may override these times, the users Notes
client calendar preference determines how time slots are displayed in
the calendar.
The option Users may toggle time slots on/off for each day lets a
user display and hide time slots for a selected day.
Other options
In weekly and monthly views, Group entries together by time slot
clusters entries under time slots instead of listing entries for a day.
For example, if you have two entries for 12 PM and one entry for 1
PM, the different displays are as follows:
Group entries checked
12:00pm
Appointment 1
Appointment 2
1:00pm
Appointment 3
Appointment 1 12:00pm
Apppointment 2 12:00pm
Appointment 3 1:00pm
Check the selection formula for the view. Make sure the documents
you want to display in the view match the selection formula. To test
the selection formula, change the view to a standard view or refresh
the view while in Designer. If the documents display, the selection
formula is valid.
Make sure the first column of the view is based on a Date/Time field
and is sorted in ascending order. Display the documents in Designer
to test the view. Both the date and time should display. The
documents should display first sorted by date, and then for each
date, sorted in chronological order, so that a 9 AM appointment
displays before a 3 PM appointment on the same day.
Body
Choose a color for the view background and the grid lines.
Use Image option to specify an image resource as a view
background for Notes client users. Choose one of the Repeat
options to display a single copy of the image or to tile multiple
copies of the image for the view background.
Can also specify a formula for displaying an image based on a
certain condition. The formula evaluates when the view first
displays. Avoid using an animated GIF file.
Header
Specify the type of header you want for the calendar view.
Choose None for no header, Plain for simple labels with
lines between them, or Tabs for a tabbed display. Use the
Background option to set a color for the header. The Display
list lets you choose what header components to display. Note
that you can now display the Trash and All documents folder
using this control.
Date area
Choose colors for the calendar background, the ToDo area, and
for todays date. Check the large numbers options if you want a
DayPlanner look for your calendar view.
Daily
Monthly
Entry
Building Applications
Option name
Option name
Description
Other
Margin
Building Applications
3. On the Advanced tab of the View Properties box, choose one of the
following:
Domino prevents the view opening if there are create or read access
lists on a form in which views are embedded.
After embedding a view, you can change the view by clicking the
Formula button in the Programmers pane, then clicking the View
button. You will see a list of views from the database where the
original embedded view came from. For example, if you embed the
Inbox view from your mail database, then you want to change the
view, your choices are limited to the other views in the mail
database. To embed a view from a different database, you must first
delete the embedded view and embed the view you want.
Building Applications
In the Web server, you can determine the number of lines displayed by
looking (in order) at the following sources:
If the URL contains an &Count argument, use that number.
$$ViewTemplate for
viewname
Building Applications
Building Applications
Designing Views 7-67
Note At this time, the view applet does not support DBCS.
To program a view applet
Use these @commands to program a view applet.
@command
Description
ViewCollapse
ViewExpand
ViewCollapseAll
ViewExpandAll
ViewRefreshFields
Refreshes view
Upon refresh, the view applet does not delete
documents marked for deletion.
MoveToTrash
EmptyTrash
Folder
RemoveFromFolder
Building Applications
5. To see how the view displays on the Web, choose Design - Preview
in Web browser and select a Web browser from the list.
The view displays with a check box to the left of each document.
For information on adding action buttons to views, see the chapter
Automation in Applications.
Hiding a view
Designer includes several ways to hide a view from users.
Select the view name in the design pane and choose Design - Design
Properties. Select Hide design element from Notes R4.6 or later
clients.
Hiding a view from Notes clients is useful when you have a
Web-only view or when you want to remove the view from both the
View menu and the folders pane.
Open the design toolbox, click the view name in the right pane, and
choose Design - Design Properties. Select Hide design element from
Web clients.
Hiding a view from Web clients is useful when you have a
Notes-only view, or when you want to remove the view from the
folders pane and the Open Database Views list.
Automatic
Updates the view whether or not users ever open the database. With
this option, views open more quickly.
Manual
Relies on the user to refresh the view. This option is useful for large
databases that dont need to stay uptodate. With this option, views
open very quickly. Users just press F9 to refresh the view.
Building Applications
3. Click the Design tab and select Do not show this design element in
menus of Notes R4 or later clients.
since the last indexing, the refresh icon appears, and the user can
press F9 to refresh the view manually.
If the document-selection formula is time based, refresh the index as
often as new documents are added. For example, if the view selects
documents once a day, select Auto, at most once every 24 hours, to
refresh the view index once daily.
Display indicator
Does not show view changes automatically. Instead, the refresh icon
appears in the view and users must click the icon to see any changes.
Refresh display
Refreshes the display automatically before showing the view to
users.
Building Applications
Preserves the view index and appends updates to the existing index
unless the view is inactive for 45 days, in which case the index is
discarded. Because this option takes up more disk space than the
other options, use this only for views that users frequently need, so
they dont have to wait for a new view index to be created when they
open the database.
{for Web}
@Command([ToolsRunMacro];"(Restore Document)")
Client}
{for
The agent for the restore action uses the following code:
@Command([EditRestoreDocument]);
@All
Delete
@Command([MoveToTrash])
{for Web}
Empty Trash
@Command([EmptyTrash])
Building Applications
3. Set a value for Soft delete expire time in hours. The default value is
48 hours. After that amount of time elapses, soft deletions are
permanently removed from the database.
Chapter 8
Designing Framesets
Overview of framesets
A frameset is a collection of frames and can add structure to your Web
site or Notes database. A frame is one section, or pane, of the larger
frameset window and is independently scrollable.
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.
8-1
Building Applications
Creating a frameset
1. Open Designer and choose Create - Design - Frameset. The Create
New Frameset dialog box appears.
Building Applications
Refresh all refreshes the content of each frame with changes you
have made since opening the frameset.
Show Frame Content once you have populated the frames, you
can use this menu option to view either the actual content of the
frame or a short description of the frame content. For example,
instead of an actual Web page appearing in a frame, the frame
contains text such as:
Content type: URL
Content value: http://www.lotus.com/
Named Element
A named element is a design element that you have already
created and named. A named element can be a page, form,
frameset, view, folder, or navigator.
Enter a value (for example, if you already created a page named
PAGE1, enter it into the Value field). Alternately, you can click
one of the following icons:
Paste icon to paste in a name which you previously copied to the
Clipboard.
Folder icon to open the Locate Object dialog box and select a
design element from a list of elements.
If you choose Named Element - View or Folder, several options
appear:
Show action bar displays the View action bar when the view or
folder is loaded into the frame.
Show header displays the column headings.
Selection tracks mouse movement - as you move the mouse over
the view, the view selects the document the mouse is pointing to.
Basic simple appearance - enables several miscellaneous options,
including such options as showing strike-through text when an
item is marked for deletion, not allowing the scroll bar to be
hidden, not extending selection in the selection margin when the
mouse moves, using a simple grid for calendar views, and
defaulting to a 1-day format for calendar views.
If you want a view or folder on the Web, consider first embedding
the view or folder on a page or form. If you choose to make the
embedded view an embedded view applet, you preserve much of
the HTML view functionality and provide features such as
resizeable columns, multiple document selection, and scrolling.
URL
To put a Web page into a frame, choose URL and enter the full
URL specification (for example, http://www.lotus.com). You can
also paste in a URL or use a formula that evaluates to a URL. You
receive an error in the frame if the URL you specify is not
accessible. Note that all content rendered in framesets in Designer
uses the native Notes Web browser even if your current browser
selection is something else.
Building Applications
When you click a link in a Web page (in the Notes client or in a Web
browser), the link may open within the same Web page or in a new
window, depending on the setting for that Web page.
5. (Optional) Enter the target frame for links activated within the
current frame.
Property
Scrolling
Description
Choose relative, percent, or pixel to specify
the frame width and height:
Relative sizes the frame relative to the
other frames in the frameset. For example,
a frame with no frames above or below it is
automatically set to relative and is the
height of the frameset.
Percent sizes the frame as a percentage
of the frameset. A frame set to 50 Percent
width is half the width of the frameset.
Pixel sizes the frame exactly in pixels.
If you change the width and height
properties for one frame, the width and
height of adjacent frames will change;
however, the properties of adjacent frames
are not automatically adjusted. Adjacent
frame properties are adjusted if you drag
the borders.
Choosing On forces a scroll bar for the
frame; choosing Off causes no scroll bar to
appear. If you choose Auto, the scroll bar
appears if it is needed. The default is Auto.
continued
Tab
Description
Allow
Resizing
Set Initial
Focus
Border Style
(Applies to
this frame)
Border style
(Applies to all
borders in
frameset)
Building Applications
Frame Border
tab
Property
Tab
Property
Description
Tab
Property
Description
Building Applications
Building Applications
2. Open the View or Folder properties box for that view or folder.
Chapter 9
Designing Navigation for an Application
9-1
Building Applications
This chapter explains how to use navigational tools for your application.
Outlines
Outlines, like imagemaps and navigators, provide a way for users to
navigate through an application. Unlike imagemaps or navigators,
outlines let you maintain a navigational structure in only one place. As
your site or application changes, you make only one change in the source
outline. Each navigational structure that uses that outline source is
dynamically updated.
You can create an outline that lets users navigate to the views and folders
in your database, perform actions, or link to other elements or URLs
outside of your application. You can create an outline that navigates
through your entire application or site or through part of it.
Important features of outlines include:
Outlines allow great flexibility of design. You can order how items
appear and create different levels of hierarchy, and you can use
framesets to include multiple outlines that launch links in target
frames.
Outlines are customizable. You can control how the outline appears
to users by changing text and button styles and adding icons from
your databases shared resources.
Outline entries are fully programmable. You can add logic that
controls how outline entries are rendered by the Notes client or Web
browser.
Once you create the source outline, you embed it on a page or form to
create an outline control, which displays the outline to users as a site map
or navigational structure. Users can click on the outline entries to take
them where you want them to go.
Creating an outline
You can create a new outline or generate a default outline.
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.
Designing for accessibility
Use outlines instead of navigators to create applications that are
accessible to assistive technologies like screen readers. An outline lets
you create an organizing structure for an application and gives you
control over how elements are displayed in a navigator pane. Outlines
are programmable and customizable so you can control the look of the
outline while maintaining accessibility. If the outline will be used for
Web applications, do not select the option to display using the Java
applet. Outlines displayed using the Java applet are not accessible.
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.
To create a new outline
1. Click Shared Code - Outlines in the Design pane.
2. Click New Outline.
3. Add outline entries for each design element, action, or link you want
to include in the outline.
4. Save and name the outline. In the Save outline as box, type an
outline name.
Specify an alias if you plan to embed the outline and there is a
chance that the embedded outline could be renamed. An alias allows
you to change an outline name without rewriting formulas that
Designing Navigation for an Application 9-3
Building Applications
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.
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.
Select one or more outline entries and click Indent Entry (or press
TAB) to indent the element one tab stop to the right.
Select one or more outline entries and click Outdent Entry (or
press SHIFT+TAB) to outdent the elements one tab stop to the left.
Embedding an outline
To use an outline as a navigational device, it must be embedded on a
form, page, or rich text field of a document. Whether you choose to
embed your outline on a form, page, or document will depend on how
you want to use it. You can embed the outline on a form so that each
document created from that form includes the embedded outline. The
outline then presents an easy way for users to navigate to other views,
create a new document, move to the next document, and so on. For
example, in a Discussion database, you can embed the outline on the
Main Topic form. When a user creates a document with that form, the
outline appears on the document.
Building Applications
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.
Outline properties
Embedded outline
properties
Building Applications
Property
Building Applications
3. (Optional) In the Frame field, type the target frame for the outline
entry source.
There are two different style properties that control how the embedded
outline appears to the user: type and title.
The first, Type, determines whether the outline shows the hierarchy of
the outline entries. The hierarchy is set up when you outdent and indent
outline entries. If you select Tree style for type, then all of the outline
entries that have indented entries below them will show up as
expandable sections. You can choose to have green triangles (or twisties)
display next to expandable outline entries, or users can click on the
top-level entry to expand it. In a Tree style outline, all top-level entries
show at all times. Users expand and collapse entries as necessary.
9-10 Application Development with Domino Designer
Building Applications
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.
Initial display for flat style outline:
If you choose Flat Style, you have the option of displaying the
outline vertically or horizontally. Display horizontally displays
entries to fit the window across instead of down.
Title style - Hide or Simple. Simple style lets users navigate back
up to prior levels by displaying the parent of the current level in
an outline. Hide style does not display any hierarchy, so once
users go down a level in the outline they cannot navigate back up.
Target frame - Specify the frame where you want the source (link,
named element, or URL) displayed.
Twisties (Tree style only)
Show twisties - Select to display a triangle that users click to see outline
entries.
OS style - Select if you want the outline to appear in a structure
similar to the Design pane in Domino Designer. Instead of
twisties, the user clicks a plus sign (+) to expand and a minus sign
(-) to collapse. This setting is supported on Windows platforms.
Image - Specify a custom twistie image instead of the triangle.
Click the folder icon to select a shared image resource.
Optionally, click the @ button to use a formula to control the
image display.
Columns (Flat Vertical style only)
Show as multiple columns - If you select this setting, the entries at
any level automatically display in columns (instead of using scroll
bars) when the outline is longer than the allotted height. For
example, an outline that has entries that would normally require a
height of three inches to display would wrap into columns if the
outline had a fixed height of one inch. However, if the outline
height is set to Fit to content, columns do not automatically
appear because the outline height increases to the height it needs.
Column width - Specify the width of the columns in inches.
Building Applications
Root entry - Specify a root by using the parent entry label or the
alias of the parent entry. (For backwards compatibility with Lotus
Domino Designer R5, you should specify the alias.) When you
specify a root entry, the children of the specified entry only are
displayed. One use of this field is to restrict access to elements in
your site or database.
If the specified entry does not have any children, then nothing will
display in the outline. If you want to give users a way to navigate
back up the hierarchy from the root entrys children, enable
Simple as the Title style for either a Tree or Flat outline. If you
want to limit users access to those children entries only, set the
root, and dont enable a Title style.
Outline size
Width
To specify the width of an embedded outline as a percentage of
the parent window, choose Fit to window (%).
To specify the width in inches of an embedded outline, choose
Fixed (Size).
To allow automatic sizing of an outline based on its content for
example, the number of entries and whether or not the entries are
expanded or collapsed choose Fit to content.
To specify the width as approximately the specified number of
characters based on the average character width of the specified
font, choose Fixed (Chars).
Height
To specify the height in inches of an embedded outline, choose
Fixed (height).
To allow automatic sizing of an outline based on its content for
example, the number of entries and whether or not the entries are
expanded or collapsed choose Fit to content.
To allow automatic sizing of the height of an outline based on the
size of the window that the outline is displayed in regardless of its
content, choose Fit to window.
Show scroll bar
To display a scroll bar if the embedded outline entries do not fit
on the screen, select Show scroll bar.
Web access - Select HTML or a Java applet to display an
embedded outline to Web users.
Special
Show folder unread information - If you select this option, folder
names in the outline become bolded when there is new or changed
information; the unread count follows the folder name. For
example: Infobox (8). Note that this option works only on Lotus
Notes/Domino 6.
Font tab
Building Applications
Select either Top-level font or Sub-level font to format the font of the
outline entries. If Title style is set to Simple, select the Title Font. You
can also select font colors for:
The outline applet lets Web users work with outlines embedded in a
page or form. With the outline applet, Web browser users can:
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.
Building Applications
2. Right-click on the frame in which you want the outline to appear and
select the Frame Properties box.
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:
Open a URL.
If you cant copy and paste a navigator that is similar to the one you
need, create a new navigator.
1. Select Other - Navigators in the Design pane.
2. Click New Navigator.
3. Choose Design - Navigator Properties.
4. Give the navigator a name that describes its use.
5. To use the navigator in a Web application, select Web browser
compatible.
6. (Optional) Choose an initial view or folder to open along with the
navigator.
7. (Optional) Select Auto adjust panes at runtime so that users wont
have to manually resize a navigator that doesnt fit a window.
8. Click the navigator window.
9. Use the Create menu or the SmartIcons bar to draw objects or paste
objects from the clipboard.
10. Click each object and choose Design - Object Properties to assign a
name and style.
11. In the Programmers pane, select a Run option and assign actions to
each object. Run options specify what happens when users click the
object.
Select Simple action to choose a predefined automation, such as
Open a View.
Select Formula to define an action using the formula language.
Select Script to define an action using LotusScript.
12. Close and save the navigator.
Building Applications
Creating a navigator
To edit a navigator
1. Open the navigator in Designer.
2. Choose Design - Navigator Properties and make changes as needed.
3. (Optional) To change any object, click on the object, select Design Object Properties, and make changes as needed.
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.
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.
To delete a navigator object
To delete a navigator object (such as a button, graphic button, or
rectangle), select the object and choose Edit - Delete.
To remove a graphic background, choose Design - Remove Graphic
Background.
Tips for drawing new navigator objects
To create several identical navigator objects quickly, hold the SHIFT
key down while choosing Create. Draw all the objects you need;
choose Create - <shape name> to exit create mode.
To move an object that isnt locked into position, drag the object to a
new location.
To resize an object, click the object, position the cursor on one of the
sizing corners, and drag the object to the size you want.
To freeze an object at its current position and size, click the object,
choose Design - Object Properties, and select Lock size and
position.
Building Applications
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.
To create a hotspot
1. Create a new navigator, or open an existing navigator.
2. Use the Create menu to add a hotspot. For example, Create - Hotspot
Polygon. (Or select a hotspot tool from the SmartIcons palette.)
3. Click on the navigator and drag to create the hotspot. The polygon
tool allows you to create a line segment each time you click.
Double-click to complete the drawing and close the polygon hotspot.
Building Applications
Custom actions
You can use an @function formula or a LotusScript program to define a
custom action. A navigator that runs an @function formula allows you to
create specialized actions that arent related to switching to a view, a
folder, a navigator, or a link.
To attach an action
1. Create a new navigator, or open an existing navigator.
2. Select a navigator object.
3. In the Programmers pane, click Run: Simple action(s).
4. Select the simple action to run and supply any required information.
5. Close and save the navigator.
Examples
This section includes examples of automating navigators.
Opening a view
A navigator that switches to another view gives users a graphical way to
choose a view so they dont need to know the name of a view in the view
pane. The Main Navigator in the Discussion template uses objects to
open these views: All Documents, By Category, and By Author.
Creating a navigator object that opens a navigator
A navigator object (such as a button) that switches to another navigator is
a graphical way to guide users through a series of decisions to reach the
information they need.
Building Applications
To find out more information, users click a bar that represents an areas
sales. Each bar in the first navigator is a hotspot rectangle that takes users
to the Weekly Details by Country navigator. When users reach the
second navigator, they see another bar chart that displays weekly sales
by individual country. Clicking a bar in this chart opens the view for the
country (for example, View by country\France). Each bar in the second
navigator is a hotspot rectangle whose Open a view or folder action
specifies the appropriate country view.
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.
Building Applications
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:
Navigator Simple Action
Hotspot equivalent
@Command([OpenView];ViewOrFolderName)
Alias a Folder
@Command([OpenView];FolderName)
Open a Link
Open URL
Building Applications
Testing navigators
To test a navigator while you design it, switch to Testing mode to see if
the simple action, formula, or script runs.
For navigators that perform multiple steps or complex tasks, split the
process into several small tasks and create an action for each. Test and fix
each small task first. When everything is working correctly, combine the
formulas into one, and then test the automation again by creating a
sample copy of the database and testing all navigator behavior. You can
preview in either Notes or a Browser to see how the action actually
performs.
To test a navigator, follow these steps.
1. Create a new navigator, or open an existing navigator.
2. Choose Design - Preview in Notes or Design - Preview in Web
Browser <Web browser>.
3. Highlight and click each object to see if it works correctly.
4. If the test produces unexpected results, close the previewed item and
use the Windows task bar to return to Designer.
5. Correct the problems and run the test again.
6. When the test shows no problems, close and save the navigator.
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.
Select the hotspot and use the arrow keys to move one pixel at a
time.
Building Applications
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.
1. Select an imagemap and copy it to the Clipboard.
2. Open the page or form where you want to place the imagemap and
choose Edit - Paste.
To change the graphic for an imagemap
1. Select the current graphic.
2. Choose Picture - Replace picture.
Chapter 10
Automation in Applications
Automation
Automation in an application speeds up repetitive tasks, handles
workflow, updates information, performs calculations, runs programs,
and checks for errors.
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:
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.
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.
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.
Building Applications
To set up the tasks associated with these automated components, use the
following:
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 cant be customized and are not supported
in Web applications.
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.
LotusScript
LotusScript is a complete scripting language that can support most
application-wide tasks.
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.
Java
You can write Java programs or import Java files into agents.
Note Lotus Domino Designer 6 now supports code modules that are
lgreater than 64K for LotusScript, JavaScript, and Java.
Actions
You can create an unshared action in a view, folder, form, page, or
subform to provide one-click shortcuts for routine tasks in a view or
document. Actions become part of a design elements design and are not
stored with individual documents.
You can also create a shared action in a database that can be used in
multiple views, folders, pages, forms, and subforms. Shared actions are
stored as shared resources in the database.
To build an action, you can use any of the following:
Formulas
LotusScript
JavaScript
Common JavaScript
When users need to see all the available choices in a row at the top of
a document.
If formulas are complex and you dont want to save the formula with
each document.
Examples of actions
View actions Let users create, print, delete, or categorize
documents.
Notes on actions
Some views and forms in databases contain system actions, available
either in the Actions menu, as buttons, or both. You cant change the
System actions functionality, but you can customize their appearance
in the action bar. Open the view or form. Click Objects and the system
actions are displayed in the list.
Building Applications
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:
Link
Open a Web site, a database, or an element in a database (a page,
view, frameset, form, document, folder, or navigator).
Text pop-up
Display information in a pop-up.
Button
Complete a programmed task, using simple actions, formulas,
LotusScript, JavaScript when the button is used in the Notes client. In
addition, you can code the same button to run JavaScript when the
button is used in a Web browser.
Formula pop-up
Complete a programmed task using only formulas, with the results
displayed in the pop-up.
Action hotspot
Complete a programmed task using simple actions, formulas,
LotusScript, or JavaScript when the action hotspot is used in the
Notes Client. In addition, you can code the same action hotspot to
run JavaScript when the action hotspot is used in a Web browser.
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:
Can be run by users in the foreground or run automatically in the
background as scheduled agents.
Because agents are so flexible and powerful, you might consider their
characteristics first to decide the type of agent you want to build, and
then build it.
The Agent Manager supports all aspects of running and troubleshooting
agents. The Agent Manager checks security, manages agent scheduling,
monitors events and starts the appropriate agents when their associated
events occur, records information in a log (the Agent Log), and performs
database operations to run the automated tasks associated with the
agent. Although you dont work directly with the Agent Manager, you
use its components for troubleshooting an agent.
When to use agents
Use agents for database-wide and domain-wide automated tasks and for
complicated automated tasks. You can use them to easily access, process,
and manage data on other servers or in other databases.
See Agents to run before Web users open or save documents for an
example.
Building Applications
Notes on agents
Some databases and templates have built-in agents. For example, the
mail template has several built-in agents that let users manage their
messages and customize their mail databases.
To see the agents in a database, select the database and choose View Agents.
Events
When users work in Domino design elements, Domino tracks their
operations as events (for example, opening a database, opening a view,
opening a document). You can attach programming tasks to these events.
To build a program for an event, you can use:
Formulas
Simple actions
LotusScript
JavaScript
Common JavaScript (which works on both the Web and the Notes
client)
Types of events
Every design element has events that you can program, but they vary
according to the design element. In the Programmers pane, click the
Objects tab to review the events you can program.
Examples:
PostOpen open a specific view to direct users to action items
Building Applications
Database events
Database events pinpoint database-wide activities such as opening and
closing a database or deleting and undeleting documents.
In addition to the events available for all views, calendar views have
specific events.
Examples of calendar view events
RegionDoubleClick create a new document when users click an
area in a calendar view.
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
Initialize load an additional program before a document displays.
Field events
Field events capture users movements into or away from a field.
Examples
Entering refresh hide-when formulas
Examples
Compose a new document
Save a form
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.
Building Applications
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.
image resource that does not yet exist. Designer warns you that
the image does not exist and that you must create it later. Click @
and specify a formula (or set of formulas) to display an image
programmatically.
4. (Optional) On the Action Hide When tab, specify when to hide the
action.
5. (Optional) On the Advanced tab, specify how Notes workflow
proceeds after the user activates the action.
6. In the Info List of the Programmers pane, click Objects and select the
action you just created.
7. To program the action to run one of the client or one of the Web
program code types, choose either Client or Web at the Run
pull-down list.
Choose Client when the automated task will run in the Notes client.
You can then select one of the following Client code options:
Simple actions
Formula
LotusScript
JavaScript (runs only on the Notes client)
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:
JavaScript (runs only on the Web)
Common JavaScript (runs on both the Notes client and the Web)
8. Save the form, subform, page, view, or folder.
To create an action with subaction
Creating actions with one of more subactions lets you create a
hierarchical list of actions. You can also drag and drop actions to create
hierarchies. To create an action with subactions:
1. Open a form, subform, page, view, or folder.
2. Choose Create - Action - Action with Sub Action. A main action with
an indented sub-action appears in the Action pane. The Actions
Properties box also appears.
Building Applications
Tip If you do not specify a name or label for the action, Notes will
use the graphic for the whole button. You wont be able to see the
action in the action list, because theres no name for it, but you can
click on the space at the end of the action list to access it.
Examples: actions
Simulate Notes menus for Web users
Web users dont have access to Notes menu choices when they work in
Domino databases. Therefore, you should create menu equivalents for
them.
Building Applications
Create a document
@Command([Compose]; "formname")
@Command([Compose];"":"database"; "formname")
Open a view
@Command([OpenView]; "viewname")
@Command([OpenView];"":"database"; "viewname")
@Command([OpenView];"By Date")
The Deny Request action changes the documents status to Denied and
routes a notification to the initiator.
FIELD Status:="Denied";
@MailSend(Initiator;"";"";"Re: Your request";"Your request
was unable to be approved. Contact " + PreviousApprover +
"for more information.");
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:
Alignment - lets you choose whether to have the action bar
buttons align from the left or the right.
Web Access - lets you use the Domino action bar applet so that the
action bar displays better to Web users.
- To enable the applet, select Using Java Applet. The applet lets
Web users:
Scroll across the action bar, when needed.
For actions that have pull-down list selections for Notes client
users, the action selections are displayed as a second row of
buttons when the user clicks the main action. The second row of
buttons is displayed at 75% the size of the main action buttons.
Web users can view all the selections and click one to select it.
- To disable the applet, select Using HTML.
Automation in Applications 10-15
Building Applications
FIELD Status:="Approved";
@MailSend(NextApprover;"";"";"For your review";"Click
Approve Request to approve this requisition or click Deny
Request to return the request to " +
Initiator;"Initiator":"Body";[sign]);
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:
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.
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:
Color - specify a color for the background of the action bar.
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.
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:
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.
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:
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.
Button Options:
Building Applications
Building Applications
You can select an icon to appear on the action button. If you prefer
a Notes graphic, select Notes and then click Image to select a
graphic for the icon from a set available in Notes.
Example: links
For each concert schedule you send out, you want to provide a
cross-reference for more information about the performer. Create a link
in the document you create for a specific concert and specify a URL with
detailed information about the performer.
1. Edit the document announcing the concert.
2. Select text for the link hotspot.
3. Choose Create - Hotspot - Link Hotspot.
4. At the Hotspot Info tab of the Hotspot Resources Link Properties
box:
Type: Select URL
Value: Specify the Web address; for example:
http://www.concertseries.org/performers/luke.html
5. Save the document.
Building Applications
3. Select a shared action and click Insert for each shared action you
want to insert. Each shared action is added to the Action pane and
also to the Objects list for the design element.
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:
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.
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.
Style: Specify a color for the button background. You can also
choose to have a button with square edges or rounded edges.
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:
Description
Normal
OK
Cancel
Help
Default
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.
Building Applications
Type of button
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:
Simple actions
Formula
LotusScript
JavaScript
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:
JavaScript
Common JavaScript
7. Save the design element or document.
Steps to perform
To change
properties
To change
automation
In the Info List, click Objects, select the button in the Objects
list and edit the programming tasks in the script area.
To delete
Call an agent
Example: Buttons
Using a button to add a database to a users workspace
The Human Resources department sends new employees a mail message
that welcomes them to the company and gives them orientation
information. You decide to add a button to the Welcome form to make it
easy for new users to find Benefits information. New employees see the
button when they read their Welcome message. Double-clicking the
button adds Server1s Benefits Information database to the users
workspace (if it isnt already there) and opens it to the View by Category
view. The button uses this formula:
@Command([FileOpenDatabase];"Server1":"BENEFITS.NSF";"View
by Category")
Steps to perform
To change properties
To delete, but keep the associated text Click the pop-up and choose Hotspot Remove Hotspot.
Building Applications
Steps to perform
To change properties
To delete but keep the associated text Click the hotspot and choose Hotspot Remove Hotspot.
Click the Hotspot entry in the Objects
list and edit the formula in the script
area.
Building Applications
6. In the Info List, click Objects and select the action you just created.
7. Program the action hotspot to run one of the client or one of the Web
program code types by choosing 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:
Simple actions
Formula
LotusScript
JavaScript
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:
JavaScript
Common JavaScript
8. Save the form, subform, or page.
Steps
To change properties
To delete, but keep the associated Click the hotspot and choose Hotspot text
Remove Hotspot.
To change automation
To call an agent
Building Applications
Common JavaScript
UIDoc.GotoField "FirstName"
Else
UIDoc.GotoField "LastName"
Messagebox "You must enter the persons last name.", 0,
"ERROR"
End If
End Sub
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:
Check Store search in search bar menu to display your search
query in the search bar.
Check Store highlights in document so that your search matches
are highlighted in the searched documents.
Note that you should check this option only if the agent (or the
top-level agent that calls this agent) is triggered by On event Action menu selection.
To get the full benefit of this feature, the database should reside on a
server and the agent must be invoked via the client.
If you check this box and the agent references front end classes, the
user receives a run-time error.
8. In the Runtime section of the properties box, choose one of the
following triggers for the agent. Different options appear depending
on the trigger you choose.
On event - see the topic Triggering an agent on an event for
more information on the event options.
On schedule - see the topic Triggering an agent on a schedule
for more information on the schedule options.
9. Click the Security tab of the Agent Properties box to set up security
for the agent.
10. Close the Agent Properties box after you have filled in the necessary
fields.
11. From the Run list in the Programmers pane, choose one of the
following to define the agents automated components:
Simple actions
If you choose Simple actions, click the Add Action button to add
a simple action.
Formula
LotusScript
Java
Imported Java
12. If you want to create a search, select the Object tab and then the
Document Selection event in the Programmers pane. Then use the
Add Condition button to invoke the Add Condition dialog box.
Automation in Applications 10-31
Building Applications
Note that this way of creating a search replaces the Search button
found in earlier versions of Designer.
13. Save the agent.
Note that the agent is being saved and signed with your current ID.
Scheduled agents are enabled by default when first created and existing
scheduled agents that are edited are saved with their current state of
enabled or disabled.
For additional information on using the Enable, Disable, and Sign
buttons, see the topic Useful agent procedures later in this chapter.
For additional information on agent security, see the topic Security for
agents on servers and the Web later in this chapter.
For troubleshooting information, see the topic Troubleshooting agents
later in this chapter.
Use for
Use for
Building Applications
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.
Use for
Daily
Weekly
Monthly
Never
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:
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.
If you specified Monthly, you can specify a day of the month and
time of the day for the agent to run.
4. In the same Schedule dialog box, you also specify the servers on
which you want the agent to run. You can choose from the Run on
list. Alternatively, you can have users choose the server.
Server agent runs on Use
Local
Any server
Specific server
Choose when agent Checking this option prompts users to select a server
is enabled
when the agent is enabled. This option is useful for
distributing agents in ready-to-use applications.
Building Applications
If you specified Weekly, you can specify the day of the week and
time of day for the agent to run.
5. From the Target pull-down list, select the documents in the database
the agent will run on. You have two choices:
All documents in database
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.
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.
4. Choose Edit - Copy.
To delete an agent
1. Click Shared Code - Agents in the Design pane. A list of agents
appears in the Work pane.
2. Select the agent.
3. Choose Edit - Cut.
To select multiple agents
1. Click Shared Code - Agents in the Design pane. A list of agents
appears in the Work pane.
2. Click the first agent and do one of the following:
Press CTRL and hold while you click the next agent.
If selecting more than two agents, press CTRL while you click the
next agent.
To select a range of consecutive agents, press SHIFT while you
select the first and last agent in the range.
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.
To disable individual agents
1. Click Shared Code - Agents in the Design pane. A list of agents
appears in the Work pane.
2. Select the agent and click the Disable button. Note that the agent is
re-signed.
The check mark icon next to the agent name disappears and an X
icon appears in its place.
Building Applications
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.
WebQuerySave events
A WebQuerySave event runs the agent after field input validation
formulas are run and before the document is actually saved to disk or
mailed. The agent can modify the document or use the document data to
perform other operations. The document is automatically saved after the
agent runs. Do NOT have the agent explicitly save the document (for
example, by calling NotesDocument.Save) because an explicit save could
cause incorrect results.
A WebQuerySave agent can produce output to be sent back to the user.
For example in a LotusScript agent, you can use the Print command to
return raw HTML. If the agent produces output, then the form should
not have a $$Return field because Domino will return only the agent
output and ignore the field.
Examples for using this agent include:
Building Applications
Description
Run as Web user Checking this causes the agent to run with the effective user
name of the Web user.
Run on behalf of Lets you specify on whose authority this agent can run. Note
that restricted signers can run agents only under the same
authority as their own (that is, the restricted signers enter
only their own name or else the agent returns an error at run
time). Unrestricted signers and signers with rights to run
On behalf of anyone can run agents on behalf of anyone.
Whoever you specify in this field has to be included in the
ACL of any database being accessed.
If the agent is sending mail or creating documents, this name
is used as the mail sender or document author.
This feature is not supported on releases earlier than Lotus
Domino Designer 6.
Allow remote
debugging
Restricted
operations
Description
Restricted
operations
(continued)
Allow user
activation
Default access
for viewing and
running this
agent
The default level for viewing and running the agent is All
readers and above. You can deselect this field and choose
who you want to have default access for viewing and
running the agent.
Allow public
access users to
view and run
this agent
Building Applications
Option
Access needed
Private agents
If everyone who can access the server can run private agents, leave
Run private agents blank.
If only specific users can run private agents, specify their names in
Run private agents.
If users are allowed to run shared agents, assign them Reader access
or higher.
If users are not allowed to run shared agents, do not list them in the
ACL or assign them Depositor access.
For agents that use simple actions, LotusScript, and Java, Domino
checks the users ACL.
For agents that use formulas, Domino checks the replica ID of the
database in which the agents were created. Therefore, to ensure that
agents using formulas can access documents in other databases, you
must list the database replica ID in each database the agent will
access.
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:
Building Applications
LotusScript/Java agents
LotusScript and Java include operations that have full access to the
servers system and can manipulate system time, file I/O, and operating
system commands. Users or groups with unrestricted access can run an
agent that includes any of these operations in the LotusScript and Java
components. Users or groups with restricted access can include most
operations. The only restricted commands are those that allow access to
the servers system.
If you dont 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:
You choose Local from the Run on list for a scheduled agent.
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:
On schedule daily
On schedule weekly
On schedule monthly
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.
Effective user
Current user ID
Web agent
Scheduled agent
Either:
Agent signer (agent owner)
On behalf of (set in the Security tab of the Agent
Properties box).
When a user runs an agent from the Notes client, the agent runs with the
rights of the effective user, which is the current User ID.
When a Web user runs an agent, the agent also runs using the rights of
the effective user and Domino checks the effective users rights to access
the database. However, you can set up the agent so that Domino checks
the invokers rights to access the database instead of the effective users
rights. Checking the invokers rights can provide more security.
To specify that Domino verify the invokers 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.
Building Applications
When Run as Web user is checked, Domino prompts Web users for
their name and password when they attempt to run the agent. Domino
uses the login information to check for the invokers rights in the
database ACL.
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.
Testing agents
You can test an agent in the following ways:
For agents that do not call other agents, use the Test menu command.
For more complicated agents, create a test copy of the database you
can work with before you work with the original database.
Building Applications
When it ran
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.
Building Applications
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.
Description
Second
column: S M
U
Time of day
If the agent is scheduled to run Check and make sure the agent
daily, weekly, monthly or more is listed.
than once a day, the time of day
the agent will run is listed.
Today
If the agent is scheduled to run Check and make sure the agent
daily, weekly, monthly, or more is listed.
than once a day and the time it
is supposed to run hasnt gone
by, then Today is listed.
Agent Name
Database
Name
Building Applications
Debug_AMgr
To specify that the Agent Manager record debug information, edit
NOTES.INI and add the following statement:
Debug_AMgr=option
where option can be one of the following (but not more than one):
NotesLog Class
Use the NotesLog class in LotusScript and in Java agents that run in the
background. Add the NotesLog class to your agent code to record
run-time information. It is particularly helpful for capturing variable
values, error handling, and verifying code logic. By default, the NotesLog
class records information to the Agent Log. When you set up items you
want recorded, make sure you dont exceed the Agent Log limit.
Building Applications
AgentRunner
AgentRunner is a Java application program for debugging Domino
agents in a Java IDE. There are two versions of AgentRunner for different
package classes:
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.
Mark Document Unread
Marks selected documents as unread. Use this action for flagging a
document that users want to read again.
Modify Field
Replaces or appends a single field value with a new text value you
specify. This action replaces only text values for documents in Edit mode.
To replace a value with something other than text, use an @function
formula or LotusScript program. This action can modify the value of a
hidden field, if you can specify the fields name.
The Append Value option does not work for rich text, number, or time
fields or for fields that are not available within documents already saved
in the database. Also, Append Value is not available if a database does
not contain any documents (for example, a database template).
To include Append Value in databases without documents:
1. Create a place holder document containing the field.
2. Create the agent using the field from the place holder document.
3. Delete the document.
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.
Automation in Applications 10-55
Building Applications
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.
Building Applications
Send Document
Mails the current document to the recipients designated in the
documents SendTo field. This action works like the @MailSend function.
To predict the recipient, the document must have a SendTo field. If it
doesnt, Notes uses the contents of the internal $UpdatedBy field as the
recipient. If the document also contains the CopyTo or BlindCopyTo
fields, it is routed to those recipients at the same time.
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.
LotusScript
Java
Using a
disk-based log
file
NotesLog OpenFileLog(path)
Log openFileLog(path)
Using
Environment
variables
NotesSession
GetEnvironmentString()
Session
getEnvironmentString()
NotesSession
SetEnvironmentVar()
Session
SetEnvironmentVar()
NotesSession GetEnvironment
Value(SystemVariable,true)
GetEnvironmentValue
(SystemVariable,true)
NotesDocument Sign()
NotesDocument Encrypt()
Document sign()
Document encrypt()
Encrypting or
signing
continued
Automation in Applications 10-59
Building Applications
Task
LotusScript
Java
RichTextItem
embedObject()
EmbeddedObject
extractFile(path)
LotusScript statement
Java
File I/O
Chdir
Chdrive
close
curdir
dir
eof
fileattr
filedatetime
filelen
freefile
get
getfileattr
input
input #
inputb
line input #
loc
lock s
lof
mkdir
Open
reset
rmdir
seek
setfileattr
unlock
width
write
Network I/O
N/A
No network I/O
operations allowed
continued
LotusScript statement
Java
Setting system
date/time
N/A
Calling a C routine
Executing another
application
ActivateApp
Shell
Not allowed
Building Applications
Task
@command
@PostedCommand
@MailSend
Numeric calculations
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.
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.
Form
Action
Shared
Action Form
View
Action
Shared
Action View
IE
IE
IE
IE
IE
Notes
browser,
Notes
client,
Netscape,
IE
Notes
browser,
Notes
client,
Netscape,
IE
Notes
browser,
Notes
client,
Netscape,
IE
Notes
browser,
Notes
client,
Netscape,
IE
Notes
browser,
Notes
client,
Netscape,
IE
Netscape,
IE
Netscape,
IE
JavaScript Button
Object
onBlur
Works in Internet
Explorer
(IE),
Netscape
onClick
Works in Notes
browser,
Notes
client,
Netscape,
IE
onDblClick
continued
Automation in Applications 10-63
Building Applications
JavaScript Button
Object
Action
Hotspot
Form
Action
Shared
Action Form
View
Action
Shared
Action View
IE
IE
IE
IE
IE
IE
IE
IE
IE
IE
IE
IE
IE
IE
IE
IE
IE
IE
IE
IE
IE
IE
IE
IE
IE
Netscape,
IE
Netscape,
IE
IE
IE
Netscape,
IE
Netscape,
IE
Netscape,
IE
Netscape,
IE
Netscape,
IE
Netscape,
IE
onFocus
Works in IE,
Netscape
onHelp
Works in IE
onKeyDown
Works in IE
onKeyPress
Works in IE
onKeyUp
Works in IE
onMouseDown
Works in Netscape, Netscape, Netscape, Netscape,
IE
IE
IE
IE
onMouseMove
Works in IE
IE
IE
IE
onMouseOut
Works in IE
onMouseOver
Works in IE
onMouseUp
Choose short names for form and view actions that you design to
appear as action bar buttons.
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.
Shortcut keys
A shortcut key is an underlined letter in a choice on the Actions menu.
Windows, OS/2, and UNIX users type only the shortcut letter to select
the menu item. To specify a shortcut, type an underscore before the letter
you want to assign as the shortcut. For example, S is the shortcut for this
Save action:
_Save
Building Applications
Naming tips
Hide when opened for reading; Hide when previewed for reading
Hides a component when a document is opened in Read mode.
These options are useful for components that are relevant only to
new documents or documents in Edit mode for example, actions
that modify a field.
Hide when previewed for editing; Hide when opened for editing
Hides a component when a document is opened in Edit mode. These
are useful for components that are relevant only to completed
documents for example, moving documents to another database,
creating response documents, or marking documents as unread.
Chapter 11
Including Java Applets in Applications
This chapter describes adding Java applets to forms, documents, and
pages. Although Java applets are used mostly for Web applications, you
can also include them in Notes applications.
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:
When you import an applet, the files are attached as hidden files to
the form, document, or page where you include the Java applet.
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.
When you set up shared applet resources, the files are stored in the
database where you include the Java applets that use those files.
Java applets are supported for most releases of Internet Explorer 4.x
and 5.x and Netscape Navigator 4.x. Browser support is platform
dependent. For the latest information on supported browsers, see the
topic Supported Web browsers in the Release Notes.
11-1
Extending Applications
Applets are self-contained Java programs that can run in your Domino
application. Java applets are often used to add animation to Web
applications. Although Java applets are mostly used for Web
applications, you can also include them in the following elements of a
Domino application:
Java applets created with Notes 4.6 and later will not work with
previous releases of Notes, unless the applet is stored on the Web
and it has no parameters.
Notes 6.0 and later support Java Virtual Machine (JVM) version 1.3.
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:
Select Import an applet from the file system.
In Base Directory, enter the path for the applet files.
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.
5. Browse for the applet files from the local file system, or from the
Shared Resources list, then do one of the following:
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.
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>
Extending Applications
Class *.CLASS
Source *.JAVA
For most applets, you must select all class and resource files. Select the
source files only if you plan to send the applet to another user who wants
to export them and change the applet.
If you are inserting an applet that is packaged as a JAR file, you can enter
the path and the main class name as described above. Note that browsing
for the JAR file inserts the filename with a CLASS extension in the Class
Name field. In some cases, the file name and the main class name are the
same; in other cases, they are different and you must edit what appears
in the Class Name field to be the correct main class name.
If you have more than one applet in a form, document, or page, Notes
stores only one copy of common files.
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.
instead of
http://java.sun.com:80/applets/Bubbles/index.html
4. Click OK.
5. (Optional) Set applet parameters, attributes, and properties.
Extending Applications
In the Base class name field, enter the name of the main class. Note
that Java is case-sensitive to file names.
4. Click Add.
5. Enter the parameter name. For example, enter bgcolor for the
following HTML tag:
<param name=bgcolor value="black">
3. Select the Java applet and if the Programmers pane is not displayed,
choose Java Applet - Java Applet Parameters.
4. Click Applet Parameters.
5. Click Paste to add the parameters and their values.
Tips
To change a parameter value, click its name in the Programmers
pane. Then change its value in the Parameter value window.
1. Select the Java applet and, if the Programmers pane is not displayed,
choose Java Applet - Java Applet Parameters.
2. Click HTML Body Attributes.
3. Enter an HTML attribute in the formula window.
Extending Applications
Setting properties
Use the Java Applet Properties box to set applet properties (such as
height and width). You can also use the Properties box to hide an applet
by condition, or to hide an applet based on the browser accessing it.
Description
Base class
DocBase
CodeBase
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
Domino displays the text you specify when it cant run the
when applet is not applet. Enter a simple text string, such as This applet is
running
not working at this time.
Applet uses Notes Enable the applet to access Notes objects.
CORBA classes
Applet uses
CORBA SSL
security
When a user accesses a document that uses this form, the Web server
fills in the field with a string describing the browser type and
version. The format of the string differs according to the browser.
Some examples:
Mozilla/3.0Gold (WinNT; I)
Mozilla/2.0 (compatible; MSIE 3.02; Update a; Windows
95)
Extending Applications
4. Select the Java applet and choose Java Applet - Java Applet
properties. Click the Hide When tab and enter a formula that uses
this field to hide the applet for a particular browser. Use the
@contains(HTTP_USER_AGENT; string) formula.
For example, use the following formula to hide the applet from
Internet Explorer:
@Contains(HTTP_USER_AGENT; "MSIE")
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.
Extending Applications
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.
Extending Applications
3. Enter password.
Externalization
The applet stores specific information that it needs in order to return
to the state it was in before it was reinitialized. To maximize
efficiency, it is recommended that you use externalization.
Serialization
The applet stores all information, for example, each variable and its
current value, each class, and all header information.
Considerations
Although you can set up an applet for both externalization and
serialization, Notes cannot support both. An error is not reported, but
one applet cannot do both.
In the Java applet itself, you must write methods to support the Java
Externalize interface. If the applet does not have these methods, you can
still run the applet. However, the data cannot be saved, even if you set
up the parameters.
If you save data, keep these points in mind:
If the applet is imported in a subform, the data from the subform has
precedence over the data in the form. Therefore, modifying an applet
in a subform modifies all of the forms that include that subform.
Extending Applications
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:
ReadExternalData
Directly after reinitialization, the applet uses this parameter to load
data previously saved.
ExternalData
Any time after reinitialization, the applet uses this parameter to load
data previously saved.
WriteExternalData
After a Notes save event, the applet uses this parameter to save
current data. The data is saved as an external object with an
attachment in the document that references it. The attachment is
hidden and cannot be seen by the user.
4. If you want the applet to load data at some other point after
initialization, click Add and do the following:
In the Parameter Name field, enter ExternalData and click OK.
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:
In the Parameter Name field, enter SaveExternalData and click
OK.
mydata
If the file attachment does not exist, Notes creates it and stores the
data in it.
Example HTML code
<PARAM NAME="readexternaldata" VALUE="mydata">
<PARAM NAME="writeexternaldata" VALUE="mydata">
Serialization
There are two parameters available to direct Notes to save and reuse
serialized data:
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.
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.
Extending Applications
To set serialization
1. Select the Java applet and choose Java Applet - Java Applet
Parameters.
2. Click Applet Parameters in the Programmers pane, and then click
Add.
3. To load the previously saved data, enter the following in the
Parameter Name field and click OK:
Object
4. In the Parameter value window, enter the value for Object. Its value
is the name of a file that contains the previously saved state
information from the WriteObject parameter. This file is attached to
the page, form, or document where the applet is stored. For example,
enter:
mydata
5. To save the applet data, click Add, enter the following in the
Parameter Name field, and click OK:
WriteObject
6. In the Parameter value window, enter the value for WriteObject. Its
value is the name of the file that is attached to the page, form, or
document where the applet is stored. For example, enter:
mydata
Check that you included all the necessary applet files. Choose Java
Applet - Refresh to add additional files to the applet. To make sure
you have all the files, select All for File Types and click Select All to
include everything.
Check that you entered the correct name for the applet files. Java is
case sensitive, so the file names must match exactly.
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.
Extending Applications
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?Op
enDocument
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/$F
ILE
This results in a URL that allows the applet to successfully find the file.
Extending Applications
Because the documents ID has been removed (and since the image is in
an attachment in the document and thus needs $FILE to qualify the file
name), the requested image cannot be found by the applet.
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.
Chapter 12
Including Java Servlets in Web Applications
The following topics describe creating and running Java servlets on a
Domino Web server. Servlets are invoked by URLs and are capable of
performing a wide variety of custom operations for a Web application.
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
servlets 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 applets 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.
12-1
Extending Applications
Best uses
Agent
Servlet
CGI program
Servlet: Loaded once; stays loaded until the HTTP server task is shut
down or restarted. This gives servlets a significant performance
advantage over agents or CGI programs. However, this also means
that the servlet classes can be accessed from many requests
simultaneously, so you must make sure that the servlet code is
thread-safe.
Agent: LotusScript and Java agents can use the Domino object classes.
Formula agents can use most @functions.
Extending Applications
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.
Class path
Servlet file
extensions
Extending Applications
Setting
Options
Maximum active
sessions
Session persistence
Alias
Initialization arguments
Servlet aliases
The alias directive has this syntax:
servlet.<alias-name>.code=<class-name>
For example:
servlet.SQLQuery.code=sql.database.query.Servlet
Extending Applications
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 servlets class files into memory
the first time a URL is received that refers to the servlet. However, you
can specify that one or more servlets should be loaded immediately
when the servlet manager is started. This prevents users from
experiencing delays when servlets are first requested from URLs.
The startup directive has this syntax:
servlets.startup=<alias or class> <alias or class> ...
Note that servlets is plural and that the servlet names must be
separated by spaces.
12-8 Application Development with Domino Designer
If you have given a servlet one or more aliases, you can include the
aliases in the startup directive. This will cause the servlet manager to
load the servlet classes and then create an instance for each alias.
After the servlet manager loads a servlets classes, they stay in memory
until the Domino HTTP task is stopped by the console command tell
http quit or restarted by the console command tell http restart. Before
unloading a servlet, the servlet manager calls the destroy() method for
each instance of the servlet, to give it a chance to clean up resources.
A class that has been loaded by the JVM class loader remains loaded
until the HTTP task is stopped. The tell http restart command will not
unload the class.
Example properties file
Here is an example of a servlets.properties file:
java.util.*;
java.io.*;
javax.servlet.*;
javax.servlet.http.*;
Extending Applications
After you compile this code, copy the ExampleServlet.class file to your
server domino\servlet directory. It does not need any special properties,
so you do not need to create a servlets.properties file. Run the servlet
from a browser by entering this URL, using the name of your server:
http://www.yourserver.com/servlet/ExampleServlet
Chapter 13
Connecting to Enterprise Data
This chapter describes tools and techniques for connecting a Designer
application to enterprise data.
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:
@DB commands
Domino Connectors
Extending Applications
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.
Description
Domino version
DCR - Database
Connection Resource
R4.6 or higher
LS:DO - LotusScript
Data Object
R4.0 or higher
continued
Extending Applications
Connectivity solutions
Description
Lotus Domino
Connector LotusScript
Classes
Lotus Domino
Connectors
LSX - LotusScript
extensions
Domino version
R4.0 or higher
Extending Applications
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.
Maximum number of concurrent connections
Set the maximum number of concurrent connections for the data
connection. The default is one.
Block key field updates
This option is checked by default to prevent the value of a key field from
changing. Key fields are used in back-end lookups.
Only update changed fields
This option prevents any updates to fields in the external data source
unless the corresponding fields in the Notes document have been edited.
Use this option if you have triggers in the external system that monitor
updates to individual columns of a table.
Enable conflict detection
This option ensures that the external data has not changed since the
Notes document was opened. If it has changed, an update to the external
data source will fail.
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.
Connecting to Enterprise Data 13-7
Extending Applications
Once you have defined the basics of the data connection resource, you
can customize the resource with some optional information. The
following options are available on the Options tab of the Data
Connection Resource Properties box and apply to all types of data
connections.
DB2
Data
journaling
ODBC
Single
threading
OLE DB
Provider
OLE DB
OLE DB
Extending Applications
Application Setting
4. In the Data Source Options section, browse for or enter the name
for the metadata object name and the corresponding external field.
Note that if you are developing an application locally, you will not
be able to browse external metadata. The type of field in the
metadata for example text or integer is indicated by an icon.
5. Specify an existing data connection resource.
6. Check Key field if this field corresponds to a field in the external
application that you want to designate as the key field. Every data
connection requires a key field the key field is the link between the
form and the back-end database or application. Note that key fields
are always stored locally as well as on the back-end.
Extending Applications
7. (Optional) If you want data from fields other than the key field
stored locally, mark each of these fields as a Data field and select the
Store locally option. For these fields, data will be stored in the
Domino database as well as in the back end database. Changes you
make in the Domino database are pushed back to the back end
database. If the back end changes, you can manually refresh the
Domino database by pressing F9 with the document open or by
closing and opening the document.
8. Select the form that describes the records you want to import and
click OK.
A DECS Administrator dialog box asks you to confirm your request
to create documents based on that form using the specified key field.
9. Click Yes to create the documents.
A dialog confirms the number of documents imported into the
database. To view the documents, open the database in the Notes
client.
Note Before you add or edit records, you must enable the Allow
connections to external databases using DCRs database property.
For more information on creating a DCR, see Creating a database
connection resource and Using a data connection resource on a form.
Example: Using a data connection resource
In this example, a data connection resource allows users to view and edit
information stored in a Microsoft Access database from a Notes database.
A database named Show Dogs contains a collection of information
related to show dogs. A data source named Dogs on the server where
the Access database resides specifies ODBC as the data driver to use with
the Show Dogs database.
In the Notes database, showdogs.nsf, a DCR named Canines
establishes a connection to a table named Canines in the Access
database.
The following form shows the fields used to add records about the show
dogs to the Access database.
The ID field on the form is associated with the ID field in the Access
database. The Field properties box shows the settings that specify the
data connection resource, the table name, the field name, and the
designation of the field as a Key field.
Extending Applications
All of the values for ID will be stored locally in the NSF file. When users
create documents from this form, the values are pushed to the Access
database. A sample view of the documents looks like this:
For more information about ODBC, see the Microsoft ODBC 2.0
Programmers Reference and SDK Guide published by Microsoft Press.
(ODBC.INI in Windows 95), you use the Windows Control Panel, a utility
such as the Windows ODBC Administrator Utility, or a script or formula.
To register a data source for ODBC in Windows
You can use the operating system to register a data source for ODBC.
Using the operating system allows you to register the data source
hardware, software, and database type.
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.
6. Click Close.
Red
Yellow
Green
White
Blue
Black
Record 3
Red
Green
Blue
Column 2
Green
Column 3
Blue
Yellow
White
Black
Record 3 does not display because it does not contain unique data.
Extending Applications
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
@DbColumn returns all the values in one column of a table, or all the
distinct values.
@DbColumn and @DbLookup can only retrieve data. They cant add,
delete, or modify data, or perform other operations. @DbCommand can
retrieve data or send other SQL statements that can change data.
LotusScript provides a wider range of capabilities including the ability to
update the external database.
For more information about accessing external databases through ODBC
and the ODBC versions of @DbColumn, @DbLookup, and
@DbCommand, see the Programming Guide.
The LotusScript Data Object (LS:DO)
This LSX-compliant module allows you to use LotusScript to write
applications that incorporate data from external non-Notes data sources.
Your script may perform the following steps:
Chapter 14
Including OLE and ActiveX Objects in Applications
This chapter illustrates ways to design applications that use OLE and
ActiveX technology to integrate data from other applications.
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.
Using OLE and OLE-related tools in Designer, you can:
Extending Applications
Using Object Linking and Embedding (OLE) and OLE tools lets you
extend the capability of Designer. OLE technology lets you integrate data
from other applications, such as spreadsheets, graphics tools, and other
data sources, into your application.
Publish an action
This is the most powerful of the OLE-based tools because it is the
most flexible. You can automate complicated or repetitive tasks that
involve multiple operations across multiple applications. You design
an action using formulas or scripts, and then publish it. The action
appears on the Action menu in any Notes/FX 2.0-enabled
application. This feature is not available for Web applications.
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.
OLE and LotusScript
To build on the power of OLE, use LotusScript to create or enhance
workflow applications. You can use LotusScript to create, manage, and
update objects within Notes documents.
For more information on using LotusScript with OLE objects, see the
Programming Guide.
To link an object in a form
To link to an object, it must already exist in the source application.
Extending Applications
Copy and cut the entire object. (Use the Edit menu to copy and cut
selected text in the object.)
Access Notes properties for the control, including the name of the
control.
You are trying to embed an ActiveX control which does not support
being inserted manually (the control can only be embedded
programmatically). Check the Windows registry to see if the control
supports being inserted (embedded); if the control is listed under the
\\HKey_classes_root, verify that the Insertable key appears under
the controls name.
You are trying to embed an OLE object or ActiveX control which has
not been installed correctly or the Windows registry contains
conflicting information about the OLE object or ActiveX control.
Reinstall the OLE object or ActiveX control to resolve the issue.
You may have multiple versions of Notes installed. For OLE to work
properly, the Windows registry must be accurate. Make sure you are
using the most recently installed version of Notes.
Extending Applications
The property you chose takes effect after you save and close the form
or document.
Extending Applications
Extending Applications
If you create an object in a rich text field on a form, when users create a
document, the object launches. If you dont 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.
A new object that is created and then stored in a rich text field.
Extending Applications
Select the name of the rich text field in the Create object in field
box or choose First Rich Text Field.
new name when they save the Notes document containing it. Their
custom version of the slide presentation is now in the database, where
other sales representatives can access it.
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 document.
When people read the document, the 1-2-3 object is visible in the rich text
field, but the object does not autolaunch. To edit the object, the user opens
the document in Edit mode and double-clicks the object to launch it.
Extending Applications
All users have access to and can launch the other application and
always work in that application.
Revising the data in the object is optional; therefore, you dont need
to launch the application every time the Notes document opens.
Users who create and edit documents need to fill in other fields on
the form.
Some users have operating systems, such as OS/2, that dont support
OLE objects, but they still need to read the information or edit other
fields in the Notes document.
Extending 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 dont need to see the Notes document;
instead, they want to autolaunch the expense report object in 1-2-3.
To design a form that mirrors your users workflow, create an Expense
Report form, embed a worksheet object in the form, and set the form
properties to automatically launch the worksheet. In the Hide when
box, select:
Opening Create
Closing Create
Opening Edit
Closing Edit.
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.
Extending Applications
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.
For information about creating an action, see Adding Automation to
Applications.
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.
Two-way
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.
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.
Including OLE and ActiveX Objects in Applications 14-19
Extending Applications
User-defined fields
These fields exchange data in two directions, but you must create these
pairs of fields, since they do not exist by default in the OLE server
application file or in Notes. User-defined fields usually exchange
working data, such as text or numbers.
For more information about fields in OLE server applications that
exchange data with Notes, see the documentation for the OLE server
application.
Data type
Contents
LastRevisionDate
Time
NumberOfEdits
Number
EditingTime
Number
SizeInPages
Number
SizeInK
Number
DocumentClass
Text
Subject
Text
Categories
Text (allow
Keywords that Notes uses to categorize
multi-values) documents
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.
You create a form to file and distribute trip reports. The reports contain
descriptions of the important business aspects of the trip, as well as the
total expenses. You record expenses in a Lotus 1-2-3 expense report
template. You want the total expenses of the trip to appear automatically
in the Notes document.
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.
Extending Applications
When users use the form Trip Report to create reports and activate the
123 object to enter expenses, the total expenses are automatically inserted
back in the Trip report document.
Chapter 15
Including XML and Viewing DXL in Designer
Applications
This chapter describes using XML to tag data in a Designer application
and to exchange data between applications. It also describes how to
export design element as XML and how to transform design elements to
XML using an XML style sheet, or XSL. For additional information on
using XML in Domino applications, see the Programmers Guide.
Extending Applications
What is XML?
a tag for the book itself, but you can also create tags that describe each of
its sub elements so that its possible to differentiate between data such as
the publishers 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 employees 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 employees benefits reflect
the new selections.
The advantages of XML
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:
Extensible, that is, you can define tags that describe your data
Nonproprietary
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.
Extending Applications
For example, you can use the DXL Viewer utility to display one or more
design elements as DXL or use the DXL Exporter utility to write that
same information to a file. Once exported in this way it would be
possible to integrate all or part of your application design into other
XML-aware applications. But what if the other application has a different
definition for elements like forms and views? Thats where the DXL
Transformer becomes useful. This utility can convert the DXL
representation of Domino design elements into other XML formats using
definitions in a stylesheet (XSL). Well-formed HTML qualifies as another
XML format so the DXL transformer can function as a type of report
writer by importing design elements as DXL documents, applying an
XSL stylesheet to the design elements and reformatting the output as
HTML. For instance, one of the sample stylesheets that ships with
Designer (REPORT-AllLSinForm.xsl) searches for all the LotusScript
code contained in a form and presents it in an easy to read outline. For
example, if you select the Memo form from the Lotus Notes 6 mail
template and apply the stylesheet REPORT-AllLSinForms.xsl your
output will appear as follows:
Thus, if you need a particular design analysis not available via the
standard Design Synopsis feature, you can design your own report by
creating a new XSL stylesheet. The DXL utilities give you full control
over both the content and format of the output document.
For more information on the Domino DTD, see the Programmers Guide.
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.
Extending Applications
XML terminology
The following is a list of important XML-related terms and definitions.
attribute: A name and its value which are included inside an XML tag.
For example, in the tag <book isbn=0-395-73679-X>, isbn is the name
and its value is 0-395-73679-X (values are enclosed in single or double
quotes).
Cascading Style Sheet (CSS): A style sheet that defines the appearance
of an XML or HTML document directly on the client.
child: An XML element located inside another XML element.
content model: In XML, the expression specifying what elements and
data are allowed within an element.
Document Type Declaration: A declaration that contains, or points to, a
Document Type Definition (DTD).
Document Type Definition (DTD): A collection of markup declarations
contained in a single, or multiple XML files, that describes an XML
documents permissible elements and structure. A DTD ensures that a
uniform structure will be used across all documents.
DTDless: Refers to an XML file with no DTD. A browser processes the
XML document structure while its reading the document because it has
no DTD to define the structure in advance.
DXL: Domino Extension Language. DXL is the representation of Domino
design elements as XML using the Domino DTD.
element: A block of text in an XML document made up of a start and end
tag, and the content between the tags. Empty tags are also elements. For
example, <price>$12.60</price> and <price/> are both elements.
encoding attribute: An attribute inside the XML declaration that
indicates the level of encoding in the document. For example, <?xml
version=1.0 encoding=UTF-8> indicates that a compressed form of
unicode will be used that assigns one byte for ascii characters, two bytes
for other common characters, and three bytes for all other characters.
Hypertext Markup Language (HTML): A markup language consisting
of predefined tags used to describe a documents structure and
appearance.
parent: An XML element which contains another XML element. The
XML element contained by the parent is the child element.
root element: The element that contains all of the other elements in an
XML document.
15-6 Application Development with Domino Designer
Extending Applications
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.
To create documents in XML format
1. Create a new form or page.
2. Enter the document type declaration that is:
<?xml version="1.0" ?>
3. Enter the XML elements, generally a root element with sub elements.
4. Enter the fields that will hold the data you are marking with XML.
5. Choose Design - Form Properties.
6. On the Form Info tab, choose Render pass through HTML in
Notes.
Extending Applications
This property tells Domino to pass all of the document text to the
HTTP requester without generating HTML tags.
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"?>
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 XML View is embedded into a page that contains the XML
declaration and the root element <BOOKCATALOG>.
Including XML and Viewing DXL in Designer Applications 15-11
Extending Applications
In order to produce XML using a view, you have to map the XML tags
from your DTD to the columns in the view. Once you have created a
view and mapped the XML tags to it, you embed the view into a page. A
view embedded into a page maintains the same functionality on the Web
as a view in a Notes client application and allows you to control the size
and appearance of the view display. For views displaying XML, the page
contains the XML declaration and root element.
6. Click Form Formula on the Objects tab and enter a formula that
selects your template form.
7. Add columns to the view.
8. Click the first column of the view.
9. Enter a column formula in the Script area using the following syntax.
<PARENT><CHILD>+fieldname+<\CHILD>
If you have more than one element for any column, add a semicolon
(;) at the end of the first column formula and add the column formula
for the next element below it.
<PARENT><CHILD>+fieldname+<\CHILD>;
<CHILD>+fieldname+<\CHILD>;
<CHILD>+fieldname+<\CHILD>
Tip Use the following syntax to make a field an attribute of an element.
<CHILD attributeName=\+fieldname+\>+fieldname2+</CHILD>
Tip Click the second column and type a column formula into the Script
area using the syntax below.
<CHILD>+fieldname+<\CHILD>
10. Repeat Step 10 for each XML element except the last one.
Tip For the last child element, the use the syntax below.
<LASTCHILD>+fieldname+<\LASTCHILD></PARENT>"
Embedding a view in a page
1. Open or create a page.
2. Select Design - Page Properties.
3. Click the Page Info tab.
4. In Web Access, select "Treat page contents as HTML," and close the
Page properties box.
5. Type an XML declaration above the place where you want the
embedded view to display.
7. Select Create - Embedded Element - View.
8. (Optional) If you dont 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 Programmers
pane to display the appropriate view.
9. (Optional) Click the embedded view and select Element - View
Properties to change the alignment, or style, or to hide the element
under certain conditions.
10. Type a close root tag below the view.
To delete an embedded view, click the embedded view in the Work pane
and select Edit - Clear.
Extending Applications
6. Place the cursor where you want the embedded view to display.
The agent could be written to not only print the output, but also to store
XML output in a string variable and write it to a static XML document or
to another database system using LS:DO or the DECS connector APIs.
Example: XML Agent
This example is a LotusScript agent that retrieves each document in a
view called XML, creates XML from the content, and prints the output.
Dim
Dim
Dim
Dim
s As New NotesSession
db As NotesDatabase
doc As NotesDocument
view As NotesView
Set db = s.currentDatabase
Set view = db.GetView( "XML" )
Set doc = view.GetFirstDocument
Print "Content-type: text/xml"
'Prevents Domino from sending default headers.
Print "<BOOKCATALOG>"
'BOOKCATALOG is the root element of the XML document.
While Not ( doc Is Nothing )
'Loop as long as there are document objects available.
Print
"<BOOK>"
Servlets are Java programs that run in response to a request from a Web
browser. Unlike agents, servlets load when the Web server starts up and
stay resident on a server. They are commonly used for generating and
updating Web pages dynamically and for exchanging data between
different applications. You can extend the power of servlets to bridge
applications by using XML as a common language between applications.
Not only can a Java servlet produce and deliver XML tags to the server
for processing, a servlet can also interact with the LotusXSL processor to
format the data described by the XML tags. XML in conjunction with XSL
provides you with a powerful tool for customizing the transfer of data.
Extending Applications
Support
Customer
Contacts
Orders
Internet
Extending Applications
Chapter 16
Creating a Workflow Application
This chapter describes how to create a workflow application by using
automatic mailing features.
Workflow overview
16-1
Extending Applications
Workflow applications let you automate tasks. These tasks most often
involve automatically sending mail messages or automatically routing
documents, such as tracking orders and project plans to be reviewed. All
projects need one or more people to complete a series of tasks and can
benefit from workflow applications because they guide the project
through these tasks automatically. Workflow applications reduce
overhead and errors, speed processes, and track the status of a project. For
example, a workflow application might automatically send a document in
a publishing company from writer to editor to proofreader to production.
At each stage, an individual is responsible for specific tasks related to that
document. Once the task is complete, the workflow application ensures
that the individuals responsible for the next task are notified and receive
the data they need to execute their part of the project.
Action item notifications, which send notices of new action items and
reminders of past due items
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 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:
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.
Extending Applications
In addition, all forms and views contain the default action Send
Document that you can display in the Actions menu or the action bar.
For more information on reserved fields for mailing options, see the topic
Reserved fields that control mailing options in the chapter Designing
Fields.
Copy the form into the master mail template on the server and
refresh the design of mail databases.
The simple action Send Mail Message with the option Include
copy of document selected
In addition, all forms and views contain the default action Forward
that you can display in the Actions menu or the action bar.
16-4 Application Development with Domino Designer
Extending Applications
If you want the Mail Send dialog box to appear so that users have the
option of mailing, saving, signing, or encrypting a document, do one of
the following:
Description
Mail-in
name
Description
Domain
Server
Filename
17. In the Subject box, click Formula, type the following formula and
click OK:
ActionItem + ", due " + @Text(DueDate)
Extending Applications
13. Check Include summary for each document in view and click OK.
14. Close and save the agent.
Chapter 17
Using Third-Party Tools and WebDAV to Extend an
Application
This chapter describes the various ways you can use third-party tools to
extend and enhance a Domino application. Not only can you use
third-party tools to develop pieces of an application, Domino lets you
launch the tools from within Designer for more flexible application
development.
17-1
Extending Applications
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:
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.
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.
Extending Applications
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.
File resources
Images
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).
On the Advanced tab of the database ACL, set the The maximum
Internet name & password field to either Designer or Manager
access.
Ensure that you have the correct proxy settings configured for the
WebDAV client.
Extending Applications
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.
Notes about working with WebDAV
The following are tips for using WebDAV with an NSF file.
If a database has the field Dont allow URL open enabled in the
Database Properties box, then you will not be able to access the
database using a WebDAV client.
Limitations
The following are WebDAV-enabled clients that should work
correctly with WebDAV on a Domino server: Microsoft Internet
Explorer 5.0x or greater, Windows Explorer on NT, Windows XP,
Windows 98, Windows 2000 Macromedias Dreamweaver 4.01,
Microsoft Word 2000 and Excel 2000.
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.
Extending Applications
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
Extending Applications
Chapter 18
Application Security
This chapter describes Designer features that limit access to applications
and to parts of applications. It does not provide a comprehensive
description of Domino security features.
For information on server and workstation security, see Administering the
Domino System.
Security in an application
Domino offers a multi-layered approach to security. Server
administrators can secure databases, servers, and domains. Database
designers and managers control the following:
Application Security
18-1
Deploying Applications
Use the database access control list (ACL) to restrict access that
specific users and servers have to an application. You can also use
the Advanced section of the ACL to further restrict application access
for Web users.
An access level
A user type
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 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.
Deploying Applications
Assign to
Manager
Designer
A database designer
and/or the person
responsible for design
updates.
Editor
Create documents.
Edit all documents, including those created
by others.
Read all documents unless there is a
Readers field in the form. If there is a
Readers field, the Editor must be listed to
be able to read or edit the document.
Author
Assign to
Depositor
Create documents.
No Access
Terminated users,
users who do not
need access to the
database, or users
who have access on a
special basis.
You may want to
specifically assign No
Access to individuals
who should not have
access to a database,
but who may be
members of a group
that does.
Deploying Applications
Reader
Default privileges
Optional privileges
Manager
Create documents
Create private agents
Create personal folders/views
Create shared folders/views
Create LotusScript/Java agents
Read public documents
Write public documents
Delete documents
Replicate or copy documents
Designer
Create documents
Create private agents
Create personal folders/views
Create shared folders/views
Read public documents
Write public documents
Delete documents
Create LotusScript/Java agents
Replicate or copy documents
Editor
Create documents
Read public documents
Write public document
Delete documents
Create private agents
Create personal folders/views
Create shared folders/views
Create LotusScript/Java agents
Replicate or copy documents
Author
Create documents
Delete documents
Create private agents
Create personal folders/views
Create LotusScript/Java agents
Write public documents
Replicate or copy documents
Reader
Access level
Default privileges
Optional privileges
Depositor
Create documents
No Access
None
Create documents
Select this privilege for all users with Author access. If you deselect this
privilege to prevent Authors from adding any more documents, they can
continue to read and edit documents theyve already created.
Delete documents
Authors can delete only documents they create. If this privilege is
deselected, a user cant delete documents, no matter what the access
level. If a form contains an Authors field, Authors can delete documents
only if their name, a group that contains their name, or a role that
contains their name appears in the Authors field.
Deploying Applications
This table describes the design elements to which the database designer
can restrict access by using roles.
To restrict who can
An Authors field
Sections
View properties
Form properties
Deploying Applications
Deploying Applications
4. Click Add.
-Default-
LocalDomainServers
OtherDomainServers
All of these entries, except for the database creators 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.
-DefaultUsers and servers receive the access assigned to the -Default- group if
they have not specifically been assigned another access level, either
individually or as a member of a group, or from a wildcard entry. You
cannot delete the -Default- group from an ACL. The default access for
-Default- depends on the design of the database template and varies
among the different templates.
The access level you assign to the -Default- group depends on how
secure you want the database to be. Select No Access if you want a
database available to a limited number of users. Select Author or Reader
access to make a database available for general use. The User Type field
for -Default- should be set to unspecified.
LocalDomainServers
The LocalDomainServers group lists the servers in the same domain as the
server on which the database is stored. This group is created by default
with every Domino Directory. When you create a new database, the
default access for the LocalDomainServers group is Manager. The group
should have at least Designer access to allow replication of database design
changes across the domain. The LocalDomainServers group is typically
given higher access than the OtherDomainServers group.
18-12 Application Development with Domino Designer
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.
Wildcard entries
User, server, and group names (including user and group names of
Internet clients)
Alternate names
LDAP users
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.
Here is an ACL entry in wildcard format:
*/Illustration/Production/Acme/US
This entry grants the chosen access level to:
Deploying Applications
Sandra E Smith/West/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.
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.
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.
Server names
You can add server names to an ACL to control the changes a database
receives from a database replica. To ensure tighter security, use the full
hierarchical name of the server for example, Server1/Sales/Acme
regardless of whether the name of the server being added is in a different
hierarchical organization than that of the server that stores the database.
Group names
You can add a group name for example, Training to the ACL to
represent multiple users or servers that require the same access. Users
must be listed in groups with a primary hierarchical name or an alternate
name. Groups can also have wildcard entries as members. Before you can
use a group name in an ACL, you must create the group in the Domino
Directory or in an LDAP directory that has been configured for group
expansion in the Directory Assistance database.
Tip Use individual names rather than group names for the managers of
a database. Then when users choose Create - Other - Memo to Database
Manager, theyll know whom they are addressing.
Groups provide a convenient way to administer a database ACL. Using a
group in the ACL offers the following advantages:
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.
You can change the access level for several users or servers at the
same time.
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
Application Security 18-15
Deploying Applications
Tip You can also use groups to let certain users control access to the
database without giving them Manager or Designer access. For example,
you can create groups in the Domino Directory for each level of database
access needed, add the groups to the ACL, and allow specific users to
own the groups. These users can then modify the groups, but they cant
modify the database design.
group, if such a group has been created. (If no such group exists, the
dialog box displays No Deny Access group selected or available.)
For more information on the Deny Access group, see Administering the
Domino System.
Alternate names
An alternate name is an optional alias name that an administrator assigns
to a registered Notes user, often to publish a name in two different
character sets, such as English and Kanji. You can add alternate names to
an ACL. An alternate name provides the same level of security as the
users primary hierarchical name. An example of a user name in alternate
name format is Sandy Smith/ANWest/ANSales/ANAcme, where AN is
an alternate name.
LDAP users
You can use a secondary LDAP directory to authenticate Web users. You
can then add the names of these Internet users to database ACLs to
control user access to databases.
You can also create groups in the secondary LDAP directory that include
the Internet user names and then add the groups as entries in Notes
database ACLs. For example, an Internet user may try to access a
database on a Domino Web server. If the Web server authenticates the
user, and if the ACL contains a group named Web, the server can look
up the Web users name in the group Web located in the foreign LDAP
directory, in addition to searching for the entry in the primary Domino
Directory. Note that for this scenario to work, the Directory Assistance
database on the Web server must include an LDAP Directory Assistance
document for the LDAP directory with the Group Expansion option
enabled. You can also use this feature to look up the names of Notes
users stored in foreign LDAP directory groups for database ACL
checking.
When you add the name of an LDAP directory user or group to a
database ACL, use the LDAP format for the name, but use a forward
slash (/), rather than a comma (,), as a delimiter. For example, if the
name of a user in the LDAP directory is:
uid=Sandra Smith,o=Acme,c=US
enter the following in the database ACL:
uid=Sandra Smith/o=Acme/c=US
Deploying Applications
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:
Access specified
Anonymous access
enabled in database
ACL
The Domino server uses the group name Anonymous solely for access
control checks. For example, if Anonymous has Author access in the
database ACL, the true name of the user appears in the Authors field of
documents the user creates in the database. The Domino server can
display only the true name of anonymous Notes users, but not of
anonymous Web users, in the Authors field of the document. Authors
fields are never a security feature, regardless if anonymous access is
used; if the validity of the authors name is needed for security, then the
document should be signed.
Replica IDs
To allow an agent in one database to use @DbColumn or @DbLookup to
retrieve data from another database, enter the replica ID of the database
containing the agent in the ACL of the database containing the data to be
retrieved. The database containing the agent must have at least Reader
access to the database containing the data to be retrieved. Both databases
must be on the same server. An example of a replica ID in a database
ACL is 85255B42:005A8fA4.
If you do not add the replica ID to the access control list, the other
database can still retrieve data if the -Default- access level of your
database is Reader or higher.
To determine the replica ID of a database, choose File - Database Properties, and click the Info (i) tab. Or choose File - Database - Design
Synopsis, and select Replication.
Deploying Applications
The ACL first checks the user name to see if it matches any of the
ACL entries. The ACL checks all matching user names. For example,
Sandra E Smith/West/Acme would match the entries Sandra E
Smith/West/Acme/US and Sandra E Smith. In the event that two
different entries for an individual have different access levels (for
example, applied at different times by different administrators), the
user trying to access the database would be granted the highest
access level, as well as the union the access privileges of the two
entries for that user in the ACL.
If no match is made on the user name, the ACL then checks to see if
there is a group name entry that can be matched. If an individual
trying to access the database happens to match more than one group
entry for example, if the person is a member of Sales and the two
group entries for Sales are Sales/West/Acme and Sales/Acme
then the individual is granted the highest access level, as well as the
union of the access privileges of the two entries for that group in the
ACL.
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.
If no match can be made from among the database ACL entries, the
individual is granted the level of access defined for the -Defaultentry.
Deploying Applications
Deploying Applications
Its 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.
Access level conflict
Resolution
You can also redirect the logout to a design element or URL. For
example:
"Http://acmeserver/sessions.nsf?logout&redirectto=/logoutDB.
nsf/logoutApp?Open"http://acmeserver/sessions.nsf?logout&red
irectto=/logoutDB.nsf/logoutApp?OpenPage
You can build this expression into an application for example, using it
in a button or type it in as a URL.
Deploying Applications
Http://acmeserver/sessions.nsf?logout&redirectto=http://www.
sales.com
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.
Note that the server administrator actually has three options in allowing
access over the SSL port:
With anonymous access over the SSL port Web users can connect
to the server using the SSL port, however, the server allows
anonymous users.
With name and password access Web users connect to the server
over the SSL port, and authenticate using name and password.
With access through client certificates Web users have been issued
an X.509 client certificate and connect to the server over the SSL port.
They are authenticated using this client certificate.
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.
Deploying Applications
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.
Access level
-Default-
No Access
Do not select Read or Write
public documents privileges.
Anonymous
No Access
Do not select Read or Write
public documents privileges.
Authorized readers
Reader
Contributors
Author
Supervisors
Editor
Reader
Access level
-Default-
Reader
Anonymous
No Access
Do not select Read or Write
public documents privileges.
Authorized readers
Reader
Editor
Editor
Access level
-Default-
Reader
Anonymous
Reader
Contributors
Author
Supervisors
Editor
Editor
Access level
-Default-
Author
Anonymous
Author
Supervisors
Editor
Editor
Signed fields
Encrypted fields
Hidden fields
Deploying Applications
Create
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 arent 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:
They are listed in the forms Read access list or Readers field.
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 users full hierarchical name in the Authors field.
Deploying Applications
Select Allow multi-values for a field that stores a text list with
multiple names. Concatenate the names in the formula with a
colon.
"Mary Sen":"Marketing":"Joyce O'Connor"
Place quotation marks and square brackets around role names that
qualify access levels.
"[Scheduling Committee]"
Deploying Applications
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.
Deploying Applications
8. Select Modify all Reader and Author fields from the list below
Administration Server.
9. Click OK.
For more information on the Administration Process (adminp), see
Administering the Domino System.
For more information on creating views and writing view selection
formulas, see Creating a standard view.
Deploying Applications
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.
Let the author of the document choose who can edit the section.
Specify the users, groups, or roles who can edit the section.
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.
18-38 Application Development with Domino Designer
Deploying Applications
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 views read access list. The access role is stored
within the Service Request Tracking database; it is not added to the
Domino Directory.
Deploying Applications
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.
6. Deselect All readers and above in the Default read access for
documents created with this form section.
7. Click each user, group, server, and access role you want to include.
8. (Optional) Check Available to Public Access users if you want
documents in this view or folder available to users with public access
read or write privileges in the access control list for this database.
Deploying Applications
For information on the first three items, see Administering the Domino
System.
Database encryption
Database encryption is designed to prevent unauthorized access to
locally stored databases and is not intended as a replacement for
field-level encryption. Database encryption provides an additional layer
of security because ACL settings do not protect locally stored databases.
Database encryption uses a public-key algorithm. Encryption generates a
random encryption key, encrypts this key with the public key associated
with a specific user ID, and appends the resulting key to the specified
database. A user can access an encrypted database only if the users
private key can decrypt the appended key. It is a good idea to encrypt
Deploying Applications
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.
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:
Simple
Medium (default)
Strong
18-46 Application Development with Domino Designer
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 users 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 users 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.
Application Security 18-47
Deploying Applications
Notes uses public key encryption for electronic mail, and Domino
Designer also lets you use public key encryption for encrypting fields in
documents. Every user has a unique public key associated with their user
name and stored in their user ID. Applications reference the keys by the
users names in a special field called PublicEncryptionKeys. When a
document is saved, all the user names in this field are located in the
Domino Directory or the users personal address book, the
corresponding keys are retrieved, and all fields marked with a special
property are encrypted with those keys.
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.
You can encrypt documents with keys in several ways:
Using public keys. You can encrypt documents with public keys on
IDs so that only users with those IDs can read the documents. To do
this, you enter one or more names in the Public Encryption keys field
on the Security tab in the Document Properties box.
Field encryption
A database designer can encrypt fields with secret encryption keys. To
decrypt these fields, users must merge the secret encryption keys into
their ID files. If the user does not have the required encryption key, the
encrypted fields appear blank.
Deploying Applications
Create a secret encryption key, associate it with the data you want to
secure, and distribute it to the members of the Financials group.
Identify the four members of the Financials group and use each
members public key to encrypt the information.
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
encryption key with the form. Then, the four people in the Financials
group who have the Salary encryption key can create, read, and edit
encrypted salary history documents, including the data in the
CurrentSalary field.
Using public key encryption, you specify the names of the four members
in the Public Encryption key list associated with the CurrentSalary field.
Then the people named in the list can create, read, and edit encrypted
Salary History documents, including the data in the CurrentSalary field.
Users who dont have the Salary encryption key and are not in the Public
Encryption key list can read everything in the Salary History documents,
except the data in the CurrentSalary field, but they cant edit and save
existing encrypted documents.
Considerations
Before you distribute secret keys, consider the following:
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.
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.
Deploying Applications
Import Key button in the User ID dialog box on their own computer to
add the key to his user ID.
Consider exporting secret keys to files if you are distributing keys to
application users who do not use Notes mail, because only Notes mail
users can receive and merge a key via e-mail. Second, if you dont have
complete confidence that the recipients ID file and password are secure,
then you shouldnt trust that the mail system is secure enough for
something as potentially sensitive as a secret key.
Deploying Applications
5. If prompted to do so, enter the password associated with the file, and
then click OK.
6. Click Accept.
"ConfidentialKey"
Deploying Applications
Deploying Applications
Deploying Applications
Chapter 19
Completing an Application and Managing Design
Changes
This chapter describes how to document an application and how to test it
before deployment. Because applications often require redesign, this
chapter also describes how to make, control, and distribute design
changes to applications that are already in use.
Completing an application
As you prepare to deploy an application, consider these finishing
touches:
Creating an icon for the application.
Deploying Applications
19-1
Deploying Applications
The About document can contain rich text, so you can also use
document, view, and database links, buttons, attachments, graphics, or
multimedia files.
The "Using Database" document
Create a Using Database document to provide users with instructions
on using various forms, views, and navigators in the database. To
display this document, users choose Help - Using This Database.
The Using document, like the About document, can contain rich text, so
you can also add document or database links, buttons, attachments,
graphics, or multimedia files.
A Using This Database document should include:
The purpose of each agent, when to run it, and the anticipated
results.
To create a document
1. In Designer, open the database youre designing.
2. In the Design pane, click Other - Database Resources.
3. Double-click About Database Document or Using Database
Document.
4. Write or edit the information. You can also create links, buttons,
hotspots, and attachments. You can apply text styles, as you would
for any Notes form.
5. Save the document.
Deploying Applications
Deploying Applications
3. Select Event: Window Title and enter Help as the window title
text in the formula window below.
4. Save and close the form.
5. Choose Create - Help for each Help document.
6. Click the form youre designing and choose Design - Form
Properties.
7. Deselect Include in Menu.
8. Click the form, and then save it.
9. Create a view that displays the Help documents.
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.
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
19-8 Application Development with Domino Designer
Deploying Applications
Do forms that are longer than one page have page numbers?
If not, click the Printing tab in the Form Properties box and add &P
to the formula for the header or footer.
Deploying Applications
Are encrypted fields accessible to users who have the encryption key
and inaccessible to all other users?
Make sure that only authorized users have the encryption key. If
unauthorized users have the encryption key, change the encryption
key and redistribute it only to authorized users.
For information on writing field help and field hints, see the topic
Writing Help for fields earlier in this chapter.
Are all the documents that should be in the view displayed, or are
too many documents displayed?
If the view is not displaying the correct documents, check the view
selection formula.
Deploying Applications
Checking columns
4. Press TAB and change the file name to include the NTF extension
reserved for templates. If you specify a directory in addition to a file
name, the new database is placed in the directory you name as a
subdirectory of the Notes Data directory. You specify a location for
the Data directory during installation. If the directory doesnt exist,
Notes creates it for you.
5. Select Database design only in the Copy section of the dialog box.
6. Deselect Access Control List.
7. (Optional) Click Encryption to encrypt the database and protect its
contents from being accessed at the operating system level. Then
click OK.
8. Choose File - Database - Access Control to define an appropriate
access control list for the template.
The following access levels are recommended for the access control
list of a template used for design maintenance:
Reader
Reader
No Access
Manager
Database Manager
Manager
[Anonymous]
[Default]
[LocalDomainServers]
[OtherDomainServers]
Note The items within the square brackets are needed only if the
template is going to be used for creating new databases. The brackets
are required for these entries.
For more information on putting a database into production, see the
chapter Deploying an application.
Deploying Applications
Default
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.
Deploying Applications
Design synopsis
The Design Synopsis dialog box lets you generate a detailed report on a
particular database. The report lets you:
Filter the contents of the report so that you do not automatically get a
lengthy report
Deploying Applications
Pop-ups
Graphics
Form names if you leave the original name as a synonym to the right
of the vertical bar (|) symbol.
New fields
Field names
Deleted fields
$Revisions lists the date and time of each editing session since the
first time the document was saved.
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.
Deploying Applications
To add a field
If you create a new field, create an agent that inserts the new field into
existing documents using the formula:
FIELD New field name := value;
where New field name is the name of the field and value is the value you
want the field in these documents to have. The value can be the field
default value; a formula that calculates the value; or a null value () that
inserts the field into the documents, but doesnt give them any initial
value.
After you run the agent, compact the database to reduce the actual file
size of the database.
To rename a field
If you rename a field, existing documents continue to refer to the old
field name. To update documents to refer to the new name, create an
agent that uses the formula:
FIELD New field name := Old field name;
FIELD Old field name := @DeleteField;
where New field name is the new name for the field, and Old field name is
the original name for the field.
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.
To specify a form to display documents
You can display a document with a form that you specify rather than a
stored form. To do so, create an agent that uses the following formula:
FIELD FORM:="New Form name";
This line creates a FORM field where New Form name is the form that will
display the documents.
Deploying Applications
Deploying Applications
Templates
A template is a skeleton that contains design elements, but no
documents. When you use a template to create a database, the templates
design elements are copied to the database created from that template.
You can use the Designer templates as is or customize them. Or, you can
create a template by creating a database with the NTF file extension and
the Database is a template property. This property enables the master
template to distribute design changes automatically to databases created
from it. Databases that inherit their designs from master templates
receive the latest changes through a nightly server task.
Note If, for some reason, you do not want a database to inherit designs
automatically via the nightly server task, you have two options: Do not
put the template on a server that runs the nightly update task or do not
set the Database is a template property. You can then distribute
changes to the database design by using the Replace Design command,
specifying the server where the template is located and selecting the
template. Make sure to set the database properties so that the database
does not automatically inherit the design via the nightly server task.
Naming conventions
You can use letters, numbers, and underscores in the name. Choose a
name that indicates the application type or design elements
represented in the template. For example, StdR6Disc represents a
standard Notes template containing the design for a Lotus Domino
Designer 6 Discussion database.
The master template name, the title, and the categories assigned to
the database cannot add up to more than 99 characters.
Completing an Application and Managing Design Changes 19-27
Deploying Applications
Creating templates
Using a template, you can establish design standards for use throughout
your company. In large companies, a central development group usually
designs and manages templates to provide consistent designs and speed
up distribution of new databases. Use a template to standardize similar
types of applications for example, all discussion databases or to
store individual design elements, such as fields, forms, views, folders,
navigators, and agents that you can use in a variety of applications.
To customize a Designer template, choose File - Database - New Copy to
copy the original template and inherit the original design. Give it a
different file name in the Copy Database dialog box to prevent future
releases from writing over your customized template.
Heres a list of changes you might make when you customize a Designer
template:
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.
Change the newly copied template name (choose File - Database Properties) to a name that indicates the new templates purpose.
Design considerations
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.
Databases that inherit their design from a template you create do not
contain the ACL entries LocalDomainServers and
OtherDomainServers. You must add these entries to the template
with brackets as follows: [LocalDomainServers] and
[OtherDomainServers].
Deploying Applications
A spinoff template
Most users mail databases inherit their design from the standard Notes
mail template, but the Eastern region employees need a Reply to
Customer form in their mail databases. Make a copy of the Notes mail
template to use as a base for the Eastern mail template. You inherit the
design from the Notes mail template, but after creating the Reply to
Customer form, you click Prohibit design refresh or replace to modify
in the Design Document Properties box so the form wont be deleted
when the server re-synchronizes the design of mail databases.
The Eastern regions template inherits its design from the Domino mail
template and also serves as a template itself.
MAIL6.NTF (StdR6Mail)
|-SLEE.NSF Sam Lees mail inherits from StdR6Mail
|-EASTMAIL.NTF (StdEastMail) Eastern mail template inherits
from StdR6Mail
|- SBRAUN.NSF Sandy Brauns mail inherits
from StdEastMail
A designer's notebook
You create a new template called DesignNotebook to store centralized
information, such as employee names and product numbers, as well as
generic design elements, such as Main Document forms and All by
Category views. Developers and experienced users browse through the
Design Notebook when they create a new database and copy and inherit
elements to speed up their design work.
DESIGN.NTF (DesignNotebook)
|- Suggestion Box: Inherit the All by Category view from
DesignNotebook
|- Employees Directory: Inherit the Employee Information
form and EmployeeID field
from DesignNotebook
|- Product Catalog: Inherit the Product ID Update agent
from DesignNotebook
template that is maintained and updated centrally and have the changes
automatically propagate to all databases that you choose to inherit from
that template. This is especially useful if you have forms or images that
will be common to a number of different databases that need occasional
updating, such as company logos or order forms.
Copy from template
source.nft
Form
target.nsf
5. Open the Database Properties boxes of the design elements, click the
Design tab, select Inherit from the design template, and type the
template name.
Deploying Applications
After updating database designs, the Designer task also reloads the
LDAP schema on a Domino server that runs the LDAP service. You can
run the Designer task manually.
For more information on master templates, see the topic Creating a
database from a template in the chapter Creating an Application.
For more information on the LDAP service, see Administering the Domino
System.
Deploying Applications
This figure below summarizes the steps you take to make and distribute
design changes to different types of databases.
Deploying Applications
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.
The database icon (unless you have disabled the Prohibit design
refresh or replace to modify box in the Design Properties box)
Agents
Pages
Framesets
Navigators
Completing an Application and Managing Design Changes 19-37
Deploying Applications
Shared fields
Replacing a design
The Replace Design command makes a database identical to a template
and is the only way to distribute design changes if the database doesnt
inherit its changes from a template. If you have at least Designer access
in the database ACL, you can replace the design of a database with the
design from a template.
If you use a template to refresh or replace the database design, to ensure
that the option Prohibit design refresh or replace to modify takes
effect, select this option as well as the option Propagate this prohibition
of design change in the design properties of the template.
The database icon (unless you have disabled the Prohibit design
refresh or replace to modify box in the Design Properties box)
Pages
Agents
Navigators
Framesets
Shared fields
All options on the Design tab of the File - Database Properties box,
except List as advanced template in New Database dialog
Deploying Applications
Deploying Applications
3. In the Work pane, select the name of the design element you want to
unlink.
4. Do one of the following:
For an agent, choose Agent - Agent Properties.
For a script library, choose Edit - Properties.
For other design elements, choose Design - Design Properties.
5. Click the Design tab.
6. Remove the name of the template in the Inherit from the design
template box.
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.
When you hide a database design, users cannot:
Deploying Applications
Deploying Applications
3. In the Work pane, select the name of the design element you want to
hide.
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.
Deploying Applications
Chapter 20
Deploying an Application
This chapter describes how to distribute, copy, organize, and replicate
databases once you have completed your design work.
20-1
Deploying Applications
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
Task
Considerations
Set up a replication
schedule
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.
Considerations
Create an index for the database Create a full-text index for the database if
users need to search the database for
For information, see
Administering the Domino System. information. If you create the index before
you copy a new copy of the database or a
replica to a server, the index settings carry
over to the new copy or replica.
Distribute encryption keys.
Deploying Applications
Task
Task
Considerations
Make sure that users and other servers are listed in the servers
access control list.
5. Next to Title, enter a title for the database. The database icon and the
Open Database dialog box display this title.
6. Next to File Name, enter the path and file name of the database.
Limit the file name to eight characters plus the NSF extension.
7. Choose one:
Database design and documents to copy the database design
and all documents.
Database design only if you do not want to copy any
pre-existing documents.
8. Optional steps:
Choose Access Control List to copy the ACL.
You can assign ACL settings (including roles) before or after you
copy a local database to a server. Before you copy the database,
assign yourself Manager access to the ACL so that you will have
Manager access to the new copy. If you do not copy the ACL
when you copy the database to a server, the ACL in the new copy
automatically lists you with Manager access.
Select Create Full Text index to create a full-text index on the
new copy.
You can also create a full-text index at a later date.
Choose Encryption to encrypt the new copy of the database.
Deploying Applications
Deploying Applications
12. Select Copy Access Control List to copy the ACL from the original
to the new replica. If you want to be a Manager of the new replica,
make sure you have Manager access in the ACL of the original. Or to
automatically give yourself Manager access to the new replica,
deselect Copy Access Control List. Make sure the server on which
youre creating the replica is included in the ACL and any design
element access lists.
13. (Optional) Select Create full text index for searching to create a
full-text index on the new replica.
For more information on full-text indexes, see Administering the
Domino System.
14. Click OK.
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:
Controls
Only replicate incoming The cutoff date, so that a replica Other panel
only receives documents created
documents saved or
or modified since the date.
modified after: date
Which documents are scanned
during the first replication after
clearing the replication history.
The size of documents that a
replica receives.
Replicate a subset of
documents*
Replicate*
Advanced panel
Send panel
Send panel
Temporarily disable
replication
Other panel
Scheduled replication
priority
Other panel
CD-ROM publishing
date
Other panel
Deploying Applications
Deploying Applications
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.
Default
Description
Forms, views,
and so on
Agents
Replication
formula
Access control
list
Replicate
Default
Description
Deletions
Fields
Deploying Applications
Deploying Applications
Deploying Applications
Deploying Applications
4. Select the server that stores the replica with which you want to
replicate.
5. Select Send documents to server to send updates from the replica
selected on your workspace to the server selected in Step 4.
6. Select Receive documents from server to send updates from the
server selected in Step 4 to the replica selected on your workspace.
7. Click OK.
Chapter 21
Optimizing and Troubleshooting Databases
To optimize database performance, you can set properties for individual
databases and configure the database cache to improve overall database
access time on a server. To keep a database size to a minimum, you can set
database properties that save disk space, compact databases, set database
size quotas, and regularly delete inactive documents in databases.
Deploying Applications
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 6 Help.
Deploying Applications
Deploying Applications
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.
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.
To optimize
performance/size
Improves
database
performance?
Reduces
database
size?
Basics
Deselect option
Yes
Yes
Basics
Select option
Yes
No
Yes
Yes
Yes
No
Yes
No
Yes
No
continued
Deploying Applications
Property
Property
Tab
To optimize
performance/size
Improves
database
performance?
Reduces
database
size?
Dont support
specialized response
hierarchy
Slightly
No
Limit entries in
$UpdatedBy fields
Yes
Limit entries in
$Revisions fields
Yes
Compact databases
Compacting databases
Styles of compacting
There are three styles of compacting:
Copy-style compacting
Deploying Applications
This style of compacting is useful for databases that you expect to stay
the same size or to grow in size.
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.
In-place compacting with space recovery and reduction in file size
This style of compacting reduces the file size of databases as well as
recovers unused space in databases. This style of compacting is
somewhat slower than in-place compacting with space recovery only.
This style of compacting assigns new DBIIDs to databases, so if you use it
on logged databases and you use a certified backup utility, perform full
backups of the databases shortly after compacting is complete. This style
of compacting allows users and servers to continue to access and edit
databases during compacting.
When you run Compact without specifying options, Domino uses this
style of compacting on databases that arent enabled for transaction
logging. Domino also uses this style of compacting when you use the -B
option. To optimize disk space, its 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 cant
edit databases during compacting, and they can only read databases if
the -L option is used.
Domino uses copy-style compacting by default when you use an option
with Compact to enable a database property that requires a structural
change to a database or when you run Compact on a database that has a
structural change pending that was initiated from the Database
Properties box. Enabling or disabling the database properties Document
table bitmap optimization and Dont support specialized response
hierarchy require structural database changes.
The following table compares the three styles of compacting.
21-10 Application Development with Domino Designer
Characteristics
In place, space
recovery
In place, space
Copy-style
recovery with file
size reduction
Logged
databases with
no pending
structural
changes
Unlogged
databases with
no pending
structural
changes
Current release
Relative speed
Fastest
Medium
Slowest
Yes
Yes
No (unless -L
option used)
Yes
Yes
No
No
Yes
Yes
No
No
Yes
Databases with
pending
structural
changes
Deploying Applications
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
folder called \archive. The file name for the archive database is
l_xxxxx.nsf where xxxxx represents the first five characters in the source
database file name for example, l_sales.nsf. You can customize the
location and file name of the archive log. Multiple databases can share
one Archiving Log.
You can archive documents on the client or on a server.
Deploying Applications
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:
5. Below Which documents should it act on? click the arrow and
select an option. Click Add Search, specify the search criteria, then
click OK.
6. (Optional) To archive deleted documents, on the bottom pane next to
Run, select Simple action(s) then click Add Action. Then select
Copy to Database and select the archive copy of the database
created in Step 1. Click OK and go to Step 8.
7. In the bottom pane next to Run, select Simple action(s) then click
Add Action. Then select Delete from Database.
8. Close and save the agent. Then choose View - Agents, select the
agent and choose Actions - Test to simulate a run and test that it
works correctly.
9. Save and close the agent if necessary.
Deploying Applications
Description
Replication history
Deploying Applications
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:
The document edited and saved the most times becomes the main
document; other documents become Replication or Save Conflict
documents.
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.
Save conflicts
A save conflict occurs when two or more users open and edit the same
document at the same time on the same server, even if theyre editing
different fields. When this situation occurs, the first document saved
becomes the main document. Before the second document is saved, a
dialog box indicates that the user is about to save a conflict document
and if the user saves the document, it becomes a Replication or Save
Conflict document.
Note ACL and design changes never result in replication or save
conflicts; the most recent change always prevails.
Deploying Applications
Move the database to a disk that is less heavily used, or if its a large
database, to its own disk.
Deploying Applications
Appears in
Appears in
Database Activity User Activity
Log entries
dialog box
Yes
Yes
No
No
Yes
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).
1. Make sure that you have Designer or Manager access in the database
ACL.
2. Open the database and choose File - Database - Properties.
3. Select the Info(i) tab, and then click User Detail.
4. Select Record Activity to enable activity recording.
5. (Optional) Select Activity is Confidential to allow only users with
at least Designer access in the database ACL to view the activity.
6. Click OK.
Deploying Applications
Keyboard shortcuts
When users open this database, theyll see information about the new
location.
The last argument, SALES, provides the name of the server on which
the database is located.
Deploying Applications
Deploying Applications
3. Click the Files tab and select the database that stores the reported
document.
4. Choose Tools - Database - Find Note.
5. Select one:
by Note ID
by Universal Note ID (UNID)
6. Paste or enter the Note ID or UNID from Step 1 into the ID field.
7. Click Find.
8. View the document details and properties in the Fields and
Properties fields.
For more information about determining the Notes ID for a document, see
the chapter Completing an Application and Managing Design Changes.
The new replica contains the ACL of the source server but you did
not copy the ACL
Deploying Applications
On the Advanced panel, make sure that the Deletions option under
Replicate incoming is not selected.
On the Send panel, make sure that the Do not send deletions made
in this replica to other replicas option is selected.
Unused space
One replica has been compacted while another has not been compacted.
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.
Deploying Applications
The new replica contains the ACL of the source server but you did
not copy the ACL
On the Send panel, if the option Do not send deletions made in this
replica to other replicas is selected, a source server doesnt send
deletions to another replica.
Deploying Applications
Chapter 22
Enabling an Application for Domino Off-Line Services
This chapter introduces Domino Off-Line Services (DOLS) and explains
the developers tasks in enabling applications so that users can take IBM
Lotus Domino Release 6 Web applications offline, work in them, and
synchronize their changes with an online replica on the Domino server.
22-1
Deploying Applications
Deploying Applications
One reason you may want to change the default bitmaps is to replace the
default English words in the images with another language. Or, you may
want to say something other than Install Subscription, Go Offline, or
Go Online, or use different colors.
You must create a frame for the Web Control in the main frameset of the
subscription. The default height and width for each bitmap file is 64
pixels by 16 pixels. To change the default height and width of the
bitmaps, edit the JavaScript in the DOLS Web Control page. (Make
sure you also adjust the size of the frame that contains the bitmap.)
Each subscription can have only one Web control.
Using an icon
The DOLS Load Download Page page contains an icon called
DOLS.GIF, which loads into a new frame in the subscription. Unlike the
Web Control, there is no popup menu. A user clicks the icon to install the
subscription. Once the subscription is installed, the user must manage
the subscription (for example, synchronize, or open the subscription
online or offline) with the Sync Manager.
An advantage of using this page instead of the Web Control is that the
subscription downloads faster. Or you may want to use your companys
logo as the icon for downloading the subscription. The recommended
way to use this page is to include it as a frame in a frameset. You can also
cut and paste the JavaScript to another page or design element, but the
disadvantage of cutting and pasting is that you do not automatically
receive changes the next time you upgrade.
Deploying Applications
Action
Domino services to
install offline
Custom services to
install offline
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 iNotes Sync Manager.
Name of Field
Action
Type of schedule
Daily
Weekly
Monthly
Start time
Frequency
Repeating schedule
Interval
Limitations
Stop synchronization at
Recurrence exceptions
Schedule disabled
Deploying Applications
7. Click the Sync Options tab and complete the following fields:
Name of Field
Description
File Rules
Required files to Enter the subscriptions required files. Required files are
databases, templates or directories that are automatically
replicate
installed offline, and are replicated every time the
subscription is synchronized.
All required files and directories must be specified
relative to the servers data directory.
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 Enter the subscriptions optional files. Optional files are
databases, templates or directories that can be enabled or
replicate
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.
All optional files and directories must be specified relative
to the servers data directory.
Optional databases replicate as stubs, meaning only the
design is replicated. Users can open Sync Properties, click
the Sync Options tab, select the database, and deselect the
disable box. The data is then replicated at the next
synchronization. To save disk space, users can disable an
optional file, and the data is removed at next
synchronization.
Enable replication of optional files by default:
Select this box to automatically download and
synchronize new databases found in the subscriptions
directories on the server. For example, if one of the
optional databases is designed to create new databases,
the new databases are automatically downloaded and
synchronized.
continued
Name of Field
Description
File Rules
Synchronize directory catalog:
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 servers default offline catalog is replicated with
the subscription. A catalog filename specified here will
override the servers default offline directory catalog.
Choose the Replicate as an optional file checkbox to
specify the catalog as an optional file. If the directory
catalog is specified an optional file, the Enable
replication of optional files by default checkbox must
be checked for the catalog to replicate the first time.
In order for iNotes Access for Outlook users, or iNotes
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 servers
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
Deploying Applications
Directory catalog
Name of Field
Description
Sync Options
Date Filtering
Halt Conditions
Notify on completion of sync Select this box if you want the user to
receive a message when synchronization is
complete. The user can override this setting.
If warnings are displayed during the
synchronization process, and this option is
selected, each warning message will
display.
continued
22-10 Application Development with Domino Designer
Name of Field
Description
Deploying Applications
Action
Name of field
Action
Network Settings:
Deploying Applications
Here are a few tips to keep in mind when enabling a multiple database
subscription for offline use:
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.
Similarly, to make sure all NTF files in the SalesApp directory are
included in the replication, specify the following:
SalesApp\*.ntf
22-14 Application Development with Domino Designer
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]
Deploying Applications
Argument
Description
-d
-f
Enter this argument, then enter a name for the INF file,
including the INF suffix. If you do not use the -f argument,
the default file name will be the same as the name of the
directory specified in the -d argument.
The INF name must match the compressed EXE or .DLL file
name. For example, if the EXE file is N_MYCUSTOM.EXE,
specify N_MYCUSTOM here to produce
N_MYCUSTOM.INF.
-v
-h
Examples
DOLMKINF -d project\myfiles
DOLMKINF -d project\myfiles -f project\n_mycustom
DOLMKINF -d project\myfiles -f project\n_mycustom -v 1.0
The utility generates an INF file containing the number of files in the
program; the number of bytes for the files in the program; and the
version number of the program.
4. Open the Offline Subscription Configuration Profile document. Click
the Services tab, then select Custom Services.
5. Specify your program name (without the N_ prefix or .EXE suffix) in
the Custom Services to install offline field. For example:
MYCUSTOM
In this example, DOLS looks for N_MYCUSTOM.EXE and
N_MYCUSTOM.INF in the \filesets directory. The files are installed
to the iNotes client program directory on the users machine.
6. (Optional) Specify a setup program and any arguments your
program takes. For example:
MYCUSTOM SETUP.EXE -r
In this example, DOLS looks for N_MYCUSTOM.EXE and
N_MYCUSTOM.INF in the \filesets directory. The files are installed
to the iNotes client program directory on the users machine.
Then SETUP.EXE runs and takes the -r argument.
22-16 Application Development with Domino Designer
Note If you specify more than one program, separate the entries with
commas.
Customizing fields and design elements in a DOLS subscription
The DOLS Customize subform provides a way to override default values
in the fields of other subforms in the subscription. This gives you the
flexibility to customize the subscription to your organizations needs. The
values that you can override are listed in the following table. You can
also attach identity icons to this subform.
After you have copied the DOLS Customize subform from DOLRES.NTF
into the subscription, you can edit it in IBM Lotus Domino Designer
Release 6. 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 todays date.
Identity icons
You can attach identity icon files to the DOLS Customize subform that
identify the subscription on the users computer. You can attach from one
to three identity icons to this subform by choosing File - Attach in Lotus
Domino Designer 6. The icons you attach must be named:
subscription.ico - This icon appears on the users Windows desktop
and serves as a shortcut to the offline subscription. The default is
Deploying Applications
Element
Type
Where Found
Comments
DOLSLoad
DownloadPage
Page
DOLRES.NTF
DOLSRequest
OfflineID
Page
DOLRES.NTF
DOLSWeb
Control
Page
DOLRES.NTF
DOLSWeb
ControlBitmaps
Page
DOLRES.NTF
dolcontrolde
fault.bmp
Bitmap file
attachment
DOLSWeb
ControlBitmaps
Page
DOLSWeb
ControlBitmaps
Page
dolgoonline.bmp
DOLSWeb
ControlBitmaps
Page
Bitmap file
attachment
DOLSEditOffline Agent
Configuration
DOLRES.NTF
continued
Where Found
Comments
DOLSOffline
Configuration
Form
DOLRES.NTF
DOLS
Configuration
Settings
Subform
DOLRES.NTF
DOLSCustomize
Subform
DOLRES.NTF
DOLSDownload
Control
Subform
DOLRES.NTF
DOLSDownload
Instructions
Subform
DOLRES.NTF
SubscriptionTitle
Field
DOLS
Title of subscription.
Configuration
Settings Subform
subscription.ico
Icon file
attachment
syncstate1.ico
Icon file
attachment
syncstate2.ico
Icon file
attachment
Choose
DownloadText
Field
DOLS
Download text radio
Configuration
button
Settings Subform
Basic
Field
DOLS
Basic services check box
Configuration
Settings Subform
Search
Field
DOLS
Full-text indexing check
Configuration
box
Settings Subform
LotusScript
Field
DOLS
LotusScript and agents
Configuration
check box
Settings Subform
continued
Deploying Applications
Name
Element
Type
Where Found
Comments
JavaApplets
Field
DOLS
Java classes and applets
Configuration
check box
Settings Subform
CustomFile
Field
DOLS
Custom services check box
Configuration
Settings Subform
CustomFile
Names
Field
DOLS
Custom services list
Configuration
Settings Subform
CanonicalServer
Name
Field
ScheduleType
Field
DOLS
Schedule type radio button
Configuration
Settings Subform
Weekdays
Field
DOLS
Check box selection of
Configuration
multiple weekdays.
Settings Subform
Monthdays
Field
DOLS
Numeric - not less than 1
Configuration
or greater than 31
Settings Subform
RunOnce
Field
DOLS
Check box
Configuration
Settings Subform
StartTime
Field
DOLS
Date/time
Configuration
Settings Subform
Repeat
Field
DOLS
Check box
Configuration
Settings Subform
RepeatInterval
Field
DOLS
Positive numeric interval
Configuration
Settings Subform
RepeatInterval
Unit
Field
DOLS
Selection list
Configuration
Settings Subform
continued
Where Found
Comments
StopSync
Field
DOLS
Check box
Configuration
Settings Subform
SyncStopTime
Field
DOLS
Datetime
Configuration
Settings Subform
LimitSync
Duration
Field
DOLS
Check box
Configuration
Settings Subform
SyncDuration
Field
DOLS
Positive numeric interval
Configuration
(minutes)
Settings Subform
Disabled
Field
DOLS
Check box
Configuration
Settings Subform
RequiredFilesTo
Replicate
Field
DOLS
Text list
Configuration
Settings Subform
AutoReplicate
Field
DOLS
Check box
Configuration
Settings Subform
OptionalFilesTo
Replicate
Field
DOLS
Text list
Configuration
Settings Subform
LimitReplicate
DaysBack
Field
DOLS
Check box
Configuration
Settings Subform
ReplicateDays
Back
Field
DOLS
Positive numeric integer
Configuration
Settings Subform
LimitDBSize
Field
DOLS
Check box
Configuration
Settings Subform
DBSizeLimit
Field
DOLS
Positive numeric integer
Configuration
Settings Subform
continued
Deploying Applications
Name
Element
Type
Where Found
Comments
LimitSubscription Field
Size
DOLS
Check box
Configuration
Settings Subform
SubscriptionSize
Limit
Field
DOLS
Positive numeric integer
Configuration
Settings Subform
NotifyOn
Completion
Field
DOLS
Check box
Configuration
Settings Subform
RouteMailOn
ShutDown
Field
DOLS
Check box
Configuration
Settings Subform
RunReplication
OnShutdown
Field
DOLS
Check box
Configuration
Settings Subform
Custom
DownloadText
Field
DOLS
Download
Instructions
Subform
From the DOLS Customize subform, you can create a field that
looks up a catalogs name on the server record and populates the
Directory catalog to replicate field with that name.
2. Open the Offline Subscription Configuration Profile document.
3. Enter the name of the catalog in the Directory Catalog field in the
Rules tab.
Adding time zones to a DOLS subscription
When there is a date and time displayed in the subscription, add a time
zone field, too. If you do not specify the time zone, you may confuse the
offline user because the subscription uses the clock of the local machine
(not the clock of the server) when it runs locally. For example, a Chicago
user might view an offline document that displays the local time as 10
AM. At the same time, the online version of the same document displays
the time as 11 AM. By adding time zones, you can display the times as 10
CST and 11 EST.
Setting a sort order for a DOLS subscription
A sort order language determines the rules by which documents are
ordered in views. For example, some applications use a sort order in
which documents are sorted by number first, then letter.
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.
Deploying Applications
Appendix A
Domino Designer Templates
The templates described in the following table are available with Lotus
Domino Designer 6 and specifically intended for use by application
developers.
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 6 Help.
doclbw6.ntf
Notes
StdR6WebDocLib and
Web
users
Reference
Notes
and
Web
users
Database title
Microsoft Office
Library (6)
doclbm6.ntf
StdR6DocLibMS
Notes
users
Personal Journal
(R6)
journal6.ntf
Std6Journal
Notes
and
Web
users
TeamRoom (6)(*)
teamrm6.ntf
Notes
StdR6TeamRoom and
Web
users
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.
File description
Tabular text
Structured text
B-1
Reference
File type
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.
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.
Reference
Reference
5. Click Import.
The data in the source column must fit the data type you specify. If Notes
encounters data that doesnt match the data type you specify, Notes
imports the data as the type it most resembles.
Using formulas
Use @If formulas to test incoming values and display a specific value
in the view, depending on the result of the formula.
Reference
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:
If there is no delimiter at the end of the record (row), you identify the
end of the last field as a null ().
or
LastName: Start 01 WIDTH 12
Reference
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.
The keywords may appear together or alone on a line in the file. These
settings in a COL file override values in the Tabular Text Import dialog
box.
Example
The following COL file is used to import a 1-2-3 .WK3 file that records a
checkbook balance.
;COL file for checkbook worksheet
;Discovers checkbook errors
Define five columns of input
date: WKSCOL A
chknum: WKSCOL B
amount: WKSCOL C
deposits: WKSCOL F
withdrawals: WKSCOL G
balance: WKSCOL K
;Define one column to mark bounced checks
FORMULASTART
FIELD bounced:=@IF(balance<0,"Yes"; "No");
FORMULAEND
Exporting views
You can export a view to a worksheet, a tabular text file, or a structured
text file.
Exporting to a worksheet
When you export a view to a worksheet, each document becomes a row
in the worksheet. Each field becomes a column in the worksheet. The
original field contents become cell contents. Column titles become labels
in the worksheet.
When you export a view to a new worksheet file, Notes exports the file in
1-2-3 WK1 format. Although you can specify any extension with the file
name, its best to keep the extension .wk1. When you open the exported
file in a newer release of 1-2-3, 1-2-3 automatically converts the file to its
new format and adds the appropriate extension.
If you change the exported file to WK2, WK3, or WK4 before opening it
in a release of 1-2-3 that uses that extension, and then open the file in
1-2-3 and attempt to add and save attributes, the new copy of the file will
be in conflict with the original, and you wont be able to save your
changes.
To export to a Microsoft Excel file, export the view as a 1-2-3 worksheet,
and then save the file in 1-2-3 as a Microsoft Excel file.
Reference
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 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 youre exporting to.
5. Do one of the following:
To replace an existing file, select a directory and file name from
the list.
To create a new file, enter a new file name.
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:
To replace the file, click Replace.
To append to an existing file, click Append.
8. Click All documents unless you selected specific documents in
Step 2.
9. (Optional, for 1-2-3 worksheet or tabular text formats) Select
Include View titles to export the views column headings to a
worksheet or tabular text file.
10. (Optional, for structured text format) Change the inter-document
delimiter and word-wrap settings if you are exporting to a structured
text file.
11. Click OK.
32
Space
44
45
58
59
124
Reference
Importing to and Exporting from Views B-13
Appendix C
Developing Applications Using MAPI
This appendix describes the support available in Domino to access your
Domino mail file and the Domino Directory.
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.
C-1
Reference
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.
Notes users who access their Domino mail files from the Notes
desktop
For information about MAPI service providers, see the topic "Using
Microsoft mail programs with Notes" in Lotus Notes 6 help.
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.
Reference
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.
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.
The Profile Setup Wizard automatically installs all three service
providers. When you create a Microsoft Outlook Profile, the wizard uses
information stored in the current Location document in Domino. You
make modifications to the Office (Network) Location document to
configure the location for server-based mail.
To use workstation-based mail, you modify the Local Mail
(Disconnected) Location document. Note that the Location type in the
local mail document must be either Local Area Network or No
Connection. The Mail section of the location document must specify
information about the mail file location, the name of the mail file, and the
domain.
Note During logon to the service providers, the settings for
MDB_NO_DIALOG and AB_NO_DIALOG flags are ignored. As a result,
the user is always prompted for a password.
Address Book template
To access Domino Directories through the Address Book Provider, you
must apply the Domino Directory template (pubnames.ntf) to the design.
If you are using workstation-based mail, apply the Personal Address
Book template (pernames.ntf) to the design of the Personal Address
Books.
CLASS IMAPIContainer
GetContentsTable
GetHierarchyTable
OpenEntry
SetSearchCriteria
CLASS IABLogon
Advise
CompareEntryIDs
GetLastError
Logoff
OpenEntry
Unadvise
GetOneOffTable
CLASS IABProvider
Logon
Shutdown
CLASS IMAPIControl
Activate
GetLastError
GetState
CLASS IMAPIFolder
CopyFolder
CopyMessages
CreateFolder
CreateMessage
DeleteFolder
DeleteMessages
EmptyFolder
GetMessageStatus
SaveContentsSort
SetMessageStatus
SetReadFlags
CLASS IMAPIProp
CopyProps
CopyTo
GetIDsFromNames
GetLastError
GetNamesFromIDs
GetPropList
GetProps
OpenProperty
SaveChanges
SetProps
DeleteProps
Reference
MAPI classes
continued
MAPI classes
Supported methods
CLASS IMAPITable
Abort
Advise
CreateBookmark
FindRow
FreeBookmark
GetLastError
GetRowCount
GetStatus
QueryColumns
QueryPosition
QueryRows
QuerySortOrder
Restrict
SeekRow
SeekRowApprox
SetColumns
Unadvise
SortTable
CLASS IMessage
CreateAttach
DeleteAttach
GetAttachmentTable
GetRecipientTable
ModifyRecipients
OpenAttach
SetReadFlag
SubmitMessage
CLASS IMsgStore
AbortSubmit
Advise
CompareEntryIDs
FinishedMsg
GetOutgoingQueue
GetReceiveFolder
NotifyNewMail
OpenEntry
SetLockState
SetReceiveFolder
StoreLogoff
Unadvise
CLASS IMSLogon
Advise
CompareEntryIDs
GetLastError
Logoff
OpenEntry
Unadvise
continued
MAPI classes
Supported methods
CLASS IMSProvider
CompareStoreIDs
Logon
Shutdown
SpoolerLogon
CLASS IXPLogon
AddressTypes
EndMessage
FlushQueues
Idle (supported, but not used for tightly-coupled
message store)
OpenStatusEntry
Poll (supported, but not used for tightly-coupled
message store)
RegisterOptions
StartMessage (supported, but not used for
tightly-coupled message store)
SubmitMessage
TransportNotify
CLASS IXPProvider
Shutdown
TransportLogon
CLASS IMailUser
CLASS IAttach
CLASS IMAPIContainer
CLASS IMAPIStatus
CLASS IPropData
CLASS ITableData
Reference
Developing Applications Using MAPI C-7
Appendix D
Features to Avoid Using in Web Applications
The majority of design features are available for both Notes and Web
users. This section describes the features that arent applicable to Web
browsers or arent supported for them.
Calendar features
Field properties
Form properties
Formatting features
Frame properties
Hotspot properties
Navigator properties
Table properties
Text styles
View properties
Reference
D-1
Comments
@Certificate
@DbCommand
@DDEExecute
@DDEInitiate
@DDEPoke
@DDETerminate
@DocMark
@DeleteDocument
@DocChildren
@DocDescendants
@DocLevel
@DocNumber
@DocParentNumber
@DocSiblings
@IsCategory
@IsExpandable
@Responses
@DialogBox
@PickList
@Prompt
@IsModalHelp
@GetPortsList
@Environment
@SetEnvironment
ENVIRONMENT keyword
@MailSend
continued
@Function
Comments
@Domain
@MailDbName
@MailEncryptSavedPreference
@MailEncryptSendPreference
@MailSavePreference
@MailSignPreference
@IsAgentEnabled
@IsDocBeingMailed
@Unique
@URLGetHeader
@URLHistory
@UserPrivileges
@Platform for users platform. Returns servers 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
Reference
Agents
Comments
Date Picker
Time control
Duration control
Comments
Advanced properties
Help description
Enable encryption for this field
Notes/FX fields
Comments
Comments
Versioning
Anonymous forms
Merge replication conflicts
Store form in document - Edit mode Read mode is supported, but do not use
for documents that need to be created or
edited on the Web.
Disable field exchange
Automatically refresh fields
Defaults properties
Reference
Comments
Security properties
Default encryption keys
Disable printing/
forwarding/copying to clipboard
Form elements
Layout regions
Pop-up hotspots
ActiveX components, OLE, and
OCX objects
Comments
International characters
Feature
Comments
Ordered lists
Pasting text
Tabs
Tables
Unordered lists
Reference
Basics properties
Domino horizontal rule properties that are not supported on the Web
Avoid using color rules in a Web application. Gradient color is not
supported on the Web.
Comments
Info properties
Auto adjust panes at runtime
Objects
Polyline objects
HiLite properties
Highlight when... options for
navigator objects
Comments
Column spacing
Minimum height
Row spacing
Table Width
Comments
Border color
Border effects
Thickness
Table Margins properties
Left
Right
Table wrap
Compatibility
Table Rows properties
Show only one row at a time
Reference
Features to Avoid Using in Web Applications D-9
Comments
Domino view and folder properties that are not supported on the Web
Avoid using the following view and folder features in a Web application.
Views and folders
Comments
Folders
Views
Options properties
Show in View menu
Comments
Style properties
Unread rows
Alternate rows
Show selection margin
Beveled headings
Advanced properties
Refresh index options
Discard index options
Comments
Pass-Thru HTML
View Info properties
Calendar views
Options properties
On Refresh
Style properties
Reference
Feature
Comments
Advanced properties
Refresh index
Discard index
Unread marks
For ODBC Access
Active Link
Unvisited Link
Visited Link
Restrict initial index build to
designer or manager
Font properties
Title properties
Font
Advanced properties
Show values in this column as links
Appendix E
URL Commands for Web Applications
This section contains information about programming related to Web
applications, such as Domino URL commands, Perl, and CGI scripting.
For information on using formula language, LotusScript Java, and
JavaScript for programming Web sites, see the Domino Designer
Programming Guide.
Reference
E-1
Syntax Guidelines
Domino URLs do not use the server name. Host identifies the server.
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.
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
http://www.mercury.com/discussion.nsf/Docs/By+Author
If you are generating your own URLs for any part of an application,
use simple aliases whenever possible to avoid URLs with
unsupported characters.
Reference
Redirect
Syntax
http://Server/Dummy.nsf?Redirect&Name=notesserver&Id=To=encodedurl
Where:
Example
http://mercury.com/dummy.nsf?Redirect&Name=Mister%2FHankey&
Id=0525666D0060ABBF&To=%FAView%3FOpenView
E-4 Application Development with Domino Designer
OpenDatabase
Syntax
http://Host/__DatabaseReplicaID.nsf?OpenDatabase
Examples
http://www.mercury.com/leads.nsf?OpenDatabase
http://www.mercury.com/sales/discussion.nsf?OpenDatabase
http://www.mercury.com/__852562F3007ABFD6.nsf?OpenDatabase
OpenView
Syntax
http://Host/Database/ViewName?OpenView
http://Host/Database/ViewUniversalID?OpenView
http://Host/Database/ViewNoteID?OpenView
http://Host/Database/$defaultview?OpenView
Examples
http://www.mercury.com/leads.nsf/By+Salesperson?OpenView
http://www.mercury.com/leads.nsf/DDC087A8ACE170F8852562F3007
02264?OpenView
http://www.mercury.com/leads.nsf/$defaultview?OpenView
Optional arguments for OpenView
Append optional arguments to refine the URL. Combine any of the
following arguments for the desired result except where otherwise noted.
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.
Displays the view in collapsed format
Count=n
Where n is the number of rows to display
Expand=n
Where n is the row number to display in expanded format in a
hierarchical view. Do not combine this argument with the
ExpandView or CollapseView arguments.
URL Commands for Web Applications E-5
Reference
CollapseView
ExpandView
Displays the view in expanded format
RestrictToCategory=category
Sets the category for Show Single Category object
Where category is the category to be displayed in the view.
Start=n
Where n is the row number to start with when displaying the view.
The row number in a hierarchical view can include sub indexes (for
example, Start=3.5.1 means the view will start at the third main topic,
sub-topic 5, document 1).
StartKey=string
Where string is a key to a document in the view. The view displays at
that document.
Examples
http://www.mercury.com/leads.nsf/DDC087A8ACE170F8852562F3007
0226400000196?OpenView&CollapseView
http://www.mercury.com/leads.nsf/DDC087A8ACE170F8852562F3007
0226400000196?OpenView&ExpandView
http://www.mercury.com/leads.nsf/By+Category?OpenView&Restrict
ToCategory=pricing
http://www.mercury.com/leads.nsf/DDC087A8ACE170F8852562F3007
0226400000196?OpenView&Start=3&Count=15
http://www.mercury.com/leads.nsf/DDC087A8ACE170F8852562F3007
0226400000196?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/ViewNoteID?ReadViewEntries
http://Host/Database/$defaultview?ReadViewEntries
E-6 Application Development with Domino Designer
Examples
http://www.mercury.com/leads.nsf/By+Salesperson?ReadViewEntries
http://www.mercury.com/leads.nsf/DDC087A8ACE170F8852562F3007
02264?ReadViewEntries
http://www.mercury.com/leads.nsf/$defaultview?ReadViewEntries
Optional arguments for ReadViewEntries
Append optional arguments to refine the URL. Combine any of the
following arguments for the desired result except where otherwise noted.
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
Displays the view in collapsed format
Count = n
Where:
n is the number of rows to display
Expand = n
Where:
n is the row number to display in expanded format in a hierarchical
view. Do not combine this argument with the ExpandView or
CollapseView arguments.
ExpandView
Displays the view in expanded format
KeyType = text|time (
Reference
Examples
http://www.mercury.com/leads.nsf/DDC087A8ACE170F8852562F3007
0226400000196?ReadViewEntries&CollapseView
http://www.mercury.com/leads.nsf/DDC087A8ACE170F8852562F3007
0226400000196?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/DDC087A8ACE170F8852562F3007
0226400000196?ReadViewEntries&Start=3&Count=15
http://www.mercury.com/leads.nsf/DDC087A8ACE170F8852562F3007
0226400000196?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.
Syntax
http://Host/Database/$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
URL Commands for Web Applications E-9
Reference
Example
http://www.mercury.com/leads.nsf/$help?OpenHelp
OpenAgent
Syntax
http://Host/Database/AgentName?OpenAgent
Examples
http://www.mercury.com/sales/leads.nsf/Process+New+Leads?Open
Agent
Note Agents may only be referred to by name. The use of UNID is not
supported when referring to an agent.
OpenForm
Syntax
http://Host/Database/FormName?OpenForm
http://Host/Database/FormUniversalID?OpenForm
http://Host/Database/FormNoteID?OpenForm
http://Host/Database/$defaultform?OpenForm
Examples
http://www.mercury.com/products.nsf/Product?OpenForm
http://www.mercury.com/products.nsf/625E6111C597A11B852563DD0
0724CC2?OpenForm
http://www.mercury.com/products.nsf/$defaultform?OpenForm
Optional argument for OpenForm
ParentUNID = UniqueIDNumber
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/40aa91d55cle4c8285256363004
dc9e0?OpenForm&ParentUNID=6bc72a92613fd6bf852563de001f1a25
OpenNavigator
Syntax
http://Host/Database/NavigatorName?OpenNavigator
http://Host/Database/NavigatorUniversalID?OpenNavigator
http://Host/Database/NavigatorNoteID?OpenNavigator
http://Host/Database/$defaultNav?OpenNavigator
$defaultNav opens the folders pane in a database.
http://www.mercury.com/products.nsf/7B5BC17C7DC9EB7E85256207
004F8862?OpenNavigator
http://www.mercury.com/products.nsf/$defaultNav?OpenNavigator
Reference
Examples
http://www.mercury.com/products.nsf/Main+Navigator?Open
Navigator
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/FormNoteID?ReadForm
http://Host/Database/$defaultform?ReadForm
Examples
http://www.mercury.com/home.nsf/Welcome?ReadForm
http://www.mercury.com/products.nsf/625E6111C597A11B852563DD0
0724CC2?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:
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:
Examples
http://www.mercury.com/leads.nsf/JSLibrary.js?OpenFileResource
CreateDocument
The CreateDocument command is used as the POST action of an HTML
form. When the user submits a form, Domino obtains the data entered in
the form and creates a document.
Syntax
http://Host/Database/Form?CreateDocument
http://Host/Database/FormName?CreateDocument
Where:
FormName is the name of the form being accessed.
http://www.mercury.com/products.nsf/basketballs?CreateDocument
Reference
Examples
http://www.mercury.com/products.nsf/b9815a87b36a85d9852563df004
a9533?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?Edit
Document
Note Rich text fields containing hidden text will be visible to Web users
with Editor access to documents.
OpenDocument
Syntax
http://Host/Database/View/Document?OpenDocument
Where:
Document is any of the following:
DocumentUniversalID
DocumentNoteID
$first
The first document in the view.
Examples
http://www.mercury.com/products.nsf/By+Part+Number/PC156?
OpenDocument
http://www.mercury.com/leads.nsf/By+Rep/35AE8FBFA573336A8525
63D100741784?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/a0cefa69d38ad9ed8525631b006
582d0/4c95c7c6700160e2852563df0078cfeb?SaveDocument
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.
Reference
OpenPage
Syntax
http://Host/Database/PageName?OpenPage
http://Host/Database/PageUNID?OpenPage
http://Host/Database/PageNoteID?OpenPage
Examples
http://www.mercury.com/discussion.nsf/products?OpenPage
http://www.mercury.com/discussion.nsf/35AE8FBFA573336A852563D
100741784?OpenPage
http://Host/Database/PageNoteID?OpenPage&CollapseOutline=n
Examples
http://www.mercury.com/sales.nsf/products?OpenPage&Collapse
Outline=1
http://www.mercury.com/sales.nsf/products?OpenDocument&
CollapseOutline=1
Reference
http://Host/Database/PageUNID?OpenPage&CollapseOutline=n
http://www.mercury.com/sales.nsf/products?OpenPage&Collapse
Outline=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
http://Host/Database/PageNoteID?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&Expand
Outline=5
http://www.mercury.com/sales.nsf/products?OpenDocument&Expand
Outline=5
http://www.mercury.com/sales.nsf/35AE8FBFA573336A852563D10074
1784?OpenPage&ExpandOutline=5.1.2
http://www.mercury.com/sales.nsf/35AE8FBFA573336A852563D10074
1784?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://Host/Database/PageNoteID?OpenPage&StartOutline=n
E-18 Application Development with Domino Designer
Examples
http://www.mercury.com/sales.nsf/products?OpenPage&StartOutline=1
http://www.mercury.com/sales.nsf/products?OpenDocument&Start
Outline=1
http://www.mercury.com/sales.nsf/35AE8FBFA573336A852563D10074
1784?OpenPage&StartOutline=5.1.2
http://www.mercury.com/sales.nsf/35AE8FBFA573336A852563D10074
1784?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.
Using OpenElement with attachments
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.
http://Host/Database/View/Document/$File/InternalFileName/
Filename?OpenElement
Using OpenElement with image files
Syntax
http://Host/Database/View/Document/FieldName/FieldOffset?Open
Element
URL Commands for Web Applications E-19
Reference
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/FieldName/FieldOffset?Open
Element&FieldElemFormat=ImageFormat
Optional argument for OpenElement
FieldElemFormat = ImageFormat
Where ImageFormat is either .GIF or .JPEG. If you do not specify
FieldElemFormat, Domino assumes the image file format is .gif.
Using OpenElement with OLE Objects
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.
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:
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.
Syntax
http://Host/Database/[$SearchForm]?SearchSite[ArgumentList]
Where:
$SearchForm and ArgumentList are optional arguments.
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.
Reference
Example
http://www.mercury.com/mercsrch.nsf/$SearchForm?SearchSite
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/$Search
Form?SearchView
Optional arguments for SearchSite, SearchView, and SearchDomain
$SearchForm
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
Where string is the search 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]
The scope of the search. Where 1 = Notes databases only, 2 = file
system only, 0 = both. The default value is 0. This argument should
only be used with the SearchDomain command.
SearchEntry=formName
Where formName is the name of the form to use for the results of a
domain search. The default argument is ResultEntry, which
supports all of the predefined results fields specified in the
ArgumentList. This argument is valid for SearchDomain only and
should not be used for SearchSite or SearchView.
E-22 Application Development with Domino Designer
SearchFuzzy=[TRUE,FALSE]
Indicate TRUE for fuzzy search. The default is FALSE.
SearchOrder=[1,2,3,4]
Indicate 1 to Sort by relevance, 2 to Sort by date ascending, 3 to
Sort by date descending. The default is 1. SearchView also
supports a SearchOrder value of 4 to Keep current order, which
sorts the resulting set of documents in the order in which they
appear in the view.
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/?Search
View&Query=PC156&SearchOrder=3&SearchMax=1&SearchFuzzy=
TRUE&SearchWV=FALSE
Reference
entries per screen until the maximum number of entries has been
displayed. These parameters work with customized forms only.
Syntax
http://Host/Database/ViewName/[$SearchForm]?SearchView[ArgumentList]
http://Host/Database/ViewUNID/[$SearchForm]?SearchView[ArgumentList]
http://Host/Database/ViewNoteID/[$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&Search
WV=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/F6025FD7E72456F98525654000
5839D3?SearchView&Query=bicycles&Start=21&Count=20&Search
Order=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.
Example of a formula for a Next button or hotspot
@If(Hits >= Count; @URLOpen(/ + @Subset(@DbName; -1) + / +
SearchView + ?SearchView&Query= + @ReplaceSubstring(Query; ;
+) + &Start= + @Text(Start+Hits) + &Count= + @Text(Count) +
&SearchOrder=+@Text(SearchOrder) +&SearchWV=+@If(Search
Vw = 0;FALSE;TRUE)+&SearchThesaurus=+@If(SearchThesaurus
= 0;FALSE;TRUE) + &SearchMax= + @Text(SearchMax)); )
E-24 Application Development with Domino Designer
Reference
Example
http://www.mercury.com/certs.nsf/CertificateProcessed?RequestCert&
Command=SubmitCert&TranslateForm=Certificate
Optional and required fields
The SubmitCert command requires a translation form with a field named
Certificate. Domino saves information about the certificate subject and
issuer in the document if the form contains fields with these names:
CommonName
Org
OrgUnit
Locality
State
Country
IssuerCommonName
IssuerOrg
IssuerOrgUnit
IssuerLocality
IssuerState
IssuerCountry
Example
http://www.mercury.com/certs.nsf/CertificateProcessed?RequestCert&
Command=ServerRequest&TranslateForm=Certificate
URL Commands for Web Applications E-27
Reference
CommonName
Org
OrgUnit
Locality
State
Country
OpenPreferences
Syntax
http://Host/$Preferences.nsf?OpenPreferences[&Arguments]
OpenPreference with no arguments displays a frameset displaying a
menu of choices on the left, and a panel for selecting time zone
preferences on the right. OpenPreferences accepts arguments for
manipulating what preference page displays.
The Host argument can apply to the server named or to all of the servers
in the domain of the specified server. The scope of OpenPreference is
determined by the value in the Web User Preferences field on the Web
Site Template for the specified server. If the Web User Preferences field is
set to Multi-server, the settings for OpenPreference apply to all of the
servers in the domain. If the field value is Single server, the preferences
apply only to the specified server. The server administrator can also set
the field to Disable, which causes the server to ignore any cookies set for
OpenPreference. Speak to your system administrator about setting the
correct scope for the command.
Note Settings a user specifies for OpenPreferences will not override
custom settings you specify for a field or view column.
Examples
http://www.mercury.com/$Preferences.nsf?OpenPreferences
Reference
URL Commands for Web Applications E-29
&PreferenceType=Regional
Displays only the Regional preference page. Regional settings apply
to Date/Time and Number/Currency settings. When the page first
opens, the default for the Preferred Locale field is derived from the
Accept Language setting for the users browser. The other
configuration items are based on the browser defaults that
correspond with the language setting. A user can specify a new value
for Preferred Locale and click the Load default options for this
locale button to apply all of the formats that correspond with the
specified locale. A user can set new preferences or revert to the
defaults.
Syntax
http://Host/Database/FormName?OpenForm&charset=[MIME charset
name]
Where:
[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 form uses the charset=[MIME charset
name] argument. When the server receives the command, it returns the
target form in the specified character set. A URL command that would
return the target form in the Japanese character set is shown below.
http://www.mercury.com/sales.nsf/Summary?OpenForm&charset=
Shift_JIS
Perl Scripts
Reference
CGI variables
When a Web user saves a document or opens an existing document, the
Domino Web server uses CGI variables to collect information about the
user, including the users name, the browser, and the users Internet
Protocol (IP) address.
To capture this information in a Web application:
Reference
URL Commands for Web Applications E-33
Returns
Auth_Type
Content_Length
Content_Type
Gateway_Interface
HTTP_Accept
HTTP_Accept_language
HTTP_Referer
HTTPS
HTTPS_CLIENT_CERT_
COMMON_NAME
HTTP_User_Agent
Path_Info
Returns
Path_Info_Decoded
Path_Translated
Query_String
Query_String_Decoded
Remote_Addr
Remote_Host
Remote_Ident
Remote_User
Reference
Field name
Field name
Returns
Request_Content
Request_Method
Script_Name
Server_Name
Server_Protocol
Server_Port
Server_Software
Server_URL_Gateway_Interface
Appendix F
Accessibility and Keyboard Shortcuts
This appendix provides information regarding designing applications for
maximum accessibility for users with physical challenges.
Reference
F-1
Keyboard shortcuts
The keyboard shortcuts in this section are based on U.S. standard
keyboards. If you are using a screen reader, you may want to maximize
your window so the tables of shortcuts are completely expanded and
accessible.
Click these links to see shortcuts for:
Databases
Dialog boxes
Properties boxes
Reading documents
Working in views
To do this
ALT+F5
ALT+F9
ALT+F10
ALT+W, then number (extended accelerators Open window tab on task bar
in User Preferences must be enabled)
Stop operation in progress
Go to a Web page
CTRL+Q or ALT+F4
Exit Designer
CTRL+TAB
ESC or CTRL+W
F1
F5
Lock User ID
F6
F10 or ALT
SHIFT+ALT+S
SHIFT+CTRL+TAB
SHIFT+DOWN ARROW
SHIFT+F6
SHIFT+F10
SHIFT+UP ARROW
Reference
CTRL+BREAK
To do this
ARROW KEYS
CTRL+N
CTRL+O
Open database
ENTER
ESC
ESC or CTRL+W
F9
PAGE DOWN
PAGE UP
SHIFT+CTRL+F9
SHIFT+F9
SPACEBAR
To do this
ESC
F1
SHIFT+TAB
SPACEBAR
TAB
ALT+DOWN ARROW
ALT+UP ARROW
ALT+ENTER
CTRL+ALT+ENTER
CTRL+END
CTRL+HOME
CTRL+PAGE DOWN
CTRL+PAGE UP
Reference
Press
Press
To do this
ENTER
ENTER
ESC
F1
SHIFT+CTRL+END
SHIFT+CTRL+HOME
SHIFT+CTRL+PAGE DOWN
SHIFT+CTRL+PAGE UP
SHIFT+TAB
TAB
To do this
CTRL+DOWN ARROW
CTRL+E
Edit document
CTRL+END
CTRL+F
CTRL+G
CTRL+HOME
CTRL+P
CTRL+PAGE DOWN
Press
To do this
CTRL+PAGE UP
CTRL+UP ARROW
ESC
F4 or TAB
LEFT ARROW
RIGHT ARROW
SPACEBAR
SPACEBAR
SPACEBAR
CTRL+A
CTRL+C
CTRL+DOWN ARROW
CTRL+UP ARROW
CTRL+V
CTRL+X
DELETE
DELETE
SHIFT+CTRL+DOWN ARROW
SHIFT+CTRL+LEFT ARROW
SHIFT+CTRL+RIGHT ARROW
SHIFT+CTRL+UP ARROW
Reference
Press
Press
To do this
SHIFT+DOWN ARROW
SHIFT+END
SHIFT+HOME
SHIFT+LEFT ARROW
SHIFT+RIGHT ARROW
SHIFT+UP ARROW
To move to
CTRL+LEFT ARROW
CTRL+RIGHT ARROW
END
End of line
HOME
Beginning of line
SHIFT+TAB
SHIFT+TAB
TAB
TAB
CTRL+B
CTRL+E
CTRL+F
CTRL+G
Find next
CTRL+I
CTRL+J
CTRL+K
CTRL+R
Show/Hide ruler
CTRL+T
CTRL+U
CTRL+Z
F2
F7
F8
F9
F11
SHIFT+CTRL+L
SHIFT+F2
SHIFT+F7
SHIFT+F8
Reference
Press
To do
ARROW KEYS
ARROW KEYS
CTRL+END
CTRL+HOME
END
ENTER
ENTER
F6
HOME
SHIFT+8
SHIFT+BACKSPACE
SHIFT+F6
TAB
CTRL+A
CTRL+C
CTRL+F
CTRL+P
CTRL+V
CTRL+X
DELETE
ENTER
F3
F4 or TAB
F9
SHIFT+CTRL+F9
SHIFT+DELETE
SHIFT+F3
SHIFT+F9
SPACEBAR
Reference
Press
Index
Symbols
$$fields
list of, 6-50, 19-21
$$HTMLHead field, 6-51
$$NavigatorBody field, 6-50
$$Return field, 5-48, 6-51
$$ReturnAuthenticationFailure
field, 5-49
$$ReturnAuthorizationFailure
field, 5-49
$$ReturnDocumentDeleted
field, 5-49
$$ReturnGeneralError field, 5-49
$$ViewBody field, 6-50, E-20
$$ViewList field, 6-50
$Anonymous field, 18-34
$ChargeRead field, 6-50
$ChargeWrite field, 6-50
$fields
$Anonymous, 18-34
$HLFormula, 6-31
$PublicAccess, 18-43
$Title, 5-6
$UpdatedBy, 18-34
$VersionOpt, 6-56
$GroupScheduleRefreshMode
field, 6-50
$GroupScheduleShowLegend
field, 6-50
$HLFormula field, 6-30
$Title field, 5-5, 6-51
$trash
creating a trash folder, 7-74
$UpdatedBy field, 18-34
$VersionOpt field, 6-51, 6-56
@commands
for application automation, 10-61
on Web, 2-11
Programmer's pane and, 1-6
referencing, 6-33
@Db commands
@DbColumn, 6-26, 13-16
@DbCommand, 13-16
@DbLookup, 6-26, 13-16
described, 13-1
@functions
for date and time
calculations, 6-18
for external data access, 6-26
Programmer's pane and, 1-6
referencing, 6-33
using, 7-55
Web, D-2
@username
using to customize views, 7-6
1-2-3 files
importing into views, B-3
A
About Database document
creating, 19-3
inheriting from template, 19-29
launching, 19-26
opening, E-9
Accelerator keys. See Shortcut keys
Accent sensitivity
sorting, 7-33
Access
denying, 18-15, 18-46
Access control list. See ACL
Access level privileges
ACL, 18-6
Access levels
anonymous, 18-17
assigning, 18-2
conflicts, 18-24
default, 18-12
editing, 18-11
list of, 19-15
Accessibility
additional information about, F-1
custom tools and, 17-2
customizing settings for, F-1
for users with disabilities, 2-15
of navigators, 9-18
of outlines, 9-3
of view icons, 7-32
shortcut keys for views, 7-11
ACL
access for Web users, 18-24
Index-1
Anonymity
protecting, 5-13
Anonymous access level
in ACL, 18-17
Anonymous field
on forms, 18-34
Anonymous forms
creating, 5-13
AppletBase
extending, 11-14
Applets
action bar, 10-15
adding to a page or form, 4-20
creating, 10-15
described, 12-1
editor, 6-10
font support and, 7-69
listed, 2-11
outline, 9-16
view, 7-67
Web applications and, 2-10
Application design elements
security, 18-29
Applications
annotating, 19-7
automating, 10-1, 14-17
completing, 19-1
creating bookmarks, 3-8
deploying, 19-9
design tips, 2-2
documenting, 19-3
for mobile clients, 2-12
mail-enabled, 16-2
managing, 20-1
master design copies, 19-9
overview of Domino, 1-1
planning, 2-1
planning for Notes and Web, 2-2
previewing, 3-25
setting launch properties
for, 19-25
testing, 19-16
Archives, database
creating, 21-12
Arguments
setting for Java applets, 11-5
Attachments
creating, 4-21, 5-29
getting details of in formula
language, 7-29
opening with URL
commands, E-19
Attributes
HTML, 6-46
Authentication
for Web users, 18-18
URL commands and, E-25
user names, 18-16
Author access
actions, 18-4
privileges, 18-6
Authors
anonymous, 5-13
displaying names, 7-29
Authors field
creating, 18-32
described, 18-31
restricting read-access with, 18-30
updating, 18-35
Autolaunching
defined, 14-9
examples, 14-11
objects, 14-1, 14-10
Automating
applications, 10-1, 14-17
described, 1-15
formulas for, 10-61
hiding components, 10-66
JavaScript and, 10-62
navigators, 9-23
replies, 16-6
security features and, 10-62
using LotusScript, 10-58
Averages
calculating, 7-38
B
Background processing
on Web pages, E-32
Backgrounds
for pages and forms, 4-19
Billing
forms for, 5-41
reserved fields for, 6-50
Bitmap files. See Graphics
BlindCopyTo field, 6-52
BMP files. See Graphics
Body field, 6-49
described, 19-21
Bold text
in Web applications, 6-9
Bookmark bar
creating bookmarks on, 3-8
creating link to databases, 3-8
enabling keyboard
navigation, F-2
Bookmarks
organizing applications, 3-7
using, 3-9
Borders
for embedded elements, 4-21
for frames, 8-6
Browsers
designing applications for, 2-2
differences, 2-7
hiding paragraphs from, 6-42
launch options, 19-25
proxy settings for, 3-26
setting up for previewing, 3-26
using Print statement to
instruct, 10-58
using with Notes client, 6-11
Button bar
described, 10-15
Buttons
creating, 2-11, 10-22
customizing icon, 3-7
defined, 10-4
deleting, 10-22
editing, 10-22
examples of, 10-24
C
CAB files
described, 11-4
Calculating
cell values, 7-38
field values, 6-11, 7-27
Calendar controls
adding to a page or form, 4-22
creating, 6-18
Web use of, D-4
Calendar views
creating, 7-56, D-4
defined, 7-1
described, 7-4
formatting, 7-57
styles for, 7-59
using with the embedded
scheduler, 5-29
Cascading
form names, 5-11
view names, 7-11
Cascading Style Sheet. See CSS
Categories
adding to views, 7-42
columns, 7-44
documents in, 7-46
field for creating, 6-51, 7-44
Index-3
Color fields
described, 6-35
views and, 7-52
Color palettes
blending colors, 3-17
changing, 2-9
choosing colors, 4-17
Colors
blending, 3-18
for columns, 7-38
for frame borders, 8-7
for navigators, 9-22
for outline entries, 9-15
for rows, 7-38
for views, 7-25, 7-38
for Web applications, 2-9
unread marks and, 7-49
Column descriptor file. See COL files
Column width
described, B-8
Columns, 7-52
adding to views, 7-8
calculating values in, 7-38
categorized, 7-42
collapsing, 7-29
copying, 7-7
creating, 7-17
date, 7-19
deleting, 7-7, 7-17
displaying custom icons, 7-31
entering names from, 6-26
expanding, 7-29
for Web links, 7-24
formatting, 7-19
hide-when formulas and, 7-23
hiding, 7-38
icons in, 7-31
mapping to fields in views, B-7
numbers, 7-21
programmatic name for,
7-22, 7-52
programming, 7-24
referred to in formulas, 7-55
response, 7-48
setting styles for, 7-18
specifying data type in views, B-7
styling, 7-38
switching to a view, 7-37
testing, 19-14
time, 7-19
titles for, 7-17
user-customizable, 7-52
views and, 1-11, 7-1
width, 7-38, B-9
Count parameter
Domino URL commands
and, E-20
search results and, E-24
Create menu
documents and, 5-11
CreateDocument command
described, E-13
CSS
class and objects, 2-10
defined, 15-6
passing information, 6-51
shared resources and, 4-34
styles applied to objects, 2-10
supported properties, 4-35
XML, 15-5, 15-9
Currency
fields for, 6-11
formatting, 6-12, 7-22
Custom controls
adding to forms, 14-4
described, 14-2
running in Read mode, 14-8
sizing, 14-7
updating, 14-8
Customize subform
using, 22-17
Customizing
column sorting, 7-36
databases, 3-3
icon buttons, 3-7
letterheads, 3-21
templates, 19-28
window titles, 5-20
D
Data access
with @DbColumn and
@DbLookup, 6-26
with Domino Connectors, 13-3
with Lotus Enterprise
Integrator, 13-3
with ODBC, 13-13 to 13-14
with servlets, 12-1
Data Connection Resources.
See DCRs
Data entry
fields for, 6-32
Data types
defined, 6-1
list of, 6-7
listed for choice list fields, 6-23
Database access
access level conflicts, 18-24
troubleshooting, 21-26
Database activity
monitoring, 21-21
reporting, 21-23
statistics, 21-22
Database analysis
of replication events, 21-16
Database cache
performance problems and, 21-27
Database creator
access level, 18-12
Database design
changing, 19-35
replicating, 21-30
templates and, 3-2
Database icons
creating, 19-2
replacing, 19-38
Database libraries
design library template, 19-30
Database performance
troubleshooting, 21-21,
21-25 to 21-26
Database properties
for enabling connectivity, 13-9
Database titles
replicating, 21-30
Databases
access control lists, 18-30
access control log, 18-18
access problems, 21-26
administration servers and, 18-36
as external data sources, 13-6
connecting to, 13-1, 13-3
controlling access to, 18-2
copying to servers, 20-2, 20-4
creating, 3-2, 19-31
creating bookmarks to, 3-8
defined, 1-2
documenting, 19-3
editing with WebDAV, 17-4
encrypting, 20-7, Field help, 18-46
external, 13-13
forcing replication, 20-19
hiding, 19-44
icons, 19-2
importing external records
from, 13-11
Internet security, 18-25
launching, 8-10, 19-25
linking, 19-31
locking design elements in, 19-46
DCRs
creating, 13-6
customizing, 13-7
data sources and, 13-6
described, 13-1
enabling, 13-9
example of, 13-12
fields and, 13-10
importing external records, 13-11
overview of, 13-5
specifying default, 13-10
using on forms, 13-10
Debug_AMgr statement
described, 10-52
DEBUG_OUTFILE statement
described, 10-52
Debugging
agents, 10-46
Java applets, 11-18
NotesLog class, 10-53
Decimal places
in Number fields, 6-12
Decimal symbol
described, 6-12
Decrypting documents
overview, 18-49
DECS
described, 13-1 to 13-2
Default field values
for editable fields, 6-35
Default group
access level, 18-12
DeleteDocument command
described, E-13
Deletion stubs
purging, 20-10, 21-33
DeliveryPriority field, 6-52
DeliveryReport field, 6-52
Deploying
applications, 19-9
Depositor access
actions, 18-4
privileges, 18-6
Design
changing, 19-40
hiding, 3-4, 19-43
linking, 19-31
maintaining, 19-14
preventing changes, 19-9
refreshing, 19-36
replacing, 19-38
replication and, 19-40
templates and, 19-27, 19-41
updating, 19-36
Index-5
unread, 7-49
updating, 19-20, 19-22
Web and, 5-11, E-13
Documents, mailing, 10-57, 16-4
DOLMKINF utility
creating filesets with, 22-16
DOLRES.NTF
copying design elements
from, 22-2
DOLS. See Domino Off-Line Services
Domains
searching, E-20
Domino
security, 18-1
Domino Connectors
described, 13-3
Domino Directory
accessing, C-3
entering names, 6-26
offline, 22-22
Domino Directory Server document
servlet manager settings, 12-5
Domino Enterprise Connection
Services. See DECS
Domino Global Workbench
described, 2-19
Language Synchronizer, 2-20
Domino Java Virtual Machine
(JVM), 12-5
Domino Off-Line Services
described, 22-1
design elements, 22-17
developer tasks, 22-2
forms, 22-2 to 22-3
installing, 22-4
overview, 22-1
replicating databases, 22-14
URLs and, 22-14
Domino security
application design
elements, 18-29
Domino URL commands
authentication and, E-25
count parameter, E-23
explicit, E-16
implicit, E-16
opening documents by key, E-15
server commands, E-4
ServerRequest, E-27
start parameters, E-23
syntax, E-2
Domino-generated fields. See
Reserved fields
DominoObject
in URL commands, E-2
DTD
defined, 15-6
Duration controls
creating, 6-20
in Web applications, D-4
setting separator for, 6-45
DXL
described, 15-3
transforming, 15-17
E
ECL
described, 18-2
setting up for secure Java applet
access, 11-13
Edit mode
for forms and documents, 5-14
hidden data in, 2-14
Editable fields
defined, 6-32
EditDocument command
described, E-13
Editing
concurrent, 21-19, 21-34
documents, 19-22
documents from a view, 7-50
fields, 18-43
forms, 19-20
images with the editor
applet, D-6
navigators, 9-19
restricting, 18-31
URL commands and, E-14
window titles, 5-20
Editor access
actions, 18-4
privileges, 18-6
Editor applet
described, 2-11
using, 6-10
Editors
anonymous, 5-13
embedding in a form, 5-33
sections and, 18-36
tracking, 18-34
Effective access. See ACL
E-mail. See Mail
Embedded controls
date picker, 4-22
embedded scheduler, 5-29
file upload control, 5-29
ERP systems
connecting to, 13-1
Error executing agent
error message, 10-53
Error handling
on forms, 5-49
Error messages
customized forms for, 5-49
OLE objects and, 14-5
Events
agent, 10-9
calendar view, 10-8
click, 10-9
database, 10-7
described, 10-6
examples, 10-29
field, 10-9
form, 10-8
page, 4-37
programming, 10-6, 10-28
view, 10-7
Examples
access control, 18-33
access control sections, 18-38
actions, 10-14
agents, 16-6
autolaunching, 14-11
automating navigators, 9-24
buttons, 10-24
choice list field generation, 6-27
columns, programming, 7-25
computed fields, 6-38
customizing window titles, 5-21
Date/Time fields, 6-20
DCRs, 13-12
default value formulas, 6-37
displaying documents in a
view, 7-13
encryption, 18-50
encryption keys, 18-55
events, 10-29
exchanging data, 14-20
fields, 14-20
fields that control mailing
options, 6-55
hiding, 14-16
hotspots, formula pop-up, 10-27
hotspots, text pop-up, 10-25
inheriting information, 6-48
input translation formula, 6-37
links, 4-15, 10-21
password fields, 6-29
replication, 20-16
restricting access, 18-40
Index-7
servlet, 12-9
servlets.properties file, 12-9
templates, 19-29
Excel files
importing from and exporting
to, B-1
Exchanging
field data, 14-19
Execution Control List. See ECL
Expanding
columns, 7-29
sections, 18-36
views, 7-38, E-5
Exponential notation
described, 6-12
Exporting
files, B-1
Java applets, 11-12
views, B-11
Extended accelerator keys
enabling, F-1
Extended ACL
described, 18-2
External database access
with Domino Connectors, 13-1
with Lotus Enterprise
Integrator, 13-1
with ODBC, 13-13 to 13-14
ExternalData parameter
in Java applets, 11-16
Externalization for Java applets
described, 11-16
F
Field data
deleting from documents, 6-2
exchanging, 14-19
shared fields and reassigning, 6-4
Field formulas
creating, 6-33
described, 6-35
Field help
writing, 19-6
Field label
defined, 6-6
Field names
described, 6-6
requirements for, 6-6
Field types. See Data types
Field values
calculating, 6-33, 7-27
default for editable fields, 6-35
displaying, 7-24, 19-21
examples, 14-20
exchanging data in, 14-2
formatting for the Web, 6-46
formulas, 6-36
hiding, 4-12, 6-42
HTML attached to, 6-46
inheriting documents in, 6-48
inheriting values in, 6-47
layout regions and, 6-44
modifying, 10-55
naming, 6-6
recalculating computed, 6-34
renaming, 6-6, 19-22
replacing field values, 10-56
resizing, 6-45
setting input validation
formula, 6-36
setting translation formula, 6-36
shared resources as, 3-13
signing, 18-38
testing, 19-11
Web and, D-4
File field
described, 19-21
File formats
importing from and exporting to
views, B-1
sharing, 3-13
File resources
creating, 3-14
opening with URL
commands, E-12
shared, 3-14
File sets
custom, 22-15
File upload control
described, 5-29
Files
attaching to documents,
4-21, 5-29
opening with WebDAV, 17-7
Flat style outline
described, 9-12
Floating point arithmetic
described, 6-12
FolderOptions field, 6-57
Folders
adding documents to, 6-51
copying design elements
into, 3-11
copying documents to, 10-54
creating, 18-7
creating bookmarks in, 3-10
creating in a database, 3-10
default, 7-9
defined, 7-9
described, 7-2
embedding, 7-61
launching into framesets, 8-11
limiting access, 18-40
MAPI Folder Interface and, C-2
organizing applications, 3-7
removing documents from
without deleting, 10-54
security, 18-41
shortcut keys, F-10
trash, 7-74
Web, 7-9
Fonts
applying to text, 4-6
changing in a form, 4-8
in view applet, 7-69
Footers
creating, 5-16
Foreign language applications
designing for, 2-19
Foreign symbols
translating, B-2
Form access list
creating, 18-30
Form elements
listed, 5-2
Form processed confirmation
described, 5-48
overriding, 6-51
Formatting
HTML, 6-46, 7-66
numbers, 7-21
text, 4-6
views, 7-66
Web applications, E-28
Forms
accessing, 18-30
adding XML to, 15-8
autolaunching, 14-9, 14-12
autolaunching objects, 14-10
changing, 19-17, 19-20
compared to pages, 4-1
copying, 5-7
creating, 5-1, 5-7, 14-9, 18-44
DCRs and, 13-10
defaults, 4-8, 5-7
deleting, 5-8, 19-23
described, 5-1
designing for Notes and Web, 2-3
DOLS Offline Configuration, 22-2
to 22-3
encryption property, 18-48
Formulas
automating applications, 10-61
COL files and, B-10
columns and, 7-24
entering in the Script area, 1-6
examples, 10-27
field, 6-33
input translation, 6-32
input validation, 6-32
literalizing, 6-31
lookup, 7-55
named elements and, 9-8
prompting users, 5-40
Forwarding
documents, 16-4
restricting, 18-43
Frames
borders for, 8-3
described, 8-1
in Web applications, D-7
naming, 8-4
sizing, 8-6
specifying a target frame, 8-9
Framesets
content for, 8-4
creating, 8-2
defined, 1-14, 8-1
keyboard accessibility and, 2-17
launching automatically, 8-10
launching on Web, 7-66
opening, E-10
outlines and, 9-17
From field, 6-49
G
getCodeBase
in Java applets, 11-21
getDocumentBase
in Java applets, 11-20
GIF files. See Graphics
Global Workbench. See Domino
Global Workbench
Graphical date/time controls
described, 6-18
Graphics
adding an editor to Designer, 17-2
adding to navigators, 9-20
adding to outline entries, 9-9
alternate text for, 2-15
backgrounds, 4-19
bitmap, 4-17
changing, 4-18
Index-9
H
Handheld devices
designing for, 2-12
Headers
creating, 5-16
Headlines database
described, 6-30
subscriptions and, 3-11
Help
context-sensitive, 19-5
databases, 19-8
displaying for Lotus
components, 14-4
for fields, 19-6
forms, 19-7
overview, 19-3
Hide-when conditions
CGI fields and, E-33
columns and, 7-23
field settings, 6-43
options, setting, 2-13
Web use and, E-14
Hide-when fields
in Notes and Web
applications, 2-4
Hiding
automated components, 10-66
button hotspots, 10-23
columns, 7-38
databases, 19-44
design elements, 2-13, 19-44
designs, 3-4, 19-43
documents, 14-14
elements from mobile clients, 2-12
examples, 14-16
fields, 4-12, 6-42 to 6-43
formula pop-ups, 10-26
Java applets, 11-9
menu choices, 9-27
objects, 14-16
outline entries, 9-9
paragraphs, 6-42
section titles, 18-36
servlet names, 12-8
subforms, 5-22
text pop-ups, 10-25
views, 7-10, 7-70, 9-27
Hierarchical names
displaying as common name, 6-21
Hierarchy. See Response
documents
Home pages
creating, 4-1
defined, 4-5
launching, 4-5
specifying, 19-8
URLs, 19-8
Horizontal rules
creating, 4-8
in Web applications, D-8
Host forms
described, 5-38
Hotspots
action hotspot, 10-27
button hotspot, 10-22
creating, 9-22
defined, 1-15, 9-22
examples, 10-4
imagemaps and, 9-30
navigators and, 9-22
pop-ups, 10-25 to 10-26
Web applications and, D-8
HTML
adding, 4-23
adding an editor to Designer, 17-2
attributes, 6-46, 11-7
core attributes, 2-9
defined, 15-6
I
Icon buttons
customizing, 3-7
Icons
creating database, 19-2
custom icons in views, 7-31
displaying in columns, 7-31
download, 22-2 to 22-3
identity, 22-17
Image files
described, E-19
Image resources
creating, 3-17
customizing letterheads, 3-21
deleting, 3-20
described, 3-12
dynamic graphic, 3-21
opening with URL
commands, E-12
renaming, 3-19
Image set
described, 3-21
Imagemaps
compared to outlines and
navigators, 9-1
described, 9-30
Images. See Graphics
Imperial measurement
described, 6-12
Importing
column format, B-2
documents, B-2
files into views, B-1, B-10
foreign characters and symbols
into views, B-2
graphics, 9-20
J
JAR files
described, 11-4
Java
Web applications and, 2-10
Java agents
restricting, 18-8
Java applet properties
CodeBase, 11-8
CORBA classes, 11-8
K
Keyboard shortcuts. See
Shortcut keys
Keys, encryption. See
Encryption keys
Keywords
COL files and, B-8
L
Labels
fields, 6-6
Language preference
setting, 2-17
setting for Web applications, E-28
Languages
sort order, 22-23
Launching
databases, 19-25
databases into framesets, 8-10
documents, 19-4
documents or pages into
framesets, 8-10
home pages, 4-5
links, 19-26
objects, 14-1
pages, 19-26
target frames and, 8-9
views or folders into
framesets, 8-11
Layer tree
hiding layers, 4-27
Layers
anchors, 4-27
background color, 4-31
content, 4-26
copying, 4-27
creating, 4-26
deleting, 4-27
hiding, 4-27
HTML properties, 4-30
Layer Tree dialog box, 4-27
position properties, 4-28
tile patterns, 4-32
Layout regions
changing, 5-26 to 5-27
defined, 5-25
described, 5-25
fields on, 6-44
read access, 2-14
unsupported features, 6-23
Index-11
LDAP directories
authenticating Web users
with, 18-16
Legacy applications
XML and, 15-4
Legacy databases
connecting to, 13-1
Legend
embedded scheduler, 5-32
LEI
described, 13-3
Letterhead
customizing, 3-21
Levels. See Response documents
Limits
size, 2-23
Linking
databases, 19-31
design elements, 19-32
designs, 19-31
documents, 16-3
mail, 16-3
objects, 14-1
templates and, 19-31 to 19-32
Links
creating on Web, 6-10
database, 19-31
defined, 10-4
displaying in views, 7-24
launching automatically, 19-26
sending, 16-3
target frames and, 8-10
URL, 4-13
Links field
described, 19-21
List box fields
aliases in, 6-27
Lists of choices
displaying, 5-41
LocalDomainServers group
access level, 18-12
Locking
WebDAV and, 17-10
Locks
document, 3-24
Log file
replication events, 21-18
Login
argument, E-25
Login command
described, E-4
URL guidelines, E-3
Logout command
described, E-4
Lookup formulas
described, 7-55
Lookups
creating, 5-41
in multiple Domino
Directories, C-1
name, 6-22
Lotus components
using, 14-2
Lotus Translation Components
Domino Translation Object, 2-21
Translation Services
Gateway, 2-21
LotusScript
application automation, 10-58
debugger, 10-47
OLE and, 14-2
restricted operations in
agents, 10-59
restricting use in agents, 10-43
storing programs, 3-13
using for data access, 13-2
Web and, D-3
LotusScript agents
restricting, 18-8
LotusScript browser window, 1-6
LotusXSL Processor
downloading, 15-17
LS:DO
using for data access, 13-2
M
Macros. See Agents
Mail
agents, 16-6
applications, 16-2
automating, 16-3
changing default font of, 4-8
customizing letterhead, 3-21
delivery, C-2
fields, 6-50, 6-52
fields for automatic, 6-51
forwarding, 16-4
linking, 16-3
MAPI classes and methods, C-5
sending, 16-3
workflow applications, 16-2
Mail option fields
examples, 6-55
Mail queue, C-2
Mail router, C-2
Mail Send dialog box, 6-51
MailFormat field, 6-52, 6-54
Mail-in Database
agents and, 16-6
creating, 16-5
Mail-in Database documents
described, 16-5
MailOptions field, 6-52
Main class name
described, 11-3
Manager access
actions, 18-4
privileges, 18-6
MAPI. See Messaging application
progam interface (MAPI)
Master design copies
creating, 19-9
Menu bar
described, 1-5
Menus
actions, 10-12
displaying, 14-4
hiding choices, 9-27
shortcut keys, 10-65
simulating for Web users, 10-13
Messaging
adding Sametime to an
application, 3-27
Messaging application program
interface (MAPI)
Address Book provider, C-1
classes and methods, C-5
Message Store provider, C-2
Message Transport provider, C-2
platforms, C-3
requirements, C-3
service providers, C-1 to C-2
spooler, C-2
Metadata
passing, 6-51
Metric measurement
described, 6-12
Microsoft files
importing from and exporting
to, B-1
Microsoft Internet Information
Server (MIIS), E-2
Microsoft Office Library template
described, A-2
Mobile applications
designing, 2-12
hiding elements from, 2-12
Multilingual applications
designing for, 2-19
URL commands, E-30
N
Named elements
formulas for, 9-8
Names
displaying, 6-21
entering from a list, 6-22
Names dialog box
displaying, 6-22
Names fields
described, 6-21
in Web applications, D-4
Naming
ACL entries, 18-13
categories, 7-44
forms, 5-9
frames, 8-4
framesets, 8-3
views, 7-9
Navigating
Web sites, 7-60, 9-27
Navigation
in Notes and Web
applications, 2-5
Navigator templates
forms as, 7-65
Navigators
accessibility of, 9-18
actions in, 9-18
adding objects to, 9-18
color, 9-22
creating, 9-19
designing, 9-17
displaying, 9-26
editing, 9-19
embedding, 9-27
examples, 9-24
formulas and, 9-24
graphics and, 9-20
highlighting, 9-22
hotspots and, 9-22
imagemaps and, 9-30
importing, 9-29
opening, 9-26
programming, 9-18
renaming, 19-17
scripts and, 9-24
styling, 9-22
templates and, 7-65, 9-28
testing, 9-30
text on, 9-22
Web, D-8
WebQuerySave events, 7-65
No access
assigning, 18-4
privileges, 18-6
Note ID
finding documents by, 21-27
Notes
hiding views, 7-70
Notes applications
planning, 2-1 to 2-2
running on Web, 2-2
Notes Browser
previewing in, 3-25
Notes classes
setting up applet access to, 11-13
Notes client
Web applications and, 2-8, 6-46
NOTES.INI file
Default_Index_Lifetime_Days,
7-71
recording debugging
information, 10-52
Notes/FX
enabling, 14-20
using, 14-19
Web applications, D-4
NotesFlow
actions, 14-2
applications, 14-1
field-exchange, 14-2
NotesLog class debugging
setting up, 10-53
NSF files
creating, 3-6
NTF files
creating, 19-14
defined, 3-2, 19-27
Designer, A-1
Number fields
described, 6-11
Numbering
documents, 7-24
Numbers
columns for, 7-21
formatting in Number fields, 6-12
O
Object parameter
in Java applets, 11-18
Objects
drawing, 9-20
embedding, 14-2
enhancing, 9-22
hiding, 14-16
hotspot, 9-22
launching, 14-1, 14-9, 14-13
linking, 14-2
referencing with JavaScript, 2-10
resizing, 14-6
updating, 14-8
viewing properties and events
of, 1-6
Objects tab, 1-6
OCX. See Custom controls
ODBC
connecting to, 13-9
data sources, 13-14
Datalens and, 13-14
described, 13-1
using, 13-13
views, 13-15
Offline Subscription Configuration
profile document
creating, 22-5
editing, 22-3, 22-5
Offline subscriptions
overview, 22-1
OLE
actions and, 14-17
applications, 14-1
autolaunching objects, 14-12
automating, 14-17
connecting to, 13-9
custom controls, 14-2
exchanging data, 14-19
launch properties, 14-11
launching in-place, 14-12
LotusScript, 14-2
property sheets and, 14-7
publishing actions using, 14-18
resizing, 14-6
Web and, 14-1
OLE custom controls. See Custom
controls
OLE DB
connecting to, 13-9
OLE objects
autolaunching, 14-10
debugging, 14-5
launching, 14-13
opening with URL
commands, E-19
Online chat
adding to an application, 3-27
OpenAbout command
described, E-9
OpenAgent command
described, E-10
Index-13
OpenDatabase command
described, E-4
OpenDocument command
described, E-14
OpenElement command
described, E-19
OpenFileResource command
described, E-12
OpenForm command
described, E-10
SearchDomain and, E-20
SpecialAction argument and, E-25
OpenFrameset command
described, E-10
OpenHelp command
described, E-9
OpenIcon command
described, E-9
OpenImageResource command
described, E-12
OpenPage command
described, E-17
OpenServer command
described, E-4
OpenView command
described, E-4
optional arguments, E-7
Ordered lists
in Web applications, D-6
OtherDomainServers group
access level, 18-13
Outline applet
described, 2-11
using, 9-16
Outline entries
adding graphics to, 9-9
customizing, 9-7
customizing twisties, 3-24
described, 9-3
displaying as a hierarchy, 9-10
hiding, 9-9
named elements and, 9-8
styles for, 9-15
Outline views
described, 7-2
Outlines
accessibility of, 9-3
creating, 9-3
described, 1-12
displaying in framesets, 9-17
embedding, 9-5
imagemaps and, 9-1
public access for, 9-7
P
Page breaks
in views, 7-40
Pages
adding XML to, 15-8
backgrounds for, 4-19
compared to forms, 4-1
creating, 4-3
deleting, 4-4
described, 4-1
displaying, 4-5
elements on, 4-1
embedding controls on, 4-21
events for, 4-37
fonts in, changing, 4-8
graphics on, 4-17
HTML and, 4-23
Java applets and, 4-20
JavaScript and, 2-11
launching, 19-26
launching into framesets, 8-10
layers on, 4-26
links and, 4-13
opening, E-17
programming, 4-37
styling text in, 4-6
Palettes
blending colors, 3-17
choosing colors, 4-15
Panes
shortcut keys, F-10
Password fields
described, 6-28
Passwords
URL commands and, E-25
PCX files. See Graphics
Percentage
calculating, 7-38
formatting numbers as, 6-12
Performance
computed fields and, 6-33
forms and, 5-59
lookups and, 6-26
Web, 2-12
Perl script
Web applications and, E-31
Persistence
Java applets, 11-15
session, 12-6
Personal Address Book
using to enter names, 6-26
Personal agents. See Private agent
Personal Journal template
described, A-2
Pictures. See Graphics
Pop-up calendar controls, D-4
Pop-ups
creating, 10-25 to 10-26
Precision
in Number fields, 6-12 to 6-13
Predefined fields
list of, 6-50
Preferences
colors in a view, 7-52
PreFormat
described, E-8
Preview buttons
described, 1-5
Previewing
applications, 3-25
databases, 19-26
documents, 19-26
framesets, 8-3
hiding information during, 6-42
setting up, 3-26
Printing
headers and footers, 5-16
hidden information, 2-14, 6-43
restricting, 18-43
Private agents
controlling, 10-42
Web users and, 10-42
Private keys. See Encryption keys
Private views
customizing, 7-6
described, 7-5
Privileges
access level, 18-6
Profile documents
creating, 5-37
defined, 5-36
view columns and, 7-52
Profile forms. See Profile documents
Programmable tables
described, 4-9
Programming
columns, 7-24
navigators, 9-18
R
RANGE statement
described, B-8
Read access
restricting, 18-42
Read access list
described, 18-41
forms, 18-41
Reader access
actions, 18-4
privileges, 18-6
Readers field
creating, 18-32
updating, 18-35
Readers fields
checking, 19-21
creating, 18-30
ReadExternalData parameter
in Java applets, 11-16
ReadForm command
described, E-12
ReadViewEntries
described, E-6
Records
importing, 13-11
Redesigning
forms, 19-20
templates, 19-28
Redirect command
described, E-4
domain search and, E-20
Reference list
using, 6-33
Reference tab, 1-6
Refreshing
choice list field values, 6-41
defined, 19-36
designs, 19-38
field values, 6-33
Java applets, 11-12
views, 7-71
Relational databases
accessing with ODBC, 13-13
connecting to, 13-1
Renaming
agents, 19-17
databases, 19-17
fields, 6-6, 19-22
forms, 19-17
navigators, 19-17
shared fields, 6-4
views, 7-9, 19-17
Replace Design command
defined, 19-38
Replica IDs
assigning access by, 18-19
Replica stubs
defined, 21-31
troubleshooting, 21-32
Replicas
conflicts, 5-13, 21-19
controlling changes, 18-14
copying to servers, 20-2
creating, 20-6
Index-15
Categories, 6-51
contact printing, 5-44
FolderOptions, 6-51, 6-57
HTML, 6-51
list of, 19-21, 6-50, 6-56
SecretEncryptionKeys, 6-51
Reserved form names
for navigator or view
templates, 7-65
Response documents
columns for, 7-48
displaying, 7-29
indenting, 7-47
inheriting subject, 6-49
limits on, 7-4
Response forms
testing, 5-60
Response hierarchy
creating, 5-17
Restricted LotusScript/Java
operations
in agents, 10-59
Restricting
copying, 18-43
design changes, 19-9
editing, 18-31
forwarding, 18-43
printing, 18-43
RestrictToCategory
OpenView and, E-6
ReadViewEntries and, E-8
ReturnReceipt field, 6-52
Review requests
in workflow applications, A-1
Revision tracking
described, 5-18
Revisions field
described, 19-21
RGB colors
for views, 7-27
Rich text fields
described, 6-7
on Web, 6-9
Rich text lite fields
described, 6-7
Roles
assigning in ACL, 18-9
creating, 18-10
Rounding
in Number fields, 6-12
Route. See Navigators, Outlines
Routing
automatic, 16-2
Rows
opening to, 7-40
spacing, 7-38
styling, 7-38
S
Sametime
adding to an application, 3-27
Save conflicts
consolidating, 21-20
described, 21-19
SaveDocument command
described, E-15
SaveOptions field, 6-53
Schedules
coordinating, 5-29
Scientific notation
described, 6-12
Screen-reader software
designing for, 2-15
Script area, 1-6
Script libraries
defined, 3-13
Scripts
creating, 10-28
deleting, 10-28
Search forms
described, 5-50
Search results
displaying, E-20
navigating, 5-57, E-24
SearchDomain command
described, E-20
SearchEntry command
described, E-21
SearchFuzzy command
described, E-21
Searching
domains, E-20
URL commands and, E-20
SearchSite command
count parameter, E-23
described, E-21
optional arguments, E-21
start parameter, E-23
SearchView command
count parameter, E-23
examples and syntax, E-21
optional arguments, E-21
start parameter, E-23
Secret encryption keys. See
Encryption keys
Sections
access to, 18-36
collapsing, 18-36
creating, 4-12, 18-36
defined, 5-4
editors and, 18-36
hiding titles, 18-36
signing, 18-60
Secure Sockets Layer. See SSL
Security
agents, 10-41,12-4
CGI programs, 12-4, E-32
database, 18-20
database encryption, 18-45
decrypting data, 18-56
described, 18-1
documents, 18-29
electronic signatures, 18-60
encryption, 18-45
folders, 18-41
for automation, 10-62
for Notes and Web
applications, 2-3
hidden fields and, 6-42
Java applet access to Notes
classes, 11-13
servlets, 12-4, 12-8
signatures and, 18-57
SSL certificates, E-25
URL commands and, E-25
Selection formulas
for views, 7-15
SendTo field, 6-53
Server certificate request
creating, E-27
Server commands
OpenServer, E-4
Redirect, E-4
Server tasks
Designer, 3-2
Updall, 7-71
ServerRequest command
examples, E-27
fields, E-28
syntax, E-27
Servers
access levels for, 18-3
console commands, 10-49
restricting creation of databases
on, 10-43
Service providers
installing, C-3
Servlet API, 12-4
Servlet classes
loading, 12-6
Servlet manager, 12-5
Servlets
compared to agents and CGI
programs, 12-2
example, 12-9
security for, 12-4
WebSphere and, 2-14
XML, 15-15
servlets.properties file
example, 12-9
sessdata.ser, 12-6
Sessions
tracking, 12-6
SGML
defined, 15-7
Shared actions
creating, 10-17
defined, 10-2
editing, 10-21
inserting, 10-17
Shared agents
controlling, 10-42
defined, 10-5
Shared databases
described, 16-2
Shared fields
converting, 6-2, 6-4
copying, 6-2
creating, 6-3
deleting, 6-4
inserting, 6-3
multilingual, 6-5
renaming, 6-4
stored forms and, 5-6
Shared graphics. See Image resources
Shared resources
across databases, 3-12
deleting, 3-16
described, 3-12
exporting, 3-16
files, 3-14
for Java applets, 11-10
non-NSF files as, 3-13
refreshing, 3-15
Shared views
described, 7-5
Shortcut keys
cursor, F-8
databases, F-4
defined, F-1
Designer, F-3
dialog boxes, F-5
documents, F-6
enabling, F-1
folders, F-10
form names, 5-11
menu choices, 10-65
panes, F-10
properties boxes, F-5
text, F-7
text properties, F-9
tools, 17-2
views, 7-11, F-10
Sign field, 6-53
Signatures
attaching to documents, 18-60
defined, 18-38
storing, 18-58
Signing
documents, 18-60
Simple actions
defined, 10-2
table of, 10-54
Simple agents. See Agents
Simple functions
for columns, 7-29
Site map. See Navigators, Outlines
Size
attachments, 20-11
database, 20-5, 21-9
replica, 20-10, 21-30
Size property
for Java applets, 11-8
SmartIcons
toolbar, 3-7
Soft deletions
described, 7-74
Sort order
columns, 7-36
in subscriptions, 22-23
in views, 7-33
SpecialAction argument
described, E-25
SSL
creating user certificates, E-26
Internet security and, 18-25
server certificate request, E-27
URL commands and, E-25
Start parameter
search results and, E-24
Statlog task
database activity reporting, 21-21
statistics, 21-22
user activity reporting, 21-23
Status tracking
described, 7-48
Index-17
Subscriptions, offline
overview, 22-1
Symbols
currency, 6-13
Symphony files
importing into views, B-3
Synopsis. See Design synopsis
System actions
creating, 10-12
T
Tab order
specifying for fields, 6-39
Tabbed tables
described, 4-9
Tables
creating, 4-3
in editor applet, D-6
in Web applications, D-8
programmable, 4-9
Tabular text files
COL files and, B-8, B-11
defined, B-4
exporting to, B-11
importing into views, B-4, B-11
Target frames
order of precedence, 8-9
specifying, 8-9
TeamRoom template
described, A-2
Templates
agents and, 19-28
changing, 19-27, 19-35
customizing, 19-28
defined, 3-2, 19-27
design changes and, 3-3
Designer, A-1
examples of, 19-29
fields in, 6-49
linking to, 19-31 to 19-32
master, 3-2
navigator, 9-28
redesigning, 19-28
replacing design and, 19-38
replication and, 19-35, 19-40
server, 3-3
unlinking, 19-42
unlinking design elements
from, 19-41
updating databases with, 19-33
Terminations group
adding names to, 18-15
Testing
applications, 19-16
design, 19-11
forms, 5-60, 19-10
navigators, 9-30
response forms, 5-60
views, 19-12
Text
computed, 4-7
fields, 6-7
graphics with, 6-44
navigators and, 9-22
styling, 4-6
Web, D-10
Text files
exporting, B-11
importing to a view, B-4 to B-5
Text pop-ups
creating, 10-25
defined, 10-4
deleting, 10-25
editing, 10-25
Text properties
shortcut keys, F-9
Thousands separator
setting, 6-12
TIFF files. See Graphics
Time
displaying, 7-19
entering, 6-14
formatting, 6-14, 6-17, 7-19
formula language, 6-18
ranges, 6-14
Time controls
creating, 6-19
in Web applications, D-4
Time zones
fields, 6-35
setting for Domino Off-Line
Services subscriptions, 22-23
setting for Web applications, E-28
Title field
described, 5-6, 19-21
Titles
database, 3-3
frameset, 8-3
window, 5-20
Toolbars
customizing, 3-7
Tools
customizing, 17-1 to 17-2
organizing on the Tools menu,
17-3
shortcut keys, 17-2
Totals
calculating, 7-38
Tracking
document status, 7-48
editors, 18-34
server usage, 5-41
sessions, 12-6
unread documents, 7-49
versions, 5-18, 6-56
TranslateForm argument
described, E-26
Translation
applications, 2-19, 6-27
Domino Global Workbench, 2-19
foreign symbols and
characters, B-2
Translation formulas
defined, 6-32
setting for fields, 6-36
Trash folders
creating, 7-74
designing, 7-73
in Web applications, 7-74
soft deletions and, 7-74
Tree style outline
described, 9-10
Troubleshooting
agents, 10-46
calendar views, 7-58
database access, 21-26
database design changes, 21-30
database performance, 21-25
documents in log file, 21-27
fields, 19-21
framesets, 8-10
Java applets, 11-18
OLE object error, 14-5
replication, 21-28 to 21-33
Truncation
in imported text, B-4
Twisties
customizing, 3-24
U
Underline
in Web applications, 6-9
Unlinking
design elements, 19-41
templates and databases, 19-42
Unread marks
color, 7-49
displaying, 7-49
Domino 5 users and, 7-49
Updall task
described, 7-71
UpdatedBy field
described, 19-21
tracking edits, 18-34
Updating
designs, 19-36
documents, 19-20
Java applet files, 3-13
objects, 14-8
views, 7-71
Upgrading
framesets and, 8-1
Java applets and, 11-1
URL commands
authentication and, E-25
count parameters, E-23
explicit, E-16
for opening resources, E-12
for setting user preferences, E-28
for Web applications, E-1, 3-28
guidelines, E-2
home page, 19-8
implicit, E-16
opening documents by key, E-15
searching and, E-23
server commands, E-4
ServerRequest, E-27
start parameters, E-23
syntax, E-2
XML and, E-6
URL links
pages and, 4-13
URLs
generating, E-3
servlet, 12-3
Use value as color option
described, 7-52
User activity
reporting, 21-23
statistics, 21-21
User names
aliases, 18-16
Web, 18-26
wildcards in, 18-13
User preferences
setting for Web applications, E-28
User types
assigning to ACL, 18-21
Users
access levels, 18-2
terminated, 18-15
Using Database document
creating, 19-3
V
Values
recalculating for computed
fields, 6-33
refreshing, 6-41
Version control
conflict documents as, 5-13
field for, 6-51
forms for, 5-18, 6-56
tracking, 5-18, 6-56
VersionOpt field, 6-56
View applet
described, 2-11, 7-67
font support, 7-69
view properties and, D-11
View indexes
updating, 21-24
View lookups
choice list aliases and, 6-27
choice list fields and, 6-26
Names fields and, 6-22
View menu
working with framesets and, 8-4
View templates
defined, 7-60
forms as, 7-65
Views
@username and, 7-6
accessibility of icons in, 7-32
adding background images, 7-38
adding trash folder, 7-73
aliases and, 6-28, 7-9
All by Category, 7-46
allowing document selection on
Web, 7-69
calendar, 7-1, 7-4, 7-56
cascading, 7-11
categories and, 7-42
character sorting rules, 7-33
character translation file (.CLS)
and, B-2
COL files and, B-10
collapsing, 7-38
columns in, 1-11
compatibility, 7-23
copying, 7-7 to 7-8
creating, 7-7
creating documents, 7-50
creating trash folder, 7-74
customizing twisties, 3-24
database performance and, 21-27
Index-19
W
Web
@commands and, 2-11
@functions, D-2
access levels, 18-3
actions, D-3
agents, D-3
authentication and, 18-18, E-25
CGI variables, E-32
creating forms for, D-5
displaying views, 7-61
documents, 5-11
example of agents, 10-38
fields and, D-4
file attachments on, 5-29
folders, 7-9
hidden fields and, 5-14
hiding design elements, 19-44
hiding views, 7-70
improving performance on, 2-12
LotusScript and, D-3
mailing features, 16-5
navigating, 7-60, 9-27
navigators, 7-65, 10-21, D-8
Notes/FX and, 14-2
Perl script, E-31
previewing requirements for, 3-27
private views and, 7-7
selecting documents in
views, 7-69
Server document and, 19-8
simulating Notes menus
for, 10-13
tables, D-8
text, D-10
unsupported features, D-1,
Shortcut keys, 6-22
views, 7-3, D-10
Web agent scripts
DocumentContext property, E-33
Web applications
color for, 2-9
designing, 2-8
displaying text in, 4-6
enabling for offline use, 22-1, 22-3
home pages for, 4-5
Notes client and, 3-1, 6-11
planning, 2-1, 2-8
programming, E-1
replacing dialog boxes, 2-7
replicating, 22-14
running on Notes, 2-2
URL commands, 3-28, E-1, E-12
Web control page
Domino Off-Line Services,
22-2, 22-4
Web elements
date picker, 4-22
embedding on pages, 4-21
Web links
displaying in views, 7-24
Web pages
home pages, 4-5
in frames, 8-5
Web users
access to forms, 5-12
access to outlines, 9-16
attaching files, 5-29
authenticating, 18-16
controlling access, 18-25 to 18-26
designing for Notes and, 6-47
Domino applets for, 2-11
WebDAV
configuring, 17-4
described, 17-1
editing databases with, 17-4
replication and, 17-10
WebQueryOpen events
agents and, 12-3
described, 10-38
WebQuerySave events
agents and, 12-3
described, 10-38
WebSphere
integrating with, 2-14
Width
columns, 7-38
Window tabs
described, 1-5
Window titles
described, 5-20
WindowTitle field
described, 19-21
WKSCOL statement
described, B-8
Work area, Designer
described, 1-4
Workflow
applications, 14-1, 16-2
defined, 16-1
features, 16-3
overview, 16-1
Worksheet files
COL files and, B-6, B-8
exporting to, B-11
importing into views, B-3
WriteExternalData parameter
in Java applets, 11-16
WriteObject parameter
in Java applets, 11-18
X
XML
adding to forms and pages, 15-8
adding to views, 15-11
cascading style sheets and, 15-5
defined, 15-1, 15-7
exporting, 15-17
formatting with style sheets, 15-9
generating with an agent, 15-13
HTML and, 15-5
in Domino applications, 15-4
Java servlets, 15-15
tags, 15-4
terminology, 15-6
transforming, 15-17
viewing, 15-17
XSL
style sheets, 15-3
XML, 15-9
XSLT
defined, 15-7
Z
ZIP files
described, 11-4