Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
1K views

Java Security Domino

LOTUS DISCLAIMS All IMPLIED WARRANTIES, INCLUDING without LIMITATION, MERCHANTABILITY, NONINFRINGEMENT and FITNESS FOR a PARTICULAR PURPOSE, WITH RESPECT TO THE SAME. NOTWITHSTANDING ANYTHING to the CONTRARY, NOTHING CONTAINED in THIS documentation is INTENDED TO, nor SHALL HAVE the EFFECT OF, CREATING any

Uploaded by

Paul Pius Albino
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
1K views

Java Security Domino

LOTUS DISCLAIMS All IMPLIED WARRANTIES, INCLUDING without LIMITATION, MERCHANTABILITY, NONINFRINGEMENT and FITNESS FOR a PARTICULAR PURPOSE, WITH RESPECT TO THE SAME. NOTWITHSTANDING ANYTHING to the CONTRARY, NOTHING CONTAINED in THIS documentation is INTENDED TO, nor SHALL HAVE the EFFECT OF, CREATING any

Uploaded by

Paul Pius Albino
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 860

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,
LOTUS DISCLAIMS ALL IMPLIED WARRANTIES, INCLUDING WITHOUT LIMITATION THE
IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS
FOR A PARTICULAR PURPOSE, WITH RESPECT TO THE SAME. LOTUS 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
LOTUS (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 Lotus Development Corporation, except in the manner
described in the documentation or the applicable licensing agreement governing the use of the
software.
© Copyright 1985 – 1999 Lotus Development Corporation
55 Cambridge Parkway
Cambridge, MA 02142
All rights reserved. Printed in the United States.
LIST OF TRADEMARKS
Domino, cc:Mail, Notes, NotesBench, NotesFlow, and Notes/FX are trademarks and Freelance,
Freelance Graphics, Lotus, Lotus Components, Lotus Notes, LotusScript, Notes Mail, NotesSQL,
NotesView, 1-2-3, Organizer, SmartIcons, and SmartSuite are registered trademarks of Lotus
Development Corporation. AS/400, OS/2 Warp, RS/6000, and PowerPC are trademarks and AIX,
IBM, OS/2, Presentation Manager, and SNA are registered trademarks of International Business
Machines Corporation. Tivoli/Courier is a trademark of Tivoli Systems Inc., a wholly owned
subsidiary of International Business Machines Corporation. All other trademarks are the property of
their respective owners.
Contents

Preface . . . . . . . . . . . . . . . . . . . xxxvii Event descriptions . . . . . . . . . . . . . . . . . . . . . 25


Event sequencing . . . . . . . . . . . . . . . . . . . . . . 29
Volume I
1 Programming Overview . . . . . . . 1 2 User Interface . . . . . . . . . . . . . . 33
Programming in Domino ................ 1 Exploring the Programmer’s pane . . . . . . . . . 33
Where to use scripts and formulas ......... 1 Exploring the Java interface in the
Table of Domino Objects . . . . . . . . . . . . . . . . . 3 Programmer’s pane . . . . . . . . . . . . . . . 35

SmartIcons . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Accessing the Programmer’s pane . . . . . . 36

Replication formulas . . . . . . . . . . . . . . . . . . . . 6 Using the Info List . . . . . . . . . . . . . . . . . . . . . 37

Agents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Using the Objects tab . . . . . . . . . . . . . . . . . . . 37

Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Programming an object’s properties


and events . . . . . . . . . . . . . . . . . . . . . . 37
Hotspots . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Using the Reference tab . . . . . . . . . . . . . . . . . 38
Form, selection, and column formulas . . . . . . 15
Pasting information from the Reference
Form formulas . . . . . . . . . . . . . . . . . . . . . 15 tab into the Script area . . . . . . . . . . . . . 38
Selection formulas . . . . . . . . . . . . . . . . . . . 15 Using short-cut keys to access the
Column formulas . . . . . . . . . . . . . . . . . . . 16 Reference tab . . . . . . . . . . . . . . . . . . . . 39
Window title, section access, and insert Using the Errors box . . . . . . . . . . . . . . . . . . . 39
subform formulas . . . . . . . . . . . . . . . . . 17 Using the Script area . . . . . . . . . . . . . . . . . . . 39
Window title formulas . . . . . . . . . . . . . . . 17 Setting text properties . . . . . . . . . . . . . . . . 40
Section access formulas . . . . . . . . . . . . . . . 18 Moving the insertion point while
Insert subform formulas . . . . . . . . . . . . . . 18 editing text in the Script area . . . . . . . . 40
Section title and hidden Selecting text . . . . . . . . . . . . . . . . . . . . . . . 41
paragraph formulas . . . . . . . . . . . . . . . 19 Editing text with key combinations . . . . . 42
Section title formulas . . . . . . . . . . . . . . . . 19 Editing text with menu commands . . . . . . 42
Hidden paragraph formulas . . . . . . . . . . . 19 Saving and deleting text in the
Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Script area . . . . . . . . . . . . . . . . . . . . . . 42
Field design formulas . . . . . . . . . . . . . . . . . . 22 Renaming an object, subprogram,
Default value formulas . . . . . . . . . . . . . . . 23 or class . . . . . . . . . . . . . . . . . . . . . . . . . 43

Input translation formulas . . . . . . . . . . . . 23 Writing Java in an agent . . . . . . . . . . . . . . . . 43

Input validation formulas . . . . . . . . . . . . . 23 Compiling Java . . . . . . . . . . . . . . . . . . . . . 44

Value formulas for a computed fields . . . . 24 Importing Java into the


Programmer’s pane . . . . . . . . . . . . . . . 44
Keyword field formulas . . . . . . . . . . . . . . 24

iii
Using AgentRunner . . . . . . . . . . . . . . . . . . . . 45 Using variables . . . . . . . . . . . . . . . . . . . . . . . 63
Creating a project for AgentRunner . . . . . 45 Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Generating an AgentContext document . . . 46 Temporary variables . . . . . . . . . . . . . . . . . 65
Debugging a Java agent with Using constants . . . . . . . . . . . . . . . . . . . . . . . 66
AgentRunner . . . . . . . . . . . . . . . . . . . . 46 Text constants . . . . . . . . . . . . . . . . . . . . . . 66
Writing JavaScript in the Numeric constants . . . . . . . . . . . . . . . . . . 67
Programmer’s pane . . . . . . . . . . . . . . . 47
Time-date constants . . . . . . . . . . . . . . . . . 67
Writing JavaScript in a page header . . . . . 48
Using operators . . . . . . . . . . . . . . . . . . . . . . . 68
Compiling JavaScript . . . . . . . . . . . . . . . . 48
Operator overview and precedence . . . . . 69
Writing LotusScript in the
Programmer’s pane . . . . . . . . . . . . . . . 48 Order of evaluation for operations . . . . . . 70

Defining global variables Assignment operator . . . . . . . . . . . . . . . . 70


and subprograms . . . . . . . . . . . . . . . . . 48 List operator . . . . . . . . . . . . . . . . . . . . . . . 70
Create an additional script Unary operators . . . . . . . . . . . . . . . . . . . . 71
in LotusScript . . . . . . . . . . . . . . . . . . . . 49 Arithmetic operators . . . . . . . . . . . . . . . . . 71
Completing a LotusScript block Text operator . . . . . . . . . . . . . . . . . . . . . . 71
statement automatically . . . . . . . . . . . . 50
Comparison operators . . . . . . . . . . . . . . . 72
Completing a LotusScript
%directive automatically . . . . . . . . . . . 50 Logical operators . . . . . . . . . . . . . . . . . . . 72

Compiling LotusScript . . . . . . . . . . . . . . . 50 Operations on lists . . . . . . . . . . . . . . . . . . 72

Exploring the LotusScript Debugger . . . . . . . 51 Using @functions . . . . . . . . . . . . . . . . . . . . . . 75

Using the LotusScript Debugger . . . . . . . . 52 Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

Selecting a subprogram . . . . . . . . . . . . . . 53 Return value . . . . . . . . . . . . . . . . . . . . . . . 76

Stepping through a script . . . . . . . . . . . . . 53 Side-effects . . . . . . . . . . . . . . . . . . . . . . . . 76

Debugging with breakpoints . . . . . . . . . . 54 @Commands . . . . . . . . . . . . . . . . . . . . . . . 77

Using the debugger utilities . . . . . . . . . . . . . 55 Order of evaluation for


formula statements . . . . . . . . . . . . . . . 77
Using Script Libraries . . . . . . . . . . . . . . . . . . 56
Using keywords . . . . . . . . . . . . . . . . . . . . . . 79
Using LotusScript in a Script Library . . . . 56
Specifying form and view names
Using Java in a Script Library . . . . . . . . . . 57 in formulas . . . . . . . . . . . . . . . . . . . . . . 81
Writing formulas in the Debugging formulas . . . . . . . . . . . . . . . . . . . 81
Programmer’s pane . . . . . . . . . . . . . . . 58
Using the formula window . . . . . . . . . . . . 58 4 Formula Language
Using the Programmer’s pane for Coding Guidelines . . . . . . . . . . . . . 83
Simple action(s) . . . . . . . . . . . . . . . . . . 59 Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Writing formulas that evaluate to
3 Formula Language Rules . . . . . 61 a result . . . . . . . . . . . . . . . . . . . . . . . . . 84
Using the syntax rules . . . . . . . . . . . . . . . . . . 61
Writing formulas that perform actions . . . 85
Lexical elements . . . . . . . . . . . . . . . . . . . . 61
Working with lists . . . . . . . . . . . . . . . . . . 86
General syntax rules . . . . . . . . . . . . . . . . . 62

iv Domino Designer Programming Guide


Using conditional statements . . . . . . . . . . 90 Where does this @function work?
Writing messages and getting (Part 2 S–Z) . . . . . . . . . . . . . . . . . . . . . 151
user input . . . . . . . . . . . . . . . . . . . . . . . 92 @Functions with ECL security . . . . . . . . . . . . 153
Handling errors . . . . . . . . . . . . . . . . . . . . 98 @Abs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Working with @functions . . . . . . . . . . . . . 101 @Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Working with @commands . . . . . . . . . . . . 103 @Accessed . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Performing string operations . . . . . . . . . . . . . 104 @Acos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Concatenating, comparing, and @AddToFolder . . . . . . . . . . . . . . . . . . . . . . . 164
determining length . . . . . . . . . . . . . . . 106 @Adjust . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Locating and extracting substrings . . . . . . 109 @All . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Trimming, repeating, adding a new @AllChildren . . . . . . . . . . . . . . . . . . . . . . . . . 167
line, and changing case . . . . . . . . . . . . 112
@AllDescendants . . . . . . . . . . . . . . . . . . . . . . 168
Performing arithmetic operations . . . . . . . . . 113
@Ascii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Performing time-date operations . . . . . . . . . . 118
@Asin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Accessing the user environment . . . . . . . . . . 120
@Atan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
Accessing the current database and view . . . 122
@Atan2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
Accessing the current document in the
formula language . . . . . . . . . . . . . . . . . 125 @AttachmentLengths . . . . . . . . . . . . . . . . . . . 175

Accessing data outside the current @AttachmentNames . . . . . . . . . . . . . . . . . . . 176


document and database . . . . . . . . . . . . 128 @Attachments . . . . . . . . . . . . . . . . . . . . . . . . 176
Accessing external databases through @Author . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
ODBC using @functions . . . . . . . . . . . . 131 @Begins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
@BrowserInfo . . . . . . . . . . . . . . . . . . . . . . . . 179
5 Formula Language
@Functions A–Z . . . . . . . . . . . . . 133 @Certificate . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Where does this @function work? @Char . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
(Part 1 A–D) . . . . . . . . . . . . . . . . . . . . . 133 @CheckAlarms . . . . . . . . . . . . . . . . . . . . . . . 183
Where does this @function work? @ClientType . . . . . . . . . . . . . . . . . . . . . . . . . 184
(Part 1 E–K) . . . . . . . . . . . . . . . . . . . . . 136 @Command . . . . . . . . . . . . . . . . . . . . . . . . . . 184
Where does this @function work? @Contains . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
(Part 1 L–R) . . . . . . . . . . . . . . . . . . . . . 138
@Cos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Where does this @function work?
(Part 1 S–Z) . . . . . . . . . . . . . . . . . . . . . 141 @Created . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Where does this @function work? @Date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
(Part 2 A–D) . . . . . . . . . . . . . . . . . . . . . 143 @Day . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Where does this @function work? @DbColumn (Notes databases) . . . . . . . . . . . 190
(Part 2 E–K) . . . . . . . . . . . . . . . . . . . . . 146 @DbColumn (ODBC) . . . . . . . . . . . . . . . . . . . 195
Where does this @function work? @DbCommand (ODBC) . . . . . . . . . . . . . . . . . 201
(Part 2 L–R) . . . . . . . . . . . . . . . . . . . . . 148
@DbExists . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
@DbLookup (Notes databases) . . . . . . . . . . . 207

v
@DbLookup (ODBC) . . . . . . . . . . . . . . . . . . . 214 FIELD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
@DbManager . . . . . . . . . . . . . . . . . . . . . . . . . 220 @Fontlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
@DbName . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 @GetDocField . . . . . . . . . . . . . . . . . . . . . . . . 259
@DbTitle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 @GetPortsList . . . . . . . . . . . . . . . . . . . . . . . . 260
@DDEExecute . . . . . . . . . . . . . . . . . . . . . . . . 223 @GetProfileField . . . . . . . . . . . . . . . . . . . . . . 261
@DDEInitiate . . . . . . . . . . . . . . . . . . . . . . . . . 225 @Hour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
@DDEPoke . . . . . . . . . . . . . . . . . . . . . . . . . . 227 @If . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
@DDETerminate . . . . . . . . . . . . . . . . . . . . . . 228 @Implode . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
DEFAULT . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 @InheritedDocumentUniqueID . . . . . . . . . . . 266
@DeleteDocument . . . . . . . . . . . . . . . . . . . . . 229 @Integer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
@DeleteField . . . . . . . . . . . . . . . . . . . . . . . . . 230 @IsAgentEnabled . . . . . . . . . . . . . . . . . . . . . 267
@DialogBox . . . . . . . . . . . . . . . . . . . . . . . . . . 230 @IsAvailable . . . . . . . . . . . . . . . . . . . . . . . . . 268
@Do . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 @IsCategory . . . . . . . . . . . . . . . . . . . . . . . . . . 269
@DocChildren . . . . . . . . . . . . . . . . . . . . . . . . 234 @IsDocBeingEdited . . . . . . . . . . . . . . . . . . . . 270
@DocDescendants . . . . . . . . . . . . . . . . . . . . . 236 @IsDocBeingLoaded . . . . . . . . . . . . . . . . . . . 270
@DocFields . . . . . . . . . . . . . . . . . . . . . . . . . . 238 @IsDocBeingMailed . . . . . . . . . . . . . . . . . . . . 271
@DocLength . . . . . . . . . . . . . . . . . . . . . . . . . 238 @IsDocBeingRecalculated . . . . . . . . . . . . . . . 272
@DocLevel . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 @IsDocBeingSaved . . . . . . . . . . . . . . . . . . . . 273
@DocMark . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 @IsDocTruncated . . . . . . . . . . . . . . . . . . . . . . 274
@DocNumber . . . . . . . . . . . . . . . . . . . . . . . . 240 @IsError . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
@DocParentNumber . . . . . . . . . . . . . . . . . . . 241 @IsExpandable . . . . . . . . . . . . . . . . . . . . . . . 275
@DocSiblings . . . . . . . . . . . . . . . . . . . . . . . . . 242 @IsMember . . . . . . . . . . . . . . . . . . . . . . . . . . 276
@DocumentUniqueID . . . . . . . . . . . . . . . . . . 243 @IsModalHelp . . . . . . . . . . . . . . . . . . . . . . . . 277
@Domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 @IsNewDoc . . . . . . . . . . . . . . . . . . . . . . . . . . 278
@EditECL . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 @IsNotMember . . . . . . . . . . . . . . . . . . . . . . . 278
@EditUserECL . . . . . . . . . . . . . . . . . . . . . . . . 247 @IsNumber . . . . . . . . . . . . . . . . . . . . . . . . . . 280
@Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 @IsResponseDoc . . . . . . . . . . . . . . . . . . . . . . 280
@EnableAlarms . . . . . . . . . . . . . . . . . . . . . . . 248 @IsText . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
@Ends . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 @IsTime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
ENVIRONMENT . . . . . . . . . . . . . . . . . . . . . . 249 @IsUnavailable . . . . . . . . . . . . . . . . . . . . . . . 282
@Environment . . . . . . . . . . . . . . . . . . . . . . . . 250 @IsValid . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
@Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 @Keywords . . . . . . . . . . . . . . . . . . . . . . . . . . 284
@Exp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 @LanguagePreference . . . . . . . . . . . . . . . . . . 285
@Explode . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 @Left . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
@Failure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 @LeftBack . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
@False . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 @Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288

vi Domino Designer Programming Guide


@Like . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 @ProperCase . . . . . . . . . . . . . . . . . . . . . . . . . 336
@Ln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 @Random . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
@Locale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 @RefreshECL . . . . . . . . . . . . . . . . . . . . . . . . . 338
@Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 REM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
@LowerCase . . . . . . . . . . . . . . . . . . . . . . . . . 293 @Repeat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
@MailDbName . . . . . . . . . . . . . . . . . . . . . . . 294 @Replace . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
@MailEncryptSavedPreference . . . . . . . . . . . 295 @ReplaceSubstring . . . . . . . . . . . . . . . . . . . . 341
@MailEncryptSentPreference . . . . . . . . . . . . . 296 @Responses . . . . . . . . . . . . . . . . . . . . . . . . . . 342
@MailSavePreference . . . . . . . . . . . . . . . . . . . 296 @Return . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
@MailSend . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 @Right . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
@MailSignPreference . . . . . . . . . . . . . . . . . . . 301 @RightBack . . . . . . . . . . . . . . . . . . . . . . . . . . 345
@Matches . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 @Round . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
@Max . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 @Second . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
@Member . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304 SELECT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
@Middle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 @Select . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
@MiddleBack . . . . . . . . . . . . . . . . . . . . . . . . . 307 @Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
@Min . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 @SetDocField . . . . . . . . . . . . . . . . . . . . . . . . . 351
@Minute . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 @SetEnvironment . . . . . . . . . . . . . . . . . . . . . 352
@Modified . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 @SetField . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
@Modulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311 @SetProfileField . . . . . . . . . . . . . . . . . . . . . . . 354
@Month . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 @SetTargetFrame . . . . . . . . . . . . . . . . . . . . . . 354
@Name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 @Sign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
@NameLookup . . . . . . . . . . . . . . . . . . . . . . . 317 @Sin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
@Narrow . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319 @Soundex . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
@NewLine . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 @Sqrt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
@No . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321 @Subset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
@NoteID . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 @Success . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
@Now . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 @Sum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
@OptimizeMailAddress . . . . . . . . . . . . . . . . 322 @Tan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
@Password . . . . . . . . . . . . . . . . . . . . . . . . . . 323 @Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
@Pi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 @TextToNumber . . . . . . . . . . . . . . . . . . . . . . 363
@PickList . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 @TextToTime . . . . . . . . . . . . . . . . . . . . . . . . . 364
@Platform . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 @Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
@PostedCommand . . . . . . . . . . . . . . . . . . . . 330 @Today . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
@Power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 @Tomorrow . . . . . . . . . . . . . . . . . . . . . . . . . . 367
@Prompt . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 @Trim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367

vii
@True . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368 AdminCrossCertifyKey . . . . . . . . . . . . . . . . . 403
@Unavailable . . . . . . . . . . . . . . . . . . . . . . . . . 369 AdminDatabaseAnalysis . . . . . . . . . . . . . . . . 403
@UndeleteDocument . . . . . . . . . . . . . . . . . . . 369 AdminDatabaseQuotas . . . . . . . . . . . . . . . . . 404
@Unique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370 AdminIDFileClearPassword . . . . . . . . . . . . . 404
@UpperCase . . . . . . . . . . . . . . . . . . . . . . . . . 370 AdminIDFileExamine . . . . . . . . . . . . . . . . . . 404
@URLGetHeader . . . . . . . . . . . . . . . . . . . . . . 371 AdminIDFileSetPassword . . . . . . . . . . . . . . . 405
@URLHistory . . . . . . . . . . . . . . . . . . . . . . . . 373 Administration . . . . . . . . . . . . . . . . . . . . . . . 405
@URLOpen . . . . . . . . . . . . . . . . . . . . . . . . . . 374 AdminNewOrganization . . . . . . . . . . . . . . . . 405
@UserAccess . . . . . . . . . . . . . . . . . . . . . . . . . 377 AdminNewOrgUnit . . . . . . . . . . . . . . . . . . . 406
@UserName . . . . . . . . . . . . . . . . . . . . . . . . . . 379 AdminOpenAddressBook . . . . . . . . . . . . . . . 406
@UserNameLanguage . . . . . . . . . . . . . . . . . . 381 AdminOpenCatalog . . . . . . . . . . . . . . . . . . . 406
@UserNamesList . . . . . . . . . . . . . . . . . . . . . . 382 AdminOpenCertLog . . . . . . . . . . . . . . . . . . . 407
@UserPrivileges . . . . . . . . . . . . . . . . . . . . . . . 383 AdminOpenGroupsView . . . . . . . . . . . . . . . 407
@UserRoles . . . . . . . . . . . . . . . . . . . . . . . . . . 383 AdminOpenServerLog . . . . . . . . . . . . . . . . . 407
@V2If . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384 AdminOpenServersView . . . . . . . . . . . . . . . . 408
@V3UserName . . . . . . . . . . . . . . . . . . . . . . . 385 AdminOpenStatistics . . . . . . . . . . . . . . . . . . . 408
@ValidateInternetAddress . . . . . . . . . . . . . . . 386 AdminOpenUsersView . . . . . . . . . . . . . . . . . 408
@Version . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 AdminOutgoingMail . . . . . . . . . . . . . . . . . . . 409
@ViewTitle . . . . . . . . . . . . . . . . . . . . . . . . . . 389 AdminRegisterFromFile . . . . . . . . . . . . . . . . 409
@Weekday . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 AdminRegisterServer . . . . . . . . . . . . . . . . . . 409
@Wide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390 AdminRegisterUser . . . . . . . . . . . . . . . . . . . . 410
@Word . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391 AdminRemoteConsole . . . . . . . . . . . . . . . . . 410
@Year . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392 AdminSendMailTrace . . . . . . . . . . . . . . . . . . 410
@Yes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393 AdminStatisticsConfig . . . . . . . . . . . . . . . . . . 411
@Yesterday . . . . . . . . . . . . . . . . . . . . . . . . . . 393 AdminTraceConnection . . . . . . . . . . . . . . . . 411
@Zone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394 AgentEdit . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
AgentEnableDisable . . . . . . . . . . . . . . . . . . . 412
6 Formula Language
AgentLog . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
@Commands A–Z . . . . . . . . . . . . 397
AgentRun . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
Using @Commands . . . . . . . . . . . . . . . . . . . . 397
AgentSetServerName . . . . . . . . . . . . . . . . . . 413
@Commands with ECL security . . . . . . . . . . 397
AgentTestRun . . . . . . . . . . . . . . . . . . . . . . . . 413
AddBookmark . . . . . . . . . . . . . . . . . . . . . . . . 400
AttachmentDetachAll . . . . . . . . . . . . . . . . . . 414
AddDatabase . . . . . . . . . . . . . . . . . . . . . . . . . 400
AttachmentLaunch . . . . . . . . . . . . . . . . . . . . 414
AddDatabaseRepID . . . . . . . . . . . . . . . . . . . . 401
AttachmentProperties . . . . . . . . . . . . . . . . . . 414
AdminCertify . . . . . . . . . . . . . . . . . . . . . . . . 402
AttachmentView . . . . . . . . . . . . . . . . . . . . . . 415
AdminCreateGroup . . . . . . . . . . . . . . . . . . . . 402
CalendarFormat . . . . . . . . . . . . . . . . . . . . . . 415
AdminCrossCertifyIDFile . . . . . . . . . . . . . . . 403

viii Domino Designer Programming Guide


CalendarGoTo . . . . . . . . . . . . . . . . . . . . . . . . 416 DesignSynopsis . . . . . . . . . . . . . . . . . . . . . . . 429
ChooseFolders . . . . . . . . . . . . . . . . . . . . . . . . 416 DesignViewAppendColumn . . . . . . . . . . . . . 429
Compose . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417 DesignViewAttributes . . . . . . . . . . . . . . . . . . 429
CreateAction . . . . . . . . . . . . . . . . . . . . . . . . . 418 DesignViewColumnDef . . . . . . . . . . . . . . . . . 429
CreateAgent . . . . . . . . . . . . . . . . . . . . . . . . . 418 DesignViewEditActions . . . . . . . . . . . . . . . . 430
CreateControlledAccessSection . . . . . . . . . . . 419 DesignViewFormFormula . . . . . . . . . . . . . . . 430
CreateEllipse . . . . . . . . . . . . . . . . . . . . . . . . . 419 DesignViewNewColumn . . . . . . . . . . . . . . . . 430
CreateFolder . . . . . . . . . . . . . . . . . . . . . . . . . 419 DesignViews . . . . . . . . . . . . . . . . . . . . . . . . . 430
CreateForm . . . . . . . . . . . . . . . . . . . . . . . . . . 420 DesignViewSelectFormula . . . . . . . . . . . . . . . 431
CreateLayoutRegion . . . . . . . . . . . . . . . . . . . 420 DialingRules . . . . . . . . . . . . . . . . . . . . . . . . . 431
CreateNavigator . . . . . . . . . . . . . . . . . . . . . . 420 EditBottom . . . . . . . . . . . . . . . . . . . . . . . . . . 431
CreatePolygon . . . . . . . . . . . . . . . . . . . . . . . . 421 EditButton . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
CreatePolyline . . . . . . . . . . . . . . . . . . . . . . . . 421 EditClear . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
CreateRectangle . . . . . . . . . . . . . . . . . . . . . . . 421 EditCopy . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
CreateRectangularHotspot . . . . . . . . . . . . . . 422 EditCut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
CreateSection . . . . . . . . . . . . . . . . . . . . . . . . . 422 EditDeselectAll . . . . . . . . . . . . . . . . . . . . . . . 433
CreateSubForm . . . . . . . . . . . . . . . . . . . . . . . 422 EditDetach . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
CreateTextbox . . . . . . . . . . . . . . . . . . . . . . . . 423 EditDocument . . . . . . . . . . . . . . . . . . . . . . . . 435
CreateView . . . . . . . . . . . . . . . . . . . . . . . . . . 423 EditDown . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
DatabaseReplSettings . . . . . . . . . . . . . . . . . . 423 EditEncryptionKeys . . . . . . . . . . . . . . . . . . . . 436
DebugLotusScript . . . . . . . . . . . . . . . . . . . . . 424 EditFind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
DesignDocumentInfo . . . . . . . . . . . . . . . . . . 424 EditFindInPreview . . . . . . . . . . . . . . . . . . . . 437
DesignFormAttributes . . . . . . . . . . . . . . . . . . 424 EditFindNext . . . . . . . . . . . . . . . . . . . . . . . . . 438
DesignFormFieldDef . . . . . . . . . . . . . . . . . . . 425 EditGoToField . . . . . . . . . . . . . . . . . . . . . . . . 438
DesignFormNewField . . . . . . . . . . . . . . . . . . 425 EditHeaderFooter . . . . . . . . . . . . . . . . . . . . . 439
DesignForms . . . . . . . . . . . . . . . . . . . . . . . . . 425 EditHorizScrollbar . . . . . . . . . . . . . . . . . . . . . 439
DesignFormShareField . . . . . . . . . . . . . . . . . 425 EditIndent . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
DesignFormUseField . . . . . . . . . . . . . . . . . . . 426 EditIndentFirstLine . . . . . . . . . . . . . . . . . . . . 440
DesignFormWindowTitle . . . . . . . . . . . . . . . 426 EditInsertButton . . . . . . . . . . . . . . . . . . . . . . 440
DesignHelpAboutDocument . . . . . . . . . . . . . 426 EditInsertFileAttachment . . . . . . . . . . . . . . . 440
DesignHelpUsingDocument . . . . . . . . . . . . . 427 EditInsertObject . . . . . . . . . . . . . . . . . . . . . . . 441
DesignIcon . . . . . . . . . . . . . . . . . . . . . . . . . . . 427 EditInsertPageBreak . . . . . . . . . . . . . . . . . . . 442
DesignMacros . . . . . . . . . . . . . . . . . . . . . . . . 427 EditInsertPopup . . . . . . . . . . . . . . . . . . . . . . 442
DesignRefresh . . . . . . . . . . . . . . . . . . . . . . . . 428 EditInsertTable . . . . . . . . . . . . . . . . . . . . . . . 443
DesignReplace . . . . . . . . . . . . . . . . . . . . . . . . 428 EditInsertText . . . . . . . . . . . . . . . . . . . . . . . . 443
DesignSharedFields . . . . . . . . . . . . . . . . . . . . 428 EditLeft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444

ix
EditLinks . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444 FileFullTextDelete . . . . . . . . . . . . . . . . . . . . . 460
EditLocations . . . . . . . . . . . . . . . . . . . . . . . . . 445 FileFullTextInfo . . . . . . . . . . . . . . . . . . . . . . . 460
EditMakeDocLink . . . . . . . . . . . . . . . . . . . . . 445 FileFullTextUpdate . . . . . . . . . . . . . . . . . . . . 461
EditNextField . . . . . . . . . . . . . . . . . . . . . . . . 445 FileImport . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
EditOpenLink . . . . . . . . . . . . . . . . . . . . . . . . 445 FileNewDatabase . . . . . . . . . . . . . . . . . . . . . . 463
EditPaste . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446 FileNewReplica . . . . . . . . . . . . . . . . . . . . . . . 463
EditPasteSpecial . . . . . . . . . . . . . . . . . . . . . . 446 FileOpenDatabase . . . . . . . . . . . . . . . . . . . . . 464
EditPhoneNumbers . . . . . . . . . . . . . . . . . . . . 446 FileOpenDBRepID . . . . . . . . . . . . . . . . . . . . . 466
EditPrevField . . . . . . . . . . . . . . . . . . . . . . . . . 447 FilePageSetup . . . . . . . . . . . . . . . . . . . . . . . . 467
EditProfile . . . . . . . . . . . . . . . . . . . . . . . . . . . 447 FilePrint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
EditResizePicture . . . . . . . . . . . . . . . . . . . . . . 448 FilePrintSetup . . . . . . . . . . . . . . . . . . . . . . . . 470
EditRight . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448 FileSave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
EditSelectAll . . . . . . . . . . . . . . . . . . . . . . . . . 449 FileSaveNewVersion . . . . . . . . . . . . . . . . . . . 470
EditSelectByDate . . . . . . . . . . . . . . . . . . . . . . 450 FindFreeTimeDialog . . . . . . . . . . . . . . . . . . . 471
EditShowHideHiddenChars . . . . . . . . . . . . . 450 Folder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
EditTableDeleteRowColumn . . . . . . . . . . . . . 450 FolderCollapse . . . . . . . . . . . . . . . . . . . . . . . 473
EditTableFormat . . . . . . . . . . . . . . . . . . . . . . 451 FolderCustomize . . . . . . . . . . . . . . . . . . . . . . 473
EditTableInsertRowColumn . . . . . . . . . . . . . 451 FolderExpand . . . . . . . . . . . . . . . . . . . . . . . . 474
EditTop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452 FolderExpandAll . . . . . . . . . . . . . . . . . . . . . . 474
EditUndo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452 FolderExpandWithChildren . . . . . . . . . . . . . 474
EditUntruncate . . . . . . . . . . . . . . . . . . . . . . . 452 FolderMove . . . . . . . . . . . . . . . . . . . . . . . . . . 475
EditUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453 FolderProperties . . . . . . . . . . . . . . . . . . . . . . 475
EmptyTrash . . . . . . . . . . . . . . . . . . . . . . . . . . 453 FolderRename . . . . . . . . . . . . . . . . . . . . . . . . 475
ExchangeUnreadMarks . . . . . . . . . . . . . . . . . 454 FormActions . . . . . . . . . . . . . . . . . . . . . . . . . 476
Execute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454 FormTestDocument . . . . . . . . . . . . . . . . . . . . 476
FileCloseWindow . . . . . . . . . . . . . . . . . . . . . 455 GoUpLevel . . . . . . . . . . . . . . . . . . . . . . . . . . 476
FileDatabaseACL . . . . . . . . . . . . . . . . . . . . . . 455 Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
FileDatabaseCompact . . . . . . . . . . . . . . . . . . 455 HelpAboutDatabase . . . . . . . . . . . . . . . . . . . 477
FileDatabaseCopy . . . . . . . . . . . . . . . . . . . . . 456 HelpAboutNotes . . . . . . . . . . . . . . . . . . . . . . 477
FileDatabaseDelete . . . . . . . . . . . . . . . . . . . . 456 HelpFunctions . . . . . . . . . . . . . . . . . . . . . . . . 477
FileDatabaseInfo . . . . . . . . . . . . . . . . . . . . . . 456 HelpIndex . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
FileDatabaseRemove . . . . . . . . . . . . . . . . . . . 457 HelpKeyboard . . . . . . . . . . . . . . . . . . . . . . . . 478
FileDatabaseUseServer . . . . . . . . . . . . . . . . . 457 HelpMessages . . . . . . . . . . . . . . . . . . . . . . . . 478
FileExit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457 HelpRelease3MenuFinder . . . . . . . . . . . . . . . 478
FileExport . . . . . . . . . . . . . . . . . . . . . . . . . . . 458 HelpReleaseNotes . . . . . . . . . . . . . . . . . . . . . 478
FileFullTextCreate . . . . . . . . . . . . . . . . . . . . . 460 HelpTableOfContents . . . . . . . . . . . . . . . . . . 478

x Domino Designer Programming Guide


HelpUsingDatabase . . . . . . . . . . . . . . . . . . . . 479 ObjectDisplayAs . . . . . . . . . . . . . . . . . . . . . . 491
HotSpotClear . . . . . . . . . . . . . . . . . . . . . . . . . 479 ObjectOpen . . . . . . . . . . . . . . . . . . . . . . . . . . 492
HotSpotProperties . . . . . . . . . . . . . . . . . . . . . 479 ObjectProperties . . . . . . . . . . . . . . . . . . . . . . 492
InsertSubForm . . . . . . . . . . . . . . . . . . . . . . . . 480 OpenCalendar . . . . . . . . . . . . . . . . . . . . . . . . 492
LayoutAddGraphic . . . . . . . . . . . . . . . . . . . . 480 OpenDocument . . . . . . . . . . . . . . . . . . . . . . . 493
LayoutAddText . . . . . . . . . . . . . . . . . . . . . . . 480 OpenFrameset . . . . . . . . . . . . . . . . . . . . . . . . 494
LayoutElementBringToFront . . . . . . . . . . . . . 481 OpenHelpDocument . . . . . . . . . . . . . . . . . . . 494
LayoutElementProperties . . . . . . . . . . . . . . . 481 OpenNavigator . . . . . . . . . . . . . . . . . . . . . . . 495
LayoutElementSendToBack . . . . . . . . . . . . . . 481 OpenPage . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
LayoutProperties . . . . . . . . . . . . . . . . . . . . . . 482 OpenView . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
MailAddress . . . . . . . . . . . . . . . . . . . . . . . . . 482 PasteBitmapAsBackground . . . . . . . . . . . . . . 497
MailComposeMemo . . . . . . . . . . . . . . . . . . . 482 PasteBitmapAsObject . . . . . . . . . . . . . . . . . . 498
MailForward . . . . . . . . . . . . . . . . . . . . . . . . . 483 PictureProperties . . . . . . . . . . . . . . . . . . . . . . 498
MailForwardAsAttachment . . . . . . . . . . . . . . 483 PublishDatabase . . . . . . . . . . . . . . . . . . . . . . 498
MailOpen . . . . . . . . . . . . . . . . . . . . . . . . . . . 483 RefreshHideFormulas . . . . . . . . . . . . . . . . . . 498
MailRequestCrossCert . . . . . . . . . . . . . . . . . . 483 RefreshParentNote . . . . . . . . . . . . . . . . . . . . 499
MailRequestNewName . . . . . . . . . . . . . . . . . 484 RemoveFromFolder . . . . . . . . . . . . . . . . . . . . 499
MailRequestNewPublicKey . . . . . . . . . . . . . . 484 RenameDatabase . . . . . . . . . . . . . . . . . . . . . . 499
MailScanUnread . . . . . . . . . . . . . . . . . . . . . . 484 Replicator . . . . . . . . . . . . . . . . . . . . . . . . . . . 500
MailSend . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485 ReplicatorReplicateHigh . . . . . . . . . . . . . . . . 500
MailSendCertificateRequest . . . . . . . . . . . . . 485 ReplicatorReplicateNext . . . . . . . . . . . . . . . . 501
MailSendEncryptionKey . . . . . . . . . . . . . . . . 485 ReplicatorReplicateSelected . . . . . . . . . . . . . . 501
MailSendPublicKey . . . . . . . . . . . . . . . . . . . . 486 ReplicatorReplicateWithServer . . . . . . . . . . . 501
NavigateNext . . . . . . . . . . . . . . . . . . . . . . . . 486 ReplicatorSendMail . . . . . . . . . . . . . . . . . . . . 502
NavigateNextHighlight . . . . . . . . . . . . . . . . . 486 ReplicatorSendReceiveMail . . . . . . . . . . . . . . 502
NavigateNextMain . . . . . . . . . . . . . . . . . . . . 487 ReplicatorStart . . . . . . . . . . . . . . . . . . . . . . . . 502
NavigateNextSelected . . . . . . . . . . . . . . . . . . 487 ReplicatorStop . . . . . . . . . . . . . . . . . . . . . . . . 502
NavigateNextUnread . . . . . . . . . . . . . . . . . . 488 SectionCollapse . . . . . . . . . . . . . . . . . . . . . . . 503
NavigatePrev . . . . . . . . . . . . . . . . . . . . . . . . . 488 SectionCollapseAll . . . . . . . . . . . . . . . . . . . . . 503
NavigatePrevHighlight . . . . . . . . . . . . . . . . . 489 SectionDefineEditors . . . . . . . . . . . . . . . . . . . 503
NavigatePrevMain . . . . . . . . . . . . . . . . . . . . 489 SectionExpand . . . . . . . . . . . . . . . . . . . . . . . . 504
NavigatePrevSelected . . . . . . . . . . . . . . . . . . 490 SectionExpandAll . . . . . . . . . . . . . . . . . . . . . 504
NavigatePrevUnread . . . . . . . . . . . . . . . . . . . 490 SectionProperties . . . . . . . . . . . . . . . . . . . . . . 504
NavigateToBackLink . . . . . . . . . . . . . . . . . . . 490 SectionRemoveHeader . . . . . . . . . . . . . . . . . 505
NavigatorProperties . . . . . . . . . . . . . . . . . . . 491 SetCurrentLocation . . . . . . . . . . . . . . . . . . . . 505
NavigatorTest . . . . . . . . . . . . . . . . . . . . . . . . 491 ShowHideLinkPreview . . . . . . . . . . . . . . . . . 505

xi
ShowHideParentPreview . . . . . . . . . . . . . . . 506 ToolsMarkSelectedRead . . . . . . . . . . . . . . . . 521
ShowHidePreviewPane . . . . . . . . . . . . . . . . . 506 ToolsMarkSelectedUnread . . . . . . . . . . . . . . 521
ShowProperties . . . . . . . . . . . . . . . . . . . . . . . 506 ToolsRefreshAllDocs . . . . . . . . . . . . . . . . . . . 522
SmartIconsFloating . . . . . . . . . . . . . . . . . . . . 507 ToolsRefreshSelectedDocs . . . . . . . . . . . . . . . 522
SmartIconsNextSet . . . . . . . . . . . . . . . . . . . . 507 ToolsReplicate . . . . . . . . . . . . . . . . . . . . . . . . 522
StyleCycleKey . . . . . . . . . . . . . . . . . . . . . . . . 507 ToolsRunBackgroundMacros . . . . . . . . . . . . 523
TextAlignCenter . . . . . . . . . . . . . . . . . . . . . . 508 ToolsRunMacro . . . . . . . . . . . . . . . . . . . . . . . 523
TextAlignFull . . . . . . . . . . . . . . . . . . . . . . . . 508 ToolsScanUnreadChoose . . . . . . . . . . . . . . . . 524
TextAlignLeft . . . . . . . . . . . . . . . . . . . . . . . . 508 ToolsScanUnreadPreferred . . . . . . . . . . . . . . 524
TextAlignNone . . . . . . . . . . . . . . . . . . . . . . . 509 ToolsScanUnreadSelected . . . . . . . . . . . . . . . 524
TextAlignRight . . . . . . . . . . . . . . . . . . . . . . . 509 ToolsSetupLocation . . . . . . . . . . . . . . . . . . . . 525
TextBold . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509 ToolsSetupMail . . . . . . . . . . . . . . . . . . . . . . . 525
TextBullet . . . . . . . . . . . . . . . . . . . . . . . . . . . 510 ToolsSetupPorts . . . . . . . . . . . . . . . . . . . . . . . 525
TextCycleSpacing . . . . . . . . . . . . . . . . . . . . . 510 ToolsSetupUserSetup . . . . . . . . . . . . . . . . . . 526
TextEnlargeFont . . . . . . . . . . . . . . . . . . . . . . 511 ToolsSmartIcons . . . . . . . . . . . . . . . . . . . . . . 526
TextFont . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511 ToolsSpellCheck . . . . . . . . . . . . . . . . . . . . . . 526
TextItalic . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512 ToolsUserLogoff . . . . . . . . . . . . . . . . . . . . . . 527
TextNormal . . . . . . . . . . . . . . . . . . . . . . . . . . 512 UserIDCertificates . . . . . . . . . . . . . . . . . . . . . 527
TextNumbers . . . . . . . . . . . . . . . . . . . . . . . . . 513 UserIDClearPassword . . . . . . . . . . . . . . . . . . 527
TextOutdent . . . . . . . . . . . . . . . . . . . . . . . . . 513 UserIDCreateSafeCopy . . . . . . . . . . . . . . . . . 528
TextParagraph . . . . . . . . . . . . . . . . . . . . . . . . 514 UserIDEncryptionKeys . . . . . . . . . . . . . . . . . 528
TextParagraphStyles . . . . . . . . . . . . . . . . . . . 514 UserIDInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . 528
TextPermanentPen . . . . . . . . . . . . . . . . . . . . 514 UserIDMergeCopy . . . . . . . . . . . . . . . . . . . . 529
TextReduceFont . . . . . . . . . . . . . . . . . . . . . . . 515 UserIDSetPassword . . . . . . . . . . . . . . . . . . . . 529
TextSetFontColor . . . . . . . . . . . . . . . . . . . . . . 515 UserIDSwitch . . . . . . . . . . . . . . . . . . . . . . . . 529
TextSetFontFace . . . . . . . . . . . . . . . . . . . . . . . 516 V3EditNextField . . . . . . . . . . . . . . . . . . . . . . 530
TextSetFontSize . . . . . . . . . . . . . . . . . . . . . . . 517 V3EditPrevField . . . . . . . . . . . . . . . . . . . . . . 530
TextSpacingDouble . . . . . . . . . . . . . . . . . . . . 517 ViewArrangeIcons . . . . . . . . . . . . . . . . . . . . . 531
TextSpacingOneAndAHalf . . . . . . . . . . . . . . 518 ViewBelowFolders . . . . . . . . . . . . . . . . . . . . 531
TextSpacingSingle . . . . . . . . . . . . . . . . . . . . . 518 ViewBesideFolders . . . . . . . . . . . . . . . . . . . . 531
TextUnderline . . . . . . . . . . . . . . . . . . . . . . . . 518 ViewCertify . . . . . . . . . . . . . . . . . . . . . . . . . . 531
ToolsCall . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519 ViewChange . . . . . . . . . . . . . . . . . . . . . . . . . 532
ToolsCategorize . . . . . . . . . . . . . . . . . . . . . . . 519 ViewCollapse . . . . . . . . . . . . . . . . . . . . . . . . 533
ToolsHangUp . . . . . . . . . . . . . . . . . . . . . . . . 520 ViewCollapseAll . . . . . . . . . . . . . . . . . . . . . . 533
ToolsMarkAllRead . . . . . . . . . . . . . . . . . . . . 520 ViewExpand . . . . . . . . . . . . . . . . . . . . . . . . . 534
ToolsMarkAllUnread . . . . . . . . . . . . . . . . . . 520 ViewExpandAll . . . . . . . . . . . . . . . . . . . . . . . 534

xii Domino Designer Programming Guide


ViewExpandWithChildren . . . . . . . . . . . . . . 534 Using the Evaluate statement . . . . . . . . . . 549
ViewHorizScrollBar . . . . . . . . . . . . . . . . . . . . 535 Using an object . . . . . . . . . . . . . . . . . . . . . 550
ViewMoveName . . . . . . . . . . . . . . . . . . . . . . 535 Using Bind, Command, Execute,
ViewNavigatorsFolders . . . . . . . . . . . . . . . . . 535 InputBox, MessageBox, Print,
SendKeys, Use, and UseLSX . . . . . . . . 551
ViewNavigatorsNone . . . . . . . . . . . . . . . . . . 536
Calling a function or subroutine . . . . . . . . 552
ViewRefreshFields . . . . . . . . . . . . . . . . . . . . . 536
Using parentheses to pass by value . . . . . 553
ViewRefreshUnread . . . . . . . . . . . . . . . . . . . 536
Accessing Domino databases . . . . . . . . . . . . . 553
ViewRenamePerson . . . . . . . . . . . . . . . . . . . . 537
Accessing database properties . . . . . . . . . 554
ViewShowFieldHelp . . . . . . . . . . . . . . . . . . . 537
Locating a database on a server and
ViewShowObject . . . . . . . . . . . . . . . . . . . . . . 537 local disk . . . . . . . . . . . . . . . . . . . . . . . 557
ViewShowOnlyCategories . . . . . . . . . . . . . . . 538 Opening a database . . . . . . . . . . . . . . . . . 558
ViewShowOnlySearchResults . . . . . . . . . . . . 538 Creating a database . . . . . . . . . . . . . . . . . 561
ViewShowOnlySelected . . . . . . . . . . . . . . . . 538 Accessing an outline . . . . . . . . . . . . . . . . . 562
ViewShowOnlyUnread . . . . . . . . . . . . . . . . . 539 Examining and adjusting an access
ViewShowPageBreaks . . . . . . . . . . . . . . . . . . 539 control list . . . . . . . . . . . . . . . . . . . . . . 565
ViewShowRuler . . . . . . . . . . . . . . . . . . . . . . . 539 Examining and adjusting database
ViewShowSearchBar . . . . . . . . . . . . . . . . . . . 539 replication settings . . . . . . . . . . . . . . . . 570
ViewShowServerNames . . . . . . . . . . . . . . . . 540 Resetting the replication properties of
a database . . . . . . . . . . . . . . . . . . . . . . 574
ViewShowUnread . . . . . . . . . . . . . . . . . . . . . 540
Saving database replication properties . . . 574
ViewSwitchForm . . . . . . . . . . . . . . . . . . . . . . 540
Accessing a document . . . . . . . . . . . . . . . 575
WindowMaximize . . . . . . . . . . . . . . . . . . . . . 541
Accessing a form . . . . . . . . . . . . . . . . . . . . 575
WindowMaximizeAll . . . . . . . . . . . . . . . . . . 541
Accessing views and folders . . . . . . . . . . . . . 577
WindowMinimize . . . . . . . . . . . . . . . . . . . . . 541
Accessing view or folder properties . . . . . 578
WindowMinimizeAll . . . . . . . . . . . . . . . . . . . 542
Locating a view or folder . . . . . . . . . . . . . 580
WindowWorkspace . . . . . . . . . . . . . . . . . . . . 542
Accessing view or folder columns . . . . . . 581
WorkspaceProperties . . . . . . . . . . . . . . . . . . . 542
Refreshing a view or folder . . . . . . . . . . . . 584
WorkspaceStackReplicaIcons . . . . . . . . . . . . 543
Removing a view or folder . . . . . . . . . . . . 585
ZoomPreview . . . . . . . . . . . . . . . . . . . . . . . . 543
Retrieving multiple entries from a view . . . 585
Volume II Retrieving an entry from a view . . . . . . . . 585
7 LotusScript Classes Coding Creating view navigators . . . . . . . . . . . . . 586
Guidelines . . . . . . . . . . . . . . . . . . 545 Accessing view entry properties . . . . . . . . 587
Using the Domino classes . . . . . . . . . . . . . . . 545 Getting the position of a view entry . . . . . 590
Using LotusScript features in Domino . . . . . . 547 Accessing a view entry collection . . . . . . . 590
Using %Include and %If . . . . . . . . . . . . . . 548 Adding an entry to a view
Closing a file . . . . . . . . . . . . . . . . . . . . . . . 548 entry collection . . . . . . . . . . . . . . . . . . . 591
Using OLE . . . . . . . . . . . . . . . . . . . . . . . . 549

xiii
Deleting an entry from a view Accessing rich-text paragraph
entry collection . . . . . . . . . . . . . . . . . . . 591 style properties . . . . . . . . . . . . . . . . . . 643
Searching for entries in a view Working with tabs . . . . . . . . . . . . . . . . . . 645
entry collection . . . . . . . . . . . . . . . . . . . 591 Accessing sessions . . . . . . . . . . . . . . . . . . . . . 646
Retrieving entries from a view Accessing session properties . . . . . . . . . . . 646
entry collection . . . . . . . . . . . . . . . . . . . 592
Using environment variables . . . . . . . . . . 649
Removing documents from a view
entry collection . . . . . . . . . . . . . . . . . . . 593 Accessing agents . . . . . . . . . . . . . . . . . . . . 650

Accessing NotesViewNavigator Accessing international settings . . . . . . . . 653


properties . . . . . . . . . . . . . . . . . . . . . . . 594 Accessing supporting Domino objects . . . . . . 654
Accessing entries in a view navigator . . . . 595 Converting between Domino Designer
Accessing documents in a and LotusScript time . . . . . . . . . . . . . . 655
view navigator . . . . . . . . . . . . . . . . . . . 596 Making a Domino log . . . . . . . . . . . . . . . . 656
Accessing an entry by position . . . . . . . . . 598 Making a Domino newsletter . . . . . . . . . . 658
Accessing documents . . . . . . . . . . . . . . . . . . 599 Setting up a timer . . . . . . . . . . . . . . . . . . . 659
Accessing document properties . . . . . . . . 599 Representing a name . . . . . . . . . . . . . . . . 659
Accessing the current document . . . . . . . . 603 Accessing external databases
Collecting all documents and all through LS:DO . . . . . . . . . . . . . . . . . . . 661
unprocessed documents . . . . . . . . . . . . 610 Setting up LS:DO . . . . . . . . . . . . . . . . . . . . . . 662
Collecting documents by searching . . . . . 612 LS:DO requirements . . . . . . . . . . . . . . . . . 663
Adding a document . . . . . . . . . . . . . . . . . 614 Setting up LS:DO with ODBC . . . . . . . . . . 664
Locating a document by ID . . . . . . . . . . . . 614 Creating your script . . . . . . . . . . . . . . . . . 666
Accessing a NotesDocument object Using LS:DO . . . . . . . . . . . . . . . . . . . . . . . . . 667
through a view . . . . . . . . . . . . . . . . . . . 615 Connecting to an external database . . . . . 667
Locating documents within a view Retrieving data from an
or folder . . . . . . . . . . . . . . . . . . . . . . . . 615 external database . . . . . . . . . . . . . . . . . 672
Creating a document . . . . . . . . . . . . . . . . 621 Working with data retrieved from an
Deleting a document . . . . . . . . . . . . . . . . . 621 external database . . . . . . . . . . . . . . . . . 676
Removing a document . . . . . . . . . . . . . . . 622 Tips and techniques . . . . . . . . . . . . . . . . . . . . 690
Copying a document . . . . . . . . . . . . . . . . 622 Handling an ODBC event . . . . . . . . . . . . . 690
Mailing a document . . . . . . . . . . . . . . . . . 623 Handling an ODBC error . . . . . . . . . . . . . 693
Accessing items . . . . . . . . . . . . . . . . . . . . . . . 624 Transaction processing . . . . . . . . . . . . . . . 695
Accessing item properties . . . . . . . . . . . . . 625 Caching data . . . . . . . . . . . . . . . . . . . . . . . 697
Creating an item and assigning values . . . 630 Multi-threading agents . . . . . . . . . . . . . . . 697
Copying an item . . . . . . . . . . . . . . . . . . . . 633 Handling run-time errors . . . . . . . . . . . . . . . 698
Removing an item . . . . . . . . . . . . . . . . . . . 634 Using OLE custom controls . . . . . . . . . . . . . . 715
Working with a rich text item . . . . . . . . . . 635 Using Domino Designer classes in
Working with an embedded object . . . . . . 639 Visual Basic . . . . . . . . . . . . . . . . . . . . . 719

Accessing rich-text style properties . . . . . 641

xiv Domino Designer Programming Guide


8 LotusScript Classes A-Z . . . . . 721 EnableRole method . . . . . . . . . . . . . . . . . . . . 762
Properties and methods with IsRoleEnabled method . . . . . . . . . . . . . . . . . . 763
ECL security . . . . . . . . . . . . . . . . . . . . . 721 Remove method . . . . . . . . . . . . . . . . . . . . . . 764
NotesACL class . . . . . . . . . . . . . . . . . . . . . . . 728 NotesAgent class . . . . . . . . . . . . . . . . . . . . . 765
InternetLevel property . . . . . . . . . . . . . . . . . . 729 Comment property . . . . . . . . . . . . . . . . . . . . 766
Parent property . . . . . . . . . . . . . . . . . . . . . . . 730 CommonOwner property . . . . . . . . . . . . . . . 767
Roles property . . . . . . . . . . . . . . . . . . . . . . . . 731 IsEnabled property . . . . . . . . . . . . . . . . . . . . 768
UniformAccess property . . . . . . . . . . . . . . . . 732 IsNotesAgent property . . . . . . . . . . . . . . . . . 769
AddRole method . . . . . . . . . . . . . . . . . . . . . . 733 IsPublic property . . . . . . . . . . . . . . . . . . . . . . 770
CreateACLEntry method . . . . . . . . . . . . . . . . 734 IsWebAgent property . . . . . . . . . . . . . . . . . . 771
DeleteRole method . . . . . . . . . . . . . . . . . . . . 735 LastRun property . . . . . . . . . . . . . . . . . . . . . 772
GetEntry method . . . . . . . . . . . . . . . . . . . . . . 736 Name property . . . . . . . . . . . . . . . . . . . . . . . 773
GetFirstEntry method . . . . . . . . . . . . . . . . . . 737 Owner property . . . . . . . . . . . . . . . . . . . . . . . 773
GetNextEntry method . . . . . . . . . . . . . . . . . . 738 Parent property . . . . . . . . . . . . . . . . . . . . . . . 775
RenameRole method . . . . . . . . . . . . . . . . . . . 738 Query property . . . . . . . . . . . . . . . . . . . . . . . 775
Save method . . . . . . . . . . . . . . . . . . . . . . . . . 739 ServerName property . . . . . . . . . . . . . . . . . . 777
NotesACLEntry class . . . . . . . . . . . . . . . . . . 740 Target property . . . . . . . . . . . . . . . . . . . . . . . 778
CanCreateDocuments property . . . . . . . . . . . 743 Trigger property . . . . . . . . . . . . . . . . . . . . . . 779
CanCreateLSOrJavaAgent property . . . . . . . 744 Remove method . . . . . . . . . . . . . . . . . . . . . . 780
CanCreatePersonalAgent property . . . . . . . . 745 Run method . . . . . . . . . . . . . . . . . . . . . . . . . . 782
CanCreatePersonalFolder property . . . . . . . . 746 RunOnServer method . . . . . . . . . . . . . . . . . . 783
CanCreateSharedFolder property . . . . . . . . . 747 Save method . . . . . . . . . . . . . . . . . . . . . . . . . 784
CanDeleteDocuments property . . . . . . . . . . . 748 Button class . . . . . . . . . . . . . . . . . . . . . . . . . . 784
IsAdminReaderAuthor property . . . . . . . . . . 749 Click event . . . . . . . . . . . . . . . . . . . . . . . . . . . 784
IsAdminServer property . . . . . . . . . . . . . . . . 750 ObjectExecute event . . . . . . . . . . . . . . . . . . . . 785
IsGroup property . . . . . . . . . . . . . . . . . . . . . . 751 NotesDatabase class . . . . . . . . . . . . . . . . . . . 785
IsPerson property . . . . . . . . . . . . . . . . . . . . . 752 ACL property . . . . . . . . . . . . . . . . . . . . . . . . 793
IsPublicReader property . . . . . . . . . . . . . . . . 753 Agents property . . . . . . . . . . . . . . . . . . . . . . 793
IsPublicWriter property . . . . . . . . . . . . . . . . . 754 AllDocuments property . . . . . . . . . . . . . . . . . 794
IsServer property . . . . . . . . . . . . . . . . . . . . . . 755 Categories property . . . . . . . . . . . . . . . . . . . . 796
Level property . . . . . . . . . . . . . . . . . . . . . . . . 756 Created property . . . . . . . . . . . . . . . . . . . . . . 796
Name property . . . . . . . . . . . . . . . . . . . . . . . 757 CurrentAccessLevel property . . . . . . . . . . . . 797
Parent property . . . . . . . . . . . . . . . . . . . . . . . 759 DelayUpdates property . . . . . . . . . . . . . . . . . 799
Roles property . . . . . . . . . . . . . . . . . . . . . . . . 760 DesignTemplateName property . . . . . . . . . . 799
UserType property . . . . . . . . . . . . . . . . . . . . 761 FileName property . . . . . . . . . . . . . . . . . . . . 801
DisableRole method . . . . . . . . . . . . . . . . . . . 761 FilePath property . . . . . . . . . . . . . . . . . . . . . . 801

xv
FolderReferencesEnabled property . . . . . . . . 802 GetDocumentByURL method . . . . . . . . . . . . 842
Forms property . . . . . . . . . . . . . . . . . . . . . . . 804 GetForm method . . . . . . . . . . . . . . . . . . . . . . 844
IsDirectoryCatalog property . . . . . . . . . . . . . 804 GetOutline method . . . . . . . . . . . . . . . . . . . . 845
IsFTIndexed property . . . . . . . . . . . . . . . . . . 805 GetProfileDocument method . . . . . . . . . . . . . 845
IsMultiDbSearch property . . . . . . . . . . . . . . . 807 GetProfileDocCollection method . . . . . . . . . . 847
IsOpen property . . . . . . . . . . . . . . . . . . . . . . 807 GetURLHeaderInfo method . . . . . . . . . . . . . 847
IsPrivateAddressBook property . . . . . . . . . . 808 GetView method . . . . . . . . . . . . . . . . . . . . . . 849
IsPublicAddressBook property . . . . . . . . . . . 809 GrantAccess method . . . . . . . . . . . . . . . . . . . 850
LastFTIndexed property . . . . . . . . . . . . . . . . 810 Open method . . . . . . . . . . . . . . . . . . . . . . . . . 852
LastModified property . . . . . . . . . . . . . . . . . 810 OpenByReplicaID method . . . . . . . . . . . . . . . 854
Managers property . . . . . . . . . . . . . . . . . . . . 811 OpenIfModified method . . . . . . . . . . . . . . . . 854
MaxSize property . . . . . . . . . . . . . . . . . . . . . 813 OpenMail method . . . . . . . . . . . . . . . . . . . . . 855
Parent property . . . . . . . . . . . . . . . . . . . . . . . 813 OpenURLDb method . . . . . . . . . . . . . . . . . . . 856
PercentUsed property . . . . . . . . . . . . . . . . . . 814 OpenWithFailover method . . . . . . . . . . . . . . 857
ReplicaID property . . . . . . . . . . . . . . . . . . . . 815 QueryAccess method . . . . . . . . . . . . . . . . . . . 858
ReplicationInfo property . . . . . . . . . . . . . . . . 815 Remove method . . . . . . . . . . . . . . . . . . . . . . 860
Server property . . . . . . . . . . . . . . . . . . . . . . . 816 Replicate method . . . . . . . . . . . . . . . . . . . . . . 861
Size property . . . . . . . . . . . . . . . . . . . . . . . . . 817 RevokeAccess method . . . . . . . . . . . . . . . . . . 861
SizeQuota property . . . . . . . . . . . . . . . . . . . . 817 Search method . . . . . . . . . . . . . . . . . . . . . . . . 862
TemplateName property . . . . . . . . . . . . . . . . 818 UnprocessedFTSearch method . . . . . . . . . . . 864
Title property . . . . . . . . . . . . . . . . . . . . . . . . . 819 UnprocessedSearch method . . . . . . . . . . . . . 869
UnprocessedDocuments property . . . . . . . . . 820 UpdateFTIndex method . . . . . . . . . . . . . . . . 874
Views property . . . . . . . . . . . . . . . . . . . . . . . 824 NotesDateRange class . . . . . . . . . . . . . . . . . 876
Compact method . . . . . . . . . . . . . . . . . . . . . . 825 EndDateTime property . . . . . . . . . . . . . . . . . 877
Create method . . . . . . . . . . . . . . . . . . . . . . . . 826 StartDateTime property . . . . . . . . . . . . . . . . . 878
CreateCopy method . . . . . . . . . . . . . . . . . . . 827 Text property . . . . . . . . . . . . . . . . . . . . . . . . . 878
CreateDocument method . . . . . . . . . . . . . . . . 829 NotesDateTime class . . . . . . . . . . . . . . . . . . 879
CreateFromTemplate method . . . . . . . . . . . . 830 DateOnly property . . . . . . . . . . . . . . . . . . . . 883
CreateOutline method . . . . . . . . . . . . . . . . . . 831 GMTTime property . . . . . . . . . . . . . . . . . . . . 884
CreateReplica method . . . . . . . . . . . . . . . . . . 832 IsDST property . . . . . . . . . . . . . . . . . . . . . . . 885
EnableFolder method . . . . . . . . . . . . . . . . . . 833 IsValidDate property . . . . . . . . . . . . . . . . . . . 886
FTDomainSearch method . . . . . . . . . . . . . . . 834 LocalTime property . . . . . . . . . . . . . . . . . . . . 887
FTSearch method . . . . . . . . . . . . . . . . . . . . . . 835 LSGMTTime property . . . . . . . . . . . . . . . . . . 887
GetAgent method . . . . . . . . . . . . . . . . . . . . . 838 LSLocalTime property . . . . . . . . . . . . . . . . . . 888
GetDocumentByID method . . . . . . . . . . . . . . 839 TimeOnly property . . . . . . . . . . . . . . . . . . . . 889
GetDocumentByUNID method . . . . . . . . . . . 841 TimeZone property . . . . . . . . . . . . . . . . . . . . 889

xvi Domino Designer Programming Guide


ZoneTime property . . . . . . . . . . . . . . . . . . . . 890 LastAccessed property . . . . . . . . . . . . . . . . . 928
AdjustDay method . . . . . . . . . . . . . . . . . . . . 891 LastModified property . . . . . . . . . . . . . . . . . 929
AdjustHour method . . . . . . . . . . . . . . . . . . . 892 NameOfProfile property . . . . . . . . . . . . . . . . 930
AdjustMinute method . . . . . . . . . . . . . . . . . . 893 NoteID property . . . . . . . . . . . . . . . . . . . . . . 930
AdjustMonth method . . . . . . . . . . . . . . . . . . 894 ParentDatabase property . . . . . . . . . . . . . . . . 931
AdjustSecond method . . . . . . . . . . . . . . . . . . 895 ParentDocumentUNID property . . . . . . . . . . 932
AdjustYear method . . . . . . . . . . . . . . . . . . . . 896 ParentView property . . . . . . . . . . . . . . . . . . . 933
ConvertToZone method . . . . . . . . . . . . . . . . 897 Responses property . . . . . . . . . . . . . . . . . . . . 933
SetAnyDate method . . . . . . . . . . . . . . . . . . . 898 SaveMessageOnSend property . . . . . . . . . . . 935
SetAnyTime method . . . . . . . . . . . . . . . . . . . 898 SentByAgent property . . . . . . . . . . . . . . . . . . 936
SetNow method . . . . . . . . . . . . . . . . . . . . . . . 898 Signer property . . . . . . . . . . . . . . . . . . . . . . . 937
TimeDifference method . . . . . . . . . . . . . . . . . 899 SignOnSend property . . . . . . . . . . . . . . . . . . 938
TimeDifferenceDouble method . . . . . . . . . . . 900 Size property . . . . . . . . . . . . . . . . . . . . . . . . . 939
NotesDbDirectory class . . . . . . . . . . . . . . . . 901 UniversalID property . . . . . . . . . . . . . . . . . . 939
Name property . . . . . . . . . . . . . . . . . . . . . . . 902 Verifier property . . . . . . . . . . . . . . . . . . . . . . 941
GetFirstDatabase method . . . . . . . . . . . . . . . 902 AppendItemValue method . . . . . . . . . . . . . . 942
GetNextDatabase method . . . . . . . . . . . . . . . 903 ComputeWithForm method . . . . . . . . . . . . . 944
NotesDocument class . . . . . . . . . . . . . . . . . . 904 CopyAllItems method . . . . . . . . . . . . . . . . . . 946
Authors property . . . . . . . . . . . . . . . . . . . . . . 909 CopyItem method . . . . . . . . . . . . . . . . . . . . . 947
ColumnValues property . . . . . . . . . . . . . . . . 911 CopyToDatabase method . . . . . . . . . . . . . . . 948
Created property . . . . . . . . . . . . . . . . . . . . . . 912 CreateReplyMessage method . . . . . . . . . . . . 949
EmbeddedObjects property . . . . . . . . . . . . . . 913 CreateRichTextItem method . . . . . . . . . . . . . 950
EncryptionKeys property . . . . . . . . . . . . . . . 915 Encrypt method . . . . . . . . . . . . . . . . . . . . . . . 951
EncryptOnSend property . . . . . . . . . . . . . . . 916 GetAttachment method . . . . . . . . . . . . . . . . . 952
FolderReferences property . . . . . . . . . . . . . . 917 GetFirstItem method . . . . . . . . . . . . . . . . . . . 953
FTSearchScore property . . . . . . . . . . . . . . . . . 919 GetItemValue method . . . . . . . . . . . . . . . . . . 956
HasEmbedded property . . . . . . . . . . . . . . . . 920 HasItem method . . . . . . . . . . . . . . . . . . . . . . 958
IsDeleted property . . . . . . . . . . . . . . . . . . . . . 921 MakeResponse method . . . . . . . . . . . . . . . . . 960
IsNewNote property . . . . . . . . . . . . . . . . . . . 922 PutInFolder method . . . . . . . . . . . . . . . . . . . 961
IsProfile property . . . . . . . . . . . . . . . . . . . . . 923 Remove method . . . . . . . . . . . . . . . . . . . . . . 963
IsResponse property . . . . . . . . . . . . . . . . . . . 924 RemoveFromFolder method . . . . . . . . . . . . . 964
IsSigned property . . . . . . . . . . . . . . . . . . . . . 924 RemoveItem method . . . . . . . . . . . . . . . . . . . 965
IsUIDocOpen property . . . . . . . . . . . . . . . . . 925 RenderToRTItem method . . . . . . . . . . . . . . . 966
IsValid property . . . . . . . . . . . . . . . . . . . . . . 926 ReplaceItemValue method . . . . . . . . . . . . . . . 967
Items property . . . . . . . . . . . . . . . . . . . . . . . . 927 Save method . . . . . . . . . . . . . . . . . . . . . . . . . 969
Key property . . . . . . . . . . . . . . . . . . . . . . . . . 928 Send method . . . . . . . . . . . . . . . . . . . . . . . . . 972

xvii
Sign method . . . . . . . . . . . . . . . . . . . . . . . . . 974 Field class . . . . . . . . . . . . . . . . . . . . . . . . . . 1007
NotesDocumentCollection class . . . . . . . . . 974 Entering event . . . . . . . . . . . . . . . . . . . . . . . 1007
Count property . . . . . . . . . . . . . . . . . . . . . . . 977 Exiting event . . . . . . . . . . . . . . . . . . . . . . . . 1007
IsSorted property . . . . . . . . . . . . . . . . . . . . . . 977 NotesForm class . . . . . . . . . . . . . . . . . . . . . 1008
Parent property . . . . . . . . . . . . . . . . . . . . . . . 978 Aliases property . . . . . . . . . . . . . . . . . . . . . 1009
Query property . . . . . . . . . . . . . . . . . . . . . . . 979 Fields property . . . . . . . . . . . . . . . . . . . . . . 1010
AddDocument method . . . . . . . . . . . . . . . . . 980 FormUsers property . . . . . . . . . . . . . . . . . . 1011
DeleteDocument method . . . . . . . . . . . . . . . . 980 IsSubForm property . . . . . . . . . . . . . . . . . . . 1012
FTSearch method . . . . . . . . . . . . . . . . . . . . . . 981 Name property . . . . . . . . . . . . . . . . . . . . . . 1013
GetDocument method . . . . . . . . . . . . . . . . . . 982 ProtectReaders property . . . . . . . . . . . . . . . 1014
GetFirstDocument method . . . . . . . . . . . . . . 983 ProtectUsers property . . . . . . . . . . . . . . . . . 1015
GetLastDocument method . . . . . . . . . . . . . . . 984 Readers property . . . . . . . . . . . . . . . . . . . . . 1016
GetNextDocument method . . . . . . . . . . . . . . 984 Remove method . . . . . . . . . . . . . . . . . . . . . 1017
GetNthDocument method . . . . . . . . . . . . . . . 985 NotesInternational class . . . . . . . . . . . . . . . 1018
GetPrevDocument method . . . . . . . . . . . . . . 987 AMString property . . . . . . . . . . . . . . . . . . . 1019
PutAllInFolder method . . . . . . . . . . . . . . . . . 988 CurrencyDigits property . . . . . . . . . . . . . . . 1020
RemoveAll method . . . . . . . . . . . . . . . . . . . . 989 CurrencySymbol property . . . . . . . . . . . . . . 1020
RemoveAllFromFolder method . . . . . . . . . . . 989 DateSep property . . . . . . . . . . . . . . . . . . . . . 1021
StampAll method . . . . . . . . . . . . . . . . . . . . . 990 DecimalSep property . . . . . . . . . . . . . . . . . . 1022
UpdateAll method . . . . . . . . . . . . . . . . . . . . . 991 IsCurrencySpace property . . . . . . . . . . . . . . 1023
NotesEmbeddedObject class . . . . . . . . . . . . 992 IsCurrencySuffix property . . . . . . . . . . . . . . 1023
Class property . . . . . . . . . . . . . . . . . . . . . . . . 994 IsCurrencyZero property . . . . . . . . . . . . . . . 1024
FileSize property . . . . . . . . . . . . . . . . . . . . . . 995 IsDateDMY property . . . . . . . . . . . . . . . . . . 1024
FitBelowFields property . . . . . . . . . . . . . . . . 996 IsDateMDY property . . . . . . . . . . . . . . . . . . 1025
FitToWindow property . . . . . . . . . . . . . . . . . 997 IsDateYMD property . . . . . . . . . . . . . . . . . . 1025
Name property . . . . . . . . . . . . . . . . . . . . . . . 998 IsDST property . . . . . . . . . . . . . . . . . . . . . . 1025
Object property . . . . . . . . . . . . . . . . . . . . . . . 999 IsTime24Hour property . . . . . . . . . . . . . . . . 1026
Parent property . . . . . . . . . . . . . . . . . . . . . . . 999 PMString property . . . . . . . . . . . . . . . . . . . . 1026
RunReadOnly property . . . . . . . . . . . . . . . . 1000 ThousandsSep property . . . . . . . . . . . . . . . 1027
Source property . . . . . . . . . . . . . . . . . . . . . . 1000 TimeSep property . . . . . . . . . . . . . . . . . . . . 1027
Type property . . . . . . . . . . . . . . . . . . . . . . . 1001 TimeZone property . . . . . . . . . . . . . . . . . . . 1027
Verbs property . . . . . . . . . . . . . . . . . . . . . . 1002 Today property . . . . . . . . . . . . . . . . . . . . . . 1028
Activate method . . . . . . . . . . . . . . . . . . . . . 1003 Tomorrow property . . . . . . . . . . . . . . . . . . . 1028
DoVerb method . . . . . . . . . . . . . . . . . . . . . . 1005 Yesterday property . . . . . . . . . . . . . . . . . . . 1028
ExtractFile method . . . . . . . . . . . . . . . . . . . 1005 NotesItem class . . . . . . . . . . . . . . . . . . . . . . 1029
Remove method . . . . . . . . . . . . . . . . . . . . . 1006 DateTimeValue property . . . . . . . . . . . . . . . 1033

xviii Domino Designer Programming Guide


IsAuthors property . . . . . . . . . . . . . . . . . . . 1034 Abbreviated property . . . . . . . . . . . . . . . . . 1075
IsEncrypted property . . . . . . . . . . . . . . . . . . 1035 Addr821 property . . . . . . . . . . . . . . . . . . . . 1076
IsNames property . . . . . . . . . . . . . . . . . . . . 1036 Addr822Comment1 property . . . . . . . . . . . 1076
IsProtected property . . . . . . . . . . . . . . . . . . 1037 Addr822Comment2 property . . . . . . . . . . . 1076
IsReaders property . . . . . . . . . . . . . . . . . . . 1037 Addr822Comment3 property . . . . . . . . . . . 1077
IsSigned property . . . . . . . . . . . . . . . . . . . . 1038 Addr822LocalPart property . . . . . . . . . . . . . 1077
IsSummary property . . . . . . . . . . . . . . . . . . 1039 Addr822Phrase property . . . . . . . . . . . . . . . 1077
LastModified property . . . . . . . . . . . . . . . . 1040 ADMD property . . . . . . . . . . . . . . . . . . . . . 1078
Name property . . . . . . . . . . . . . . . . . . . . . . 1040 Canonical property . . . . . . . . . . . . . . . . . . . 1078
Parent property . . . . . . . . . . . . . . . . . . . . . . 1041 Common property . . . . . . . . . . . . . . . . . . . . 1078
SaveToDisk property . . . . . . . . . . . . . . . . . . 1041 Country property . . . . . . . . . . . . . . . . . . . . 1079
Text property . . . . . . . . . . . . . . . . . . . . . . . . 1042 Generation property . . . . . . . . . . . . . . . . . . 1079
Type property . . . . . . . . . . . . . . . . . . . . . . . 1044 Given property . . . . . . . . . . . . . . . . . . . . . . 1079
ValueLength property . . . . . . . . . . . . . . . . . 1046 Initials property . . . . . . . . . . . . . . . . . . . . . . 1080
Values property . . . . . . . . . . . . . . . . . . . . . . 1046 IsHierarchical property . . . . . . . . . . . . . . . . 1080
Abstract method . . . . . . . . . . . . . . . . . . . . . 1048 Keyword property . . . . . . . . . . . . . . . . . . . . 1080
AppendToTextList method . . . . . . . . . . . . . 1048 Language property . . . . . . . . . . . . . . . . . . . 1081
Contains method . . . . . . . . . . . . . . . . . . . . . 1050 Organization property . . . . . . . . . . . . . . . . . 1085
CopyItemToDocument method . . . . . . . . . . 1051 OrgUnit1 property . . . . . . . . . . . . . . . . . . . . 1085
Remove method . . . . . . . . . . . . . . . . . . . . . 1052 OrgUnit2 property . . . . . . . . . . . . . . . . . . . . 1085
NotesLog class . . . . . . . . . . . . . . . . . . . . . . 1052 OrgUnit3 property . . . . . . . . . . . . . . . . . . . . 1086
LogActions property . . . . . . . . . . . . . . . . . . 1055 OrgUnit4 property . . . . . . . . . . . . . . . . . . . . 1086
LogErrors property . . . . . . . . . . . . . . . . . . . 1056 PRMD property . . . . . . . . . . . . . . . . . . . . . . 1086
NumActions property . . . . . . . . . . . . . . . . . 1057 Surname property . . . . . . . . . . . . . . . . . . . . 1087
NumErrors property . . . . . . . . . . . . . . . . . . 1058 Navigator class . . . . . . . . . . . . . . . . . . . . . . 1087
OverwriteFile property . . . . . . . . . . . . . . . . 1059 Click event . . . . . . . . . . . . . . . . . . . . . . . . . . 1087
ProgramName property . . . . . . . . . . . . . . . 1060 NotesNewsletter class . . . . . . . . . . . . . . . . . 1088
Close method . . . . . . . . . . . . . . . . . . . . . . . . 1061 DoScore property . . . . . . . . . . . . . . . . . . . . 1090
LogAction method . . . . . . . . . . . . . . . . . . . . 1061 DoSubject property . . . . . . . . . . . . . . . . . . . 1091
LogError method . . . . . . . . . . . . . . . . . . . . . 1063 SubjectItemName property . . . . . . . . . . . . . 1091
LogEvent method . . . . . . . . . . . . . . . . . . . . 1067 FormatDocument method . . . . . . . . . . . . . . 1092
OpenAgentLog method . . . . . . . . . . . . . . . . 1068 FormatMsgWithDoclinks method . . . . . . . . 1094
OpenFileLog method . . . . . . . . . . . . . . . . . . 1068 ODBCConnection class . . . . . . . . . . . . . . . 1097
OpenMailLog method . . . . . . . . . . . . . . . . . 1069 AutoCommit property . . . . . . . . . . . . . . . . . 1098
OpenNotesLog method . . . . . . . . . . . . . . . . 1071 CommitOnDisconnect property . . . . . . . . . 1099
NotesName class . . . . . . . . . . . . . . . . . . . . . 1073 DataSourceName property . . . . . . . . . . . . . 1100

xix
GetLSDOMasterRevision property . . . . . . . 1101 FieldID method . . . . . . . . . . . . . . . . . . . . . . 1153
SilentMode property . . . . . . . . . . . . . . . . . . 1101 FieldInfo method . . . . . . . . . . . . . . . . . . . . . 1154
CommitTransactions method . . . . . . . . . . . 1102 FieldName method . . . . . . . . . . . . . . . . . . . 1158
ConnectTo method . . . . . . . . . . . . . . . . . . . 1103 FieldNativeDataType method . . . . . . . . . . . 1159
Disconnect method . . . . . . . . . . . . . . . . . . . 1105 FieldSize method . . . . . . . . . . . . . . . . . . . . . 1161
GetError method . . . . . . . . . . . . . . . . . . . . . 1106 FirstRow method . . . . . . . . . . . . . . . . . . . . . 1162
GetErrorMessage method . . . . . . . . . . . . . . 1106 GetError method . . . . . . . . . . . . . . . . . . . . . 1164
GetExtendedErrorMessage method . . . . . . . 1106 GetErrorMessage method . . . . . . . . . . . . . . 1164
IsConnected method . . . . . . . . . . . . . . . . . . 1106 GetExtendedErrorMessage method . . . . . . . 1164
IsSupported method . . . . . . . . . . . . . . . . . . 1107 GetParameter method . . . . . . . . . . . . . . . . . 1164
ListDataSources method . . . . . . . . . . . . . . . 1109 GetParameterName method . . . . . . . . . . . . 1166
ListFields method . . . . . . . . . . . . . . . . . . . . 1110 GetRowStatus method . . . . . . . . . . . . . . . . . 1167
ListProcedures method . . . . . . . . . . . . . . . . 1111 GetValue method . . . . . . . . . . . . . . . . . . . . . 1169
ListTables method . . . . . . . . . . . . . . . . . . . . 1112 HasRowChanged method . . . . . . . . . . . . . . 1171
RollbackTransactions method . . . . . . . . . . . 1113 IsBeginOfData method . . . . . . . . . . . . . . . . 1173
ODBCQuery class . . . . . . . . . . . . . . . . . . . . 1114 IsEndOfData method . . . . . . . . . . . . . . . . . . 1175
Connection property . . . . . . . . . . . . . . . . . . 1115 IsResultSetAvailable method . . . . . . . . . . . . 1176
QueryExecuteTimeOut property . . . . . . . . . 1117 IsValueAltered method . . . . . . . . . . . . . . . . 1177
SQL property . . . . . . . . . . . . . . . . . . . . . . . . 1118 IsValueNull method . . . . . . . . . . . . . . . . . . 1179
UseRowID property . . . . . . . . . . . . . . . . . . 1120 LastRow method . . . . . . . . . . . . . . . . . . . . . 1180
GetError method . . . . . . . . . . . . . . . . . . . . . 1121 LocateRow method . . . . . . . . . . . . . . . . . . . 1181
GetErrorMessage method . . . . . . . . . . . . . . 1121 NextRow method . . . . . . . . . . . . . . . . . . . . 1183
GetExtendedErrorMessage method . . . . . . . 1127 NumColumns method . . . . . . . . . . . . . . . . . 1185
ODBCResultSet class . . . . . . . . . . . . . . . . . 1128 NumParameters method . . . . . . . . . . . . . . . 1186
CacheLimit property . . . . . . . . . . . . . . . . . . 1131 NumRows method . . . . . . . . . . . . . . . . . . . 1187
CurrentRow property . . . . . . . . . . . . . . . . . 1133 PrevRow method . . . . . . . . . . . . . . . . . . . . . 1189
FetchBatchSize property . . . . . . . . . . . . . . . 1135 SetParameter method . . . . . . . . . . . . . . . . . 1190
MaxRows property . . . . . . . . . . . . . . . . . . . 1137 SetValue method . . . . . . . . . . . . . . . . . . . . . 1192
Query property . . . . . . . . . . . . . . . . . . . . . . 1138 UpdateRow method . . . . . . . . . . . . . . . . . . 1194
ReadOnly property . . . . . . . . . . . . . . . . . . . 1139 NotesOutline class . . . . . . . . . . . . . . . . . . . 1196
AddRow method . . . . . . . . . . . . . . . . . . . . . 1140 Alias property . . . . . . . . . . . . . . . . . . . . . . . 1197
Close method . . . . . . . . . . . . . . . . . . . . . . . . 1143 Comment property . . . . . . . . . . . . . . . . . . . 1198
DeleteRow method . . . . . . . . . . . . . . . . . . . 1145 Name property . . . . . . . . . . . . . . . . . . . . . . 1199
ExecProcedure Method . . . . . . . . . . . . . . . . 1147 AddEntry method . . . . . . . . . . . . . . . . . . . . 1199
Execute method . . . . . . . . . . . . . . . . . . . . . . 1147 CreateEntry method . . . . . . . . . . . . . . . . . . 1200
FieldExpectedDataType method . . . . . . . . . 1149 GetFirst method . . . . . . . . . . . . . . . . . . . . . . 1200

xx Domino Designer Programming Guide


GetLast method . . . . . . . . . . . . . . . . . . . . . . 1201 IsNorthAmerican property . . . . . . . . . . . . . 1227
GetNext method . . . . . . . . . . . . . . . . . . . . . 1202 MinPasswordLength property . . . . . . . . . . 1227
GetNextSibling method . . . . . . . . . . . . . . . . 1202 OrgUnit property . . . . . . . . . . . . . . . . . . . . 1228
GetParent method . . . . . . . . . . . . . . . . . . . . 1203 RegistrationLog property . . . . . . . . . . . . . . 1228
GetPrev method . . . . . . . . . . . . . . . . . . . . . . 1204 RegistrationServer property . . . . . . . . . . . . 1228
GetPrevSibling method . . . . . . . . . . . . . . . . 1205 StoreIDInAddressbook property . . . . . . . . . 1229
MoveEntry method . . . . . . . . . . . . . . . . . . . 1205 AddCertifierToAddressbook method . . . . . 1230
RemoveEntry method . . . . . . . . . . . . . . . . . 1206 AddServerToAddressbook method . . . . . . . 1230
Save method . . . . . . . . . . . . . . . . . . . . . . . . 1207 AddUserProfile method . . . . . . . . . . . . . . . 1232
NotesOutlineEntry class . . . . . . . . . . . . . . . 1207 AddUserToAddressbook method . . . . . . . . 1232
Alias property . . . . . . . . . . . . . . . . . . . . . . . 1208 CrossCertify method . . . . . . . . . . . . . . . . . . 1234
Database property . . . . . . . . . . . . . . . . . . . . 1209 DeleteIDOnServer method . . . . . . . . . . . . . 1235
Document property . . . . . . . . . . . . . . . . . . . 1209 GetIDFromServer method . . . . . . . . . . . . . . 1236
EntryClass property . . . . . . . . . . . . . . . . . . 1210 GetUserInfo method . . . . . . . . . . . . . . . . . . 1237
Formula property . . . . . . . . . . . . . . . . . . . . 1210 ReCertify method . . . . . . . . . . . . . . . . . . . . 1238
FrameText property . . . . . . . . . . . . . . . . . . . 1211 RegisterNewCertifier method . . . . . . . . . . . 1239
HasChildren property . . . . . . . . . . . . . . . . . 1212 RegisterNewServer method . . . . . . . . . . . . . 1240
ImagesText property . . . . . . . . . . . . . . . . . . 1212 RegisterNewUser method . . . . . . . . . . . . . . 1241
IsHidden property . . . . . . . . . . . . . . . . . . . . 1213 SwitchToID method . . . . . . . . . . . . . . . . . . . 1243
IsInThisDB property . . . . . . . . . . . . . . . . . . 1214 NotesReplication class . . . . . . . . . . . . . . . . 1244
IsPrivate property . . . . . . . . . . . . . . . . . . . . 1215 Abstract property . . . . . . . . . . . . . . . . . . . . 1246
Label property . . . . . . . . . . . . . . . . . . . . . . . 1215 CutoffDate property . . . . . . . . . . . . . . . . . . 1247
Level property . . . . . . . . . . . . . . . . . . . . . . . 1216 CutoffDelete property . . . . . . . . . . . . . . . . . 1248
NamedElement property . . . . . . . . . . . . . . . 1217 CutoffInterval property . . . . . . . . . . . . . . . . 1248
Type property . . . . . . . . . . . . . . . . . . . . . . . 1217 Disabled property . . . . . . . . . . . . . . . . . . . . 1249
URL property . . . . . . . . . . . . . . . . . . . . . . . 1218 DoNotBrowse property . . . . . . . . . . . . . . . . 1250
View property . . . . . . . . . . . . . . . . . . . . . . . 1219 DoNotCatalog property . . . . . . . . . . . . . . . . 1251
SetAction method . . . . . . . . . . . . . . . . . . . . 1219 HideDesign property . . . . . . . . . . . . . . . . . . 1251
SetNamedElement method . . . . . . . . . . . . . 1220 IgnoreDeletes property . . . . . . . . . . . . . . . . 1252
SetNoteLink method . . . . . . . . . . . . . . . . . . 1220 IgnoreDestDeletes property . . . . . . . . . . . . . 1253
SetURL method . . . . . . . . . . . . . . . . . . . . . . 1221 MultiDbIndex property . . . . . . . . . . . . . . . . 1254
NotesRegistration class . . . . . . . . . . . . . . . 1222 NeverReplicate property . . . . . . . . . . . . . . . 1254
CertifierIDFile property . . . . . . . . . . . . . . . . 1225 NoChronos property . . . . . . . . . . . . . . . . . . 1255
CreateMailDb property . . . . . . . . . . . . . . . . 1225 Priority property . . . . . . . . . . . . . . . . . . . . . 1256
Expiration property . . . . . . . . . . . . . . . . . . . 1226 ClearHistory method . . . . . . . . . . . . . . . . . . 1257
IDType property . . . . . . . . . . . . . . . . . . . . . 1226 Reset method . . . . . . . . . . . . . . . . . . . . . . . . 1257

xxi
Save method . . . . . . . . . . . . . . . . . . . . . . . . 1258 Underline property . . . . . . . . . . . . . . . . . . . 1300
NotesRichTextItem class . . . . . . . . . . . . . . 1258 NotesRichTextTab class . . . . . . . . . . . . . . . 1301
EmbeddedObjects property . . . . . . . . . . . . . 1261 Position property . . . . . . . . . . . . . . . . . . . . . 1302
AddNewLine method . . . . . . . . . . . . . . . . . 1262 Type property . . . . . . . . . . . . . . . . . . . . . . . 1303
AddPageBreak method . . . . . . . . . . . . . . . . 1263 Clear method . . . . . . . . . . . . . . . . . . . . . . . . 1303
AddTab method . . . . . . . . . . . . . . . . . . . . . 1264 NotesSession class . . . . . . . . . . . . . . . . . . . 1303
AppendDocLink method . . . . . . . . . . . . . . . 1266 AddressBooks property . . . . . . . . . . . . . . . . 1305
AppendParagraphStyle method . . . . . . . . . 1268 CommonUserName property . . . . . . . . . . . 1307
AppendRTItem method . . . . . . . . . . . . . . . . 1269 CurrentAgent property . . . . . . . . . . . . . . . . 1308
AppendStyle method . . . . . . . . . . . . . . . . . . 1270 CurrentDatabase property . . . . . . . . . . . . . . 1309
AppendText method . . . . . . . . . . . . . . . . . . 1271 DocumentContext property . . . . . . . . . . . . . 1310
EmbedObject method . . . . . . . . . . . . . . . . . 1271 EffectiveUserName property . . . . . . . . . . . . 1313
GetEmbeddedObject method . . . . . . . . . . . . 1274 International property . . . . . . . . . . . . . . . . . 1314
GetFormattedText method . . . . . . . . . . . . . 1276 IsOnServer property . . . . . . . . . . . . . . . . . . 1315
NotesRichTextParagraphStyle class . . . . . 1277 LastExitStatus property . . . . . . . . . . . . . . . . 1316
Alignment property . . . . . . . . . . . . . . . . . . . 1278 LastRun property . . . . . . . . . . . . . . . . . . . . 1316
FirstLineLeftMargin property . . . . . . . . . . . 1279 NotesBuildVersion property . . . . . . . . . . . . 1317
InterLineSpacing property . . . . . . . . . . . . . . 1280 NotesVersion property . . . . . . . . . . . . . . . . 1318
LeftMargin property . . . . . . . . . . . . . . . . . . 1281 Platform property . . . . . . . . . . . . . . . . . . . . 1319
Pagination property . . . . . . . . . . . . . . . . . . . 1282 SavedData property . . . . . . . . . . . . . . . . . . . 1320
RightMargin property . . . . . . . . . . . . . . . . . 1283 UserName property . . . . . . . . . . . . . . . . . . . 1321
SpacingAbove property . . . . . . . . . . . . . . . . 1284 UserNameList property . . . . . . . . . . . . . . . . 1322
SpacingBelow property . . . . . . . . . . . . . . . . 1285 CreateDateRange method . . . . . . . . . . . . . . 1323
Tabs property . . . . . . . . . . . . . . . . . . . . . . . 1286 CreateDateTime method . . . . . . . . . . . . . . . 1323
ClearAllTabs method . . . . . . . . . . . . . . . . . . 1287 CreateLog method . . . . . . . . . . . . . . . . . . . . 1324
SetTab method . . . . . . . . . . . . . . . . . . . . . . . 1287 CreateName method . . . . . . . . . . . . . . . . . . 1325
SetTabs method . . . . . . . . . . . . . . . . . . . . . . 1289 CreateNewsletter method . . . . . . . . . . . . . . 1327
NotesRichTextStyle class . . . . . . . . . . . . . . 1290 CreateRichTextParagraphStyle method . . . . 1328
Bold property . . . . . . . . . . . . . . . . . . . . . . . 1292 CreateRichTextStyle method . . . . . . . . . . . . 1329
Effects property . . . . . . . . . . . . . . . . . . . . . . 1293 CreateTimer method . . . . . . . . . . . . . . . . . . 1329
FontSize property . . . . . . . . . . . . . . . . . . . . 1294 FreeTimeSearch method . . . . . . . . . . . . . . . 1331
Italic property . . . . . . . . . . . . . . . . . . . . . . . 1295 GetDatabase method . . . . . . . . . . . . . . . . . . 1333
NotesColor property . . . . . . . . . . . . . . . . . . 1296 GetDbDirectory method . . . . . . . . . . . . . . . 1334
NotesFont property . . . . . . . . . . . . . . . . . . . 1297 GetEnvironmentString method . . . . . . . . . . 1335
PassThruHTML property . . . . . . . . . . . . . . 1298 GetEnvironmentValue method . . . . . . . . . . 1336
Strikethrough property . . . . . . . . . . . . . . . . 1299 SetEnvironmentVar method . . . . . . . . . . . . 1338

xxii Domino Designer Programming Guide


UpdateProcessedDoc method . . . . . . . . . . . 1339 IsNewDoc property . . . . . . . . . . . . . . . . . . . 1375
NotesTimer class . . . . . . . . . . . . . . . . . . . . 1341 PreviewDocLink property . . . . . . . . . . . . . . 1376
Alarm event . . . . . . . . . . . . . . . . . . . . . . . . . 1344 PreviewParentDoc property . . . . . . . . . . . . 1377
Comment property . . . . . . . . . . . . . . . . . . . 1344 Ruler property . . . . . . . . . . . . . . . . . . . . . . . 1378
Enabled property . . . . . . . . . . . . . . . . . . . . . 1344 WindowTitle property . . . . . . . . . . . . . . . . . 1379
Interval property . . . . . . . . . . . . . . . . . . . . . 1345 Categorize method . . . . . . . . . . . . . . . . . . . 1379
NotesUIDatabase class . . . . . . . . . . . . . . . . 1345 Clear method . . . . . . . . . . . . . . . . . . . . . . . . 1380
PostDocumentDelete event . . . . . . . . . . . . . 1347 Close method . . . . . . . . . . . . . . . . . . . . . . . . 1381
PostDragDrop event . . . . . . . . . . . . . . . . . . 1347 CollapseAllSections method . . . . . . . . . . . . 1382
PostOpen event . . . . . . . . . . . . . . . . . . . . . . 1348 Copy method . . . . . . . . . . . . . . . . . . . . . . . . 1382
QueryClose event . . . . . . . . . . . . . . . . . . . . 1349 CreateObject method . . . . . . . . . . . . . . . . . . 1383
QueryDocumentDelete event . . . . . . . . . . . 1349 Cut method . . . . . . . . . . . . . . . . . . . . . . . . . 1384
QueryDocumentUndelete event . . . . . . . . . 1350 DeleteDocument method . . . . . . . . . . . . . . . 1385
QueryDragDrop event . . . . . . . . . . . . . . . . . 1350 DeselectAll method . . . . . . . . . . . . . . . . . . . 1386
Database property . . . . . . . . . . . . . . . . . . . . 1351 ExpandAllSections method . . . . . . . . . . . . . 1387
Documents property . . . . . . . . . . . . . . . . . . 1352 FieldAppendText method . . . . . . . . . . . . . . 1387
OpenNavigator method . . . . . . . . . . . . . . . . 1352 FieldClear method . . . . . . . . . . . . . . . . . . . . 1389
OpenView method . . . . . . . . . . . . . . . . . . . 1352 FieldContains method . . . . . . . . . . . . . . . . . 1390
NotesUIDocument class . . . . . . . . . . . . . . . 1353 FieldGetText method . . . . . . . . . . . . . . . . . . 1391
PostModeChange event . . . . . . . . . . . . . . . . 1356 FieldSetText method . . . . . . . . . . . . . . . . . . 1392
PostOpen event . . . . . . . . . . . . . . . . . . . . . . 1357 FindFreeTimeDialog method . . . . . . . . . . . . 1393
PostRecalc event . . . . . . . . . . . . . . . . . . . . . 1359 FindFreeTimeDialogEx method . . . . . . . . . 1395
PostSave event . . . . . . . . . . . . . . . . . . . . . . . 1360 FindString method . . . . . . . . . . . . . . . . . . . . 1397
QueryClose event . . . . . . . . . . . . . . . . . . . . 1361 Forward method . . . . . . . . . . . . . . . . . . . . . 1398
QueryModeChange event . . . . . . . . . . . . . . 1362 GetObject method . . . . . . . . . . . . . . . . . . . . 1399
QueryOpen event . . . . . . . . . . . . . . . . . . . . 1363 GetSelectedText method . . . . . . . . . . . . . . . 1400
QuerySave event . . . . . . . . . . . . . . . . . . . . . 1365 GotoBottom method . . . . . . . . . . . . . . . . . . 1401
AutoReload property . . . . . . . . . . . . . . . . . . 1367 GotoField method . . . . . . . . . . . . . . . . . . . . 1401
CurrentField property . . . . . . . . . . . . . . . . . 1368 GotoNextField method . . . . . . . . . . . . . . . . 1402
DialogBoxCanceled property . . . . . . . . . . . 1369 GotoPrevField method . . . . . . . . . . . . . . . . 1402
Document property . . . . . . . . . . . . . . . . . . . 1370 GotoTop method . . . . . . . . . . . . . . . . . . . . . 1402
EditMode property . . . . . . . . . . . . . . . . . . . 1371 Import method . . . . . . . . . . . . . . . . . . . . . . 1403
FieldHelp property . . . . . . . . . . . . . . . . . . . 1372 InsertText method . . . . . . . . . . . . . . . . . . . . 1404
HiddenChars property . . . . . . . . . . . . . . . . 1373 NavBarSetText method . . . . . . . . . . . . . . . . 1404
HorzScrollBar property . . . . . . . . . . . . . . . . 1374 NavBarSpinnerStart method . . . . . . . . . . . . 1405
InPreviewPane property . . . . . . . . . . . . . . . 1374 NavBarSpinnerStop method . . . . . . . . . . . . 1405

xxiii
Paste method . . . . . . . . . . . . . . . . . . . . . . . . 1405 ComposeDocument method . . . . . . . . . . . . 1431
Print method . . . . . . . . . . . . . . . . . . . . . . . . 1406 DialogBox method . . . . . . . . . . . . . . . . . . . . 1433
Refresh method . . . . . . . . . . . . . . . . . . . . . . 1407 EditDocument method . . . . . . . . . . . . . . . . 1437
RefreshHideFormulas method . . . . . . . . . . 1408 EditProfile method . . . . . . . . . . . . . . . . . . . 1438
Reload method . . . . . . . . . . . . . . . . . . . . . . 1409 EnableAlarms method . . . . . . . . . . . . . . . . . 1439
Save method . . . . . . . . . . . . . . . . . . . . . . . . 1410 Folder method . . . . . . . . . . . . . . . . . . . . . . . 1439
SaveNewVersion method . . . . . . . . . . . . . . 1410 GetListOfTunes method . . . . . . . . . . . . . . . 1440
SelectAll method . . . . . . . . . . . . . . . . . . . . . 1411 OpenDatabase method . . . . . . . . . . . . . . . . 1441
Send method . . . . . . . . . . . . . . . . . . . . . . . . 1412 OpenFileDialog method . . . . . . . . . . . . . . . 1442
SpellCheck method . . . . . . . . . . . . . . . . . . . 1413 OpenFrameSet method . . . . . . . . . . . . . . . . 1443
NotesUIView class . . . . . . . . . . . . . . . . . . . 1413 OpenPage method . . . . . . . . . . . . . . . . . . . . 1443
PostDragDrop event . . . . . . . . . . . . . . . . . . 1414 PickListCollection method . . . . . . . . . . . . . . 1444
PostOpen event . . . . . . . . . . . . . . . . . . . . . . 1415 PickListStrings method . . . . . . . . . . . . . . . . 1445
PostPaste event . . . . . . . . . . . . . . . . . . . . . . 1415 PlayTune method . . . . . . . . . . . . . . . . . . . . 1447
QueryAddToFolder event . . . . . . . . . . . . . . 1416 Prompt method . . . . . . . . . . . . . . . . . . . . . . 1447
QueryClose event . . . . . . . . . . . . . . . . . . . . 1417 RefreshParentNote method . . . . . . . . . . . . . 1449
QueryDragDrop event . . . . . . . . . . . . . . . . . 1418 ReloadWindow method . . . . . . . . . . . . . . . 1450
QueryOpen event . . . . . . . . . . . . . . . . . . . . 1418 SaveFileDialog method . . . . . . . . . . . . . . . . 1450
QueryOpenDocument event . . . . . . . . . . . . 1419 SetCurrentLocation method . . . . . . . . . . . . 1451
QueryPaste event . . . . . . . . . . . . . . . . . . . . . 1420 SetTargetFrame method . . . . . . . . . . . . . . . 1452
QueryRecalc event . . . . . . . . . . . . . . . . . . . . 1421 URLOpen method . . . . . . . . . . . . . . . . . . . . 1452
RegionDoubleClick event . . . . . . . . . . . . . . 1422 UseLSX method . . . . . . . . . . . . . . . . . . . . . . 1455
CalendarDateTime property . . . . . . . . . . . . 1422 ViewRefresh method . . . . . . . . . . . . . . . . . . 1455
CaretCategory property . . . . . . . . . . . . . . . . 1423 NotesView class . . . . . . . . . . . . . . . . . . . . . 1457
Documents property . . . . . . . . . . . . . . . . . . 1424 Aliases property . . . . . . . . . . . . . . . . . . . . . 1460
View property . . . . . . . . . . . . . . . . . . . . . . . 1424 AllEntries property . . . . . . . . . . . . . . . . . . . 1461
Viewname property . . . . . . . . . . . . . . . . . . . 1424 AutoUpdate property . . . . . . . . . . . . . . . . . 1461
Print method . . . . . . . . . . . . . . . . . . . . . . . . 1425 BackgroundColor property . . . . . . . . . . . . . 1462
SelectDocument method . . . . . . . . . . . . . . . 1426 ColumnCount property . . . . . . . . . . . . . . . . 1464
NotesUIWorkspace class . . . . . . . . . . . . . . 1426 Columns property . . . . . . . . . . . . . . . . . . . . 1464
CurrentCalendarDateTime property . . . . . . 1428 Created property . . . . . . . . . . . . . . . . . . . . . 1465
CurrentDatabase property . . . . . . . . . . . . . . 1428 HeaderLines property . . . . . . . . . . . . . . . . . 1466
CurrentDocument property . . . . . . . . . . . . . 1429 IsCalendar property . . . . . . . . . . . . . . . . . . 1466
CurrentView property . . . . . . . . . . . . . . . . . 1430 IsCategorized property . . . . . . . . . . . . . . . . 1467
AddDatabase method . . . . . . . . . . . . . . . . . 1430 IsConflict property . . . . . . . . . . . . . . . . . . . 1468
CheckAlarms method . . . . . . . . . . . . . . . . . 1431 IsDefaultView property . . . . . . . . . . . . . . . . 1468

xxiv Domino Designer Programming Guide


IsFolder property . . . . . . . . . . . . . . . . . . . . . 1469 Alignment property . . . . . . . . . . . . . . . . . . . 1509
IsHierarchical property . . . . . . . . . . . . . . . . 1470 DateFmt property . . . . . . . . . . . . . . . . . . . . 1510
IsModified property . . . . . . . . . . . . . . . . . . 1471 FontColor property . . . . . . . . . . . . . . . . . . . 1510
IsPrivate property . . . . . . . . . . . . . . . . . . . . 1472 FontFace property . . . . . . . . . . . . . . . . . . . . 1512
LastModified property . . . . . . . . . . . . . . . . 1472 FontPointSize property . . . . . . . . . . . . . . . . 1512
Name property . . . . . . . . . . . . . . . . . . . . . . 1473 FontStyle property . . . . . . . . . . . . . . . . . . . . 1513
Parent property . . . . . . . . . . . . . . . . . . . . . . 1473 Formula property . . . . . . . . . . . . . . . . . . . . 1514
ProtectReaders property . . . . . . . . . . . . . . . 1474 HeaderAlignment property . . . . . . . . . . . . . 1515
Readers property . . . . . . . . . . . . . . . . . . . . . 1475 IsAccentSensitiveSort . . . . . . . . . . . . . . . . . 1515
RowLines property . . . . . . . . . . . . . . . . . . . 1476 IsCaseSensitiveSort property . . . . . . . . . . . . 1516
Spacing property . . . . . . . . . . . . . . . . . . . . . 1477 IsCategory property . . . . . . . . . . . . . . . . . . 1517
TopLevelEntryCount property . . . . . . . . . . 1478 IsField property . . . . . . . . . . . . . . . . . . . . . . 1518
UniversalID property . . . . . . . . . . . . . . . . . 1478 IsFormula property . . . . . . . . . . . . . . . . . . . 1518
Clear method . . . . . . . . . . . . . . . . . . . . . . . . 1479 IsHidden property . . . . . . . . . . . . . . . . . . . . 1519
CreateViewNav method . . . . . . . . . . . . . . . 1480 IsHideDetail property . . . . . . . . . . . . . . . . . 1520
CreateViewNavFrom method . . . . . . . . . . . 1481 IsIcon property . . . . . . . . . . . . . . . . . . . . . . 1521
CreateViewNavFromCategory method . . . . 1482 IsResize property . . . . . . . . . . . . . . . . . . . . . 1521
CreateViewNavFromChildren method . . . . 1483 IsResortAscending property . . . . . . . . . . . . 1522
CreateViewNavFromDescendants method . . 1483 IsResortDescending property . . . . . . . . . . . 1523
FTSearch method . . . . . . . . . . . . . . . . . . . . . 1484 IsResortToView property . . . . . . . . . . . . . . 1523
GetAllDocumentsByKey method . . . . . . . . 1486 IsResponse property . . . . . . . . . . . . . . . . . . 1524
GetAllEntriesByKey method . . . . . . . . . . . . 1488 IsSecondaryResort property . . . . . . . . . . . . 1527
GetChild method . . . . . . . . . . . . . . . . . . . . . 1489 IsSecondaryResortDescending property . . . 1527
GetDocumentByKey method . . . . . . . . . . . . 1490 IsShowTwistie property . . . . . . . . . . . . . . . 1528
GetEntryByKey method . . . . . . . . . . . . . . . . 1493 IsSortDescending property . . . . . . . . . . . . . 1529
GetFirstDocument method . . . . . . . . . . . . . 1494 IsSorted property . . . . . . . . . . . . . . . . . . . . . 1529
GetLastDocument method . . . . . . . . . . . . . . 1495 ItemName property . . . . . . . . . . . . . . . . . . . 1531
GetNextDocument method . . . . . . . . . . . . . 1496 ListSep property . . . . . . . . . . . . . . . . . . . . . 1532
GetNextSibling method . . . . . . . . . . . . . . . . 1497 NumberAttrib property . . . . . . . . . . . . . . . . 1533
GetNthDocument method . . . . . . . . . . . . . . 1499 NumberDigits property . . . . . . . . . . . . . . . . 1533
GetParentDocument method . . . . . . . . . . . . 1501 NumberFormat property . . . . . . . . . . . . . . . 1534
GetPrevDocument method . . . . . . . . . . . . . 1502 Position property . . . . . . . . . . . . . . . . . . . . . 1535
GetPrevSibling method . . . . . . . . . . . . . . . . 1503 TimeDateFmt property . . . . . . . . . . . . . . . . 1536
Refresh method . . . . . . . . . . . . . . . . . . . . . . 1504 TimeFmt property . . . . . . . . . . . . . . . . . . . . 1536
Remove method . . . . . . . . . . . . . . . . . . . . . 1506 TimeZoneFmt property . . . . . . . . . . . . . . . . 1537
NotesViewColumn class . . . . . . . . . . . . . . 1506 Title property . . . . . . . . . . . . . . . . . . . . . . . . 1538

xxv
Width property . . . . . . . . . . . . . . . . . . . . . . 1539 UpdateAll method . . . . . . . . . . . . . . . . . . . . 1569
NotesViewEntry class . . . . . . . . . . . . . . . . . 1539 NotesViewNavigator class . . . . . . . . . . . . . 1570
ChildCount property . . . . . . . . . . . . . . . . . . 1541 MaxLevel property . . . . . . . . . . . . . . . . . . . 1573
ColumnIndentLevel property . . . . . . . . . . . 1542 ParentView property . . . . . . . . . . . . . . . . . . 1574
ColumnValues property . . . . . . . . . . . . . . . 1542 GetChild method . . . . . . . . . . . . . . . . . . . . . 1574
DescendantCount property . . . . . . . . . . . . . 1543 GetEntry method . . . . . . . . . . . . . . . . . . . . . 1575
Document property . . . . . . . . . . . . . . . . . . . 1544 GetFirst method . . . . . . . . . . . . . . . . . . . . . . 1576
FTSearchScore property . . . . . . . . . . . . . . . . 1544 GetFirstDocument method . . . . . . . . . . . . . 1577
IndentLevel property . . . . . . . . . . . . . . . . . . 1545 GetLast method . . . . . . . . . . . . . . . . . . . . . . 1578
IsCategory property . . . . . . . . . . . . . . . . . . 1546 GetLastDocument method . . . . . . . . . . . . . . 1579
IsConflict property . . . . . . . . . . . . . . . . . . . 1547 GetNext method . . . . . . . . . . . . . . . . . . . . . 1579
IsDocument property . . . . . . . . . . . . . . . . . 1548 GetNextCategory method . . . . . . . . . . . . . . 1580
IsTotal property . . . . . . . . . . . . . . . . . . . . . . 1549 GetNextDocument method . . . . . . . . . . . . . 1581
IsValid property . . . . . . . . . . . . . . . . . . . . . 1549 GetNextSibling method . . . . . . . . . . . . . . . . 1582
NoteID property . . . . . . . . . . . . . . . . . . . . . 1550 GetNth method . . . . . . . . . . . . . . . . . . . . . . 1583
Parent property . . . . . . . . . . . . . . . . . . . . . . 1551 GetParent method . . . . . . . . . . . . . . . . . . . . 1584
SiblingCount property . . . . . . . . . . . . . . . . . 1552 GetPos method . . . . . . . . . . . . . . . . . . . . . . 1585
UniversalID property . . . . . . . . . . . . . . . . . 1552 GetPrev method . . . . . . . . . . . . . . . . . . . . . . 1586
GetPosition method . . . . . . . . . . . . . . . . . . . 1553 GetPrevCategory method . . . . . . . . . . . . . . 1587
NotesViewEntryCollection class . . . . . . . . 1554 GetPrevDocument method . . . . . . . . . . . . . 1588
Count property . . . . . . . . . . . . . . . . . . . . . . 1556 GetPrevSibling method . . . . . . . . . . . . . . . . 1589
Parent property . . . . . . . . . . . . . . . . . . . . . . 1556
Volume III
Query property . . . . . . . . . . . . . . . . . . . . . . 1557
9 Java Classes . . . . . . . . . . . . . 1591
AddEntry method . . . . . . . . . . . . . . . . . . . . 1558
Java Classes Coding Guidelines . . . . . . . . . 1591
DeleteEntry method . . . . . . . . . . . . . . . . . . 1558
Running a Java program . . . . . . . . . . . . . . . 1591
FTSearch method . . . . . . . . . . . . . . . . . . . . . 1559
Accessing databases . . . . . . . . . . . . . . . . . . 1603
GetEntry method . . . . . . . . . . . . . . . . . . . . . 1560
Accessing database properties . . . . . . . . 1603
GetFirstEntry method . . . . . . . . . . . . . . . . . 1561
Locating a database on a server or the
GetLastEntry method . . . . . . . . . . . . . . . . . 1562 local directory . . . . . . . . . . . . . . . . . . 1609
GetNextEntry method . . . . . . . . . . . . . . . . . 1563 Opening a database . . . . . . . . . . . . . . . . 1610
GetNthEntry method . . . . . . . . . . . . . . . . . . 1564 Creating, compacting, removing, and
GetPrevEntry method . . . . . . . . . . . . . . . . . 1565 replicating a database . . . . . . . . . . . . 1614
PutAllInFolder method . . . . . . . . . . . . . . . . 1566 Examining and adjusting an access
RemoveAll method . . . . . . . . . . . . . . . . . . . 1567 control list . . . . . . . . . . . . . . . . . . . . . 1616

RemoveAllFromFolder method . . . . . . . . . . 1567 Accessing a form . . . . . . . . . . . . . . . . . . . 1619

StampAll method . . . . . . . . . . . . . . . . . . . . 1568 Accessing an outline . . . . . . . . . . . . . . . . . . 1620


Accessing views and folders . . . . . . . . . . . . 1621

xxvi Domino Designer Programming Guide


Accessing view properties . . . . . . . . . . . 1621 AppletBase class . . . . . . . . . . . . . . . . . . . . . 1668
Locating a view . . . . . . . . . . . . . . . . . . . . 1625 NotesError and NotesException classes . . . 1669
Accessing view columns . . . . . . . . . . . . . 1626 NotesFactory class . . . . . . . . . . . . . . . . . . . 1691
Working with view entries NotesThread class . . . . . . . . . . . . . . . . . . . . 1692
and navigators . . . . . . . . . . . . . . . . . . 1628 getURL method . . . . . . . . . . . . . . . . . . . . . . 1694
Removing a view . . . . . . . . . . . . . . . . . . 1631 recycle method . . . . . . . . . . . . . . . . . . . . . . 1694
Accessing documents . . . . . . . . . . . . . . . . . 1631 toString method . . . . . . . . . . . . . . . . . . . . . . 1695
Accessing document properties . . . . . . . 1632 Visibility interface . . . . . . . . . . . . . . . . . . . . 1695
Collecting all documents and all ACL class . . . . . . . . . . . . . . . . . . . . . . . . . . 1696
unprocessed documents . . . . . . . . . . . 1635
InternetLevel property . . . . . . . . . . . . . . . . . 1697
Collecting documents by searching . . . . 1637
IsUniformAccess property . . . . . . . . . . . . . . 1699
Locating a document by ID . . . . . . . . . . . 1638
Parent property . . . . . . . . . . . . . . . . . . . . . . 1700
Creating a document . . . . . . . . . . . . . . . 1639
Roles property . . . . . . . . . . . . . . . . . . . . . . . 1701
Removing a document . . . . . . . . . . . . . . 1639
addRole method . . . . . . . . . . . . . . . . . . . . . 1702
Copying a document . . . . . . . . . . . . . . . 1640
createACLEntry method . . . . . . . . . . . . . . . 1703
Mailing a document . . . . . . . . . . . . . . . . 1640
deleteRole method . . . . . . . . . . . . . . . . . . . . 1704
Accessing items . . . . . . . . . . . . . . . . . . . . . . 1640
getEntry method . . . . . . . . . . . . . . . . . . . . . 1705
Accessing item properties . . . . . . . . . . . . 1641
getFirstEntry method . . . . . . . . . . . . . . . . . . 1707
Creating an item and assigning values . . 1644
getNextEntry method . . . . . . . . . . . . . . . . . 1708
Copying an item . . . . . . . . . . . . . . . . . . . 1644
removeACLEntry method . . . . . . . . . . . . . . 1709
Removing an item . . . . . . . . . . . . . . . . . . 1645
renameRole method . . . . . . . . . . . . . . . . . . 1710
Working with a rich text item . . . . . . . . . 1645
save method . . . . . . . . . . . . . . . . . . . . . . . . 1711
Working with an embedded object . . . . . 1646
ACLEntry class . . . . . . . . . . . . . . . . . . . . . . 1711
Accessing Domino sessions . . . . . . . . . . . . . 1647
IsAdminReaderAuthor property . . . . . . . . . 1713
Accessing session properties . . . . . . . . . . 1648
IsAdminServer property . . . . . . . . . . . . . . . 1714
Using environment variables . . . . . . . . . 1649
IsCanCreateDocuments property . . . . . . . . 1714
Accessing agents . . . . . . . . . . . . . . . . . . . 1650
IsCanCreateLSOrJavaAgent property . . . . . 1715
Accessing international settings . . . . . . . 1652
IsCanCreatePersonalAgent property . . . . . . 1716
Working with time . . . . . . . . . . . . . . . . . 1654
IsCanCreatePersonalFolder property . . . . . 1717
Making a log . . . . . . . . . . . . . . . . . . . . . . 1657
IsCanCreateSharedFolder property . . . . . . . 1719
Making a newsletter . . . . . . . . . . . . . . . . 1658
IsCanDeleteDocuments property . . . . . . . . 1719
Representing a name . . . . . . . . . . . . . . . 1658
IsGroup property . . . . . . . . . . . . . . . . . . . . . 1721
10 Java Classes A-Z . . . . . . . . . 1661 IsPerson property . . . . . . . . . . . . . . . . . . . . 1721
Properties and methods with IsPublicReader property . . . . . . . . . . . . . . . 1722
ECL security . . . . . . . . . . . . . . . . . . . . 1661 IsPublicWriter property . . . . . . . . . . . . . . . . 1723
AgentBase class . . . . . . . . . . . . . . . . . . . . . 1668 IsServer property . . . . . . . . . . . . . . . . . . . . . 1723

xxvii
Level property . . . . . . . . . . . . . . . . . . . . . . . 1724 SavedData property . . . . . . . . . . . . . . . . . . . 1765
Name property . . . . . . . . . . . . . . . . . . . . . . 1726 UnprocessedDocuments property . . . . . . . . 1766
NameObject property . . . . . . . . . . . . . . . . . 1727 unprocessedFTSearch method . . . . . . . . . . . 1768
Parent property . . . . . . . . . . . . . . . . . . . . . . 1728 unprocessedSearch method . . . . . . . . . . . . . 1772
Roles property . . . . . . . . . . . . . . . . . . . . . . . 1729 updateProcessedDoc method . . . . . . . . . . . 1775
UserType property . . . . . . . . . . . . . . . . . . . 1730 Database class . . . . . . . . . . . . . . . . . . . . . . . 1776
disableRole method . . . . . . . . . . . . . . . . . . . 1732 ACL property . . . . . . . . . . . . . . . . . . . . . . . 1783
enableRole method . . . . . . . . . . . . . . . . . . . 1733 Agents property . . . . . . . . . . . . . . . . . . . . . 1784
isRoleEnabled method . . . . . . . . . . . . . . . . . 1734 AllDocuments property . . . . . . . . . . . . . . . . 1785
remove method . . . . . . . . . . . . . . . . . . . . . . 1735 Categories property . . . . . . . . . . . . . . . . . . . 1786
Agent class . . . . . . . . . . . . . . . . . . . . . . . . . 1736 Created property . . . . . . . . . . . . . . . . . . . . . 1787
Comment property . . . . . . . . . . . . . . . . . . . 1738 CurrentAccessLevel property . . . . . . . . . . . 1788
CommonOwner property . . . . . . . . . . . . . . 1739 DesignTemplateName property . . . . . . . . . 1790
IsEnabled property . . . . . . . . . . . . . . . . . . . 1740 FileName property . . . . . . . . . . . . . . . . . . . 1791
IsNotesAgent property . . . . . . . . . . . . . . . . 1742 FilePath property . . . . . . . . . . . . . . . . . . . . . 1791
IsPublic property . . . . . . . . . . . . . . . . . . . . . 1743 FolderReferencesEnabled property . . . . . . . 1792
IsWebAgent property . . . . . . . . . . . . . . . . . 1744 Forms property . . . . . . . . . . . . . . . . . . . . . . 1794
LastRun property . . . . . . . . . . . . . . . . . . . . 1744 IsDelayUpdates property . . . . . . . . . . . . . . 1794
Name property . . . . . . . . . . . . . . . . . . . . . . 1746 IsFTIndexed property . . . . . . . . . . . . . . . . . 1796
Owner property . . . . . . . . . . . . . . . . . . . . . . 1746 IsMultiDbSearch property . . . . . . . . . . . . . . 1797
Parent property . . . . . . . . . . . . . . . . . . . . . . 1747 IsOpen property . . . . . . . . . . . . . . . . . . . . . 1798
Query property . . . . . . . . . . . . . . . . . . . . . . 1748 IsPrivateAddressBook property . . . . . . . . . 1799
ServerName property . . . . . . . . . . . . . . . . . 1749 IsPublicAddressBook property . . . . . . . . . . 1800
Target property . . . . . . . . . . . . . . . . . . . . . . 1751 LastFTIndexed property . . . . . . . . . . . . . . . 1801
Trigger property . . . . . . . . . . . . . . . . . . . . . 1753 LastModified property . . . . . . . . . . . . . . . . 1802
remove method . . . . . . . . . . . . . . . . . . . . . . 1753 Managers property . . . . . . . . . . . . . . . . . . . 1803
run method . . . . . . . . . . . . . . . . . . . . . . . . . 1755 MaxSize property . . . . . . . . . . . . . . . . . . . . 1804
runOnServer method . . . . . . . . . . . . . . . . . . 1756 Parent property . . . . . . . . . . . . . . . . . . . . . . 1805
save method . . . . . . . . . . . . . . . . . . . . . . . . 1757 PercentUsed property . . . . . . . . . . . . . . . . . 1805
AgentContext class . . . . . . . . . . . . . . . . . . . 1757 ReplicaID property . . . . . . . . . . . . . . . . . . . 1806
CurrentAgent property . . . . . . . . . . . . . . . . 1759 ReplicationInfo property . . . . . . . . . . . . . . . 1807
CurrentDatabase property . . . . . . . . . . . . . . 1760 Server property . . . . . . . . . . . . . . . . . . . . . . 1808
DocumentContext property . . . . . . . . . . . . . 1761 Size property . . . . . . . . . . . . . . . . . . . . . . . . 1809
EffectiveUserName property . . . . . . . . . . . . 1762 SizeQuota property . . . . . . . . . . . . . . . . . . . 1810
LastExitStatus property . . . . . . . . . . . . . . . . 1763 TemplateName property . . . . . . . . . . . . . . . 1811
LastRun property . . . . . . . . . . . . . . . . . . . . 1764 Title property . . . . . . . . . . . . . . . . . . . . . . . . 1812

xxviii Domino Designer Programming Guide


Views property . . . . . . . . . . . . . . . . . . . . . . 1813 IsDST property . . . . . . . . . . . . . . . . . . . . . . 1860
compact method . . . . . . . . . . . . . . . . . . . . . 1814 LocalTime property . . . . . . . . . . . . . . . . . . . 1861
createCopy method . . . . . . . . . . . . . . . . . . . 1815 Parent property . . . . . . . . . . . . . . . . . . . . . . 1863
createDocument method . . . . . . . . . . . . . . . 1816 TimeOnly property . . . . . . . . . . . . . . . . . . . 1863
createFromTemplate method . . . . . . . . . . . . 1817 TimeZone property . . . . . . . . . . . . . . . . . . . 1864
createOutline method . . . . . . . . . . . . . . . . . 1819 ZoneTime property . . . . . . . . . . . . . . . . . . . 1866
createReplica method . . . . . . . . . . . . . . . . . 1820 adjustDay method . . . . . . . . . . . . . . . . . . . . 1866
enableFolder method . . . . . . . . . . . . . . . . . . 1821 adjustHour method . . . . . . . . . . . . . . . . . . . 1867
FTDomainSearch method . . . . . . . . . . . . . . 1822 adjustMinute method . . . . . . . . . . . . . . . . . 1869
FTSearch method . . . . . . . . . . . . . . . . . . . . . 1823 adjustMonth method . . . . . . . . . . . . . . . . . . 1870
getAgent method . . . . . . . . . . . . . . . . . . . . . 1826 adjustSecond method . . . . . . . . . . . . . . . . . 1871
getDocumentByID method . . . . . . . . . . . . . 1827 adjustYear method . . . . . . . . . . . . . . . . . . . 1872
getDocumentByUNID method . . . . . . . . . . 1828 convertToZone method . . . . . . . . . . . . . . . . 1874
getDocumentByURL method . . . . . . . . . . . . 1830 setAnyDate method . . . . . . . . . . . . . . . . . . . 1875
getForm method . . . . . . . . . . . . . . . . . . . . . 1832 setAnyTime method . . . . . . . . . . . . . . . . . . 1876
getOutline method . . . . . . . . . . . . . . . . . . . . 1833 setNow method . . . . . . . . . . . . . . . . . . . . . . 1876
getProfileDocCollection . . . . . . . . . . . . . . . . 1834 timeDifference method . . . . . . . . . . . . . . . . 1877
getProfileDocument method . . . . . . . . . . . . 1835 toJavaDate method . . . . . . . . . . . . . . . . . . . 1878
getURLHeaderInfo method . . . . . . . . . . . . . 1836 DbDirectory class . . . . . . . . . . . . . . . . . . . . 1879
getView method . . . . . . . . . . . . . . . . . . . . . 1838 Name property . . . . . . . . . . . . . . . . . . . . . . 1880
grantAccess method . . . . . . . . . . . . . . . . . . 1839 Parent property . . . . . . . . . . . . . . . . . . . . . . 1881
open method . . . . . . . . . . . . . . . . . . . . . . . . 1840 createDatabase method . . . . . . . . . . . . . . . . 1881
queryAccess method . . . . . . . . . . . . . . . . . . 1841 getFirstDatabase method . . . . . . . . . . . . . . . 1883
remove method . . . . . . . . . . . . . . . . . . . . . . 1843 getNextDatabase method . . . . . . . . . . . . . . 1884
replicate method . . . . . . . . . . . . . . . . . . . . . 1844 openDatabase method . . . . . . . . . . . . . . . . . 1885
revokeAccess method . . . . . . . . . . . . . . . . . 1845 openDatabaseByReplicaID method . . . . . . . 1886
search method . . . . . . . . . . . . . . . . . . . . . . . 1847 openDatabaseIfModified method . . . . . . . . 1887
updateFTIndex method . . . . . . . . . . . . . . . . 1848 openMailDatabase method . . . . . . . . . . . . . 1888
DateRange class . . . . . . . . . . . . . . . . . . . . . 1849 Document class . . . . . . . . . . . . . . . . . . . . . . 1889
EndDateTime property . . . . . . . . . . . . . . . . 1852 Authors property . . . . . . . . . . . . . . . . . . . . . 1893
Parent property . . . . . . . . . . . . . . . . . . . . . . 1853 ColumnValues property . . . . . . . . . . . . . . . 1895
StartDateTime property . . . . . . . . . . . . . . . . 1853 Created property . . . . . . . . . . . . . . . . . . . . . 1896
Text property . . . . . . . . . . . . . . . . . . . . . . . . 1854 EmbeddedObjects property . . . . . . . . . . . . . 1897
DateTime class . . . . . . . . . . . . . . . . . . . . . . 1854 EncryptionKeys property . . . . . . . . . . . . . . 1899
DateOnly property . . . . . . . . . . . . . . . . . . . 1858 FolderReferences property . . . . . . . . . . . . . 1900
GMTTime property . . . . . . . . . . . . . . . . . . . 1859 FTSearchScore property . . . . . . . . . . . . . . . . 1900

xxix
HasEmbedded property . . . . . . . . . . . . . . . 1901 getItemValueInteger method . . . . . . . . . . . . 1938
IsEncryptOnSend property . . . . . . . . . . . . . 1902 getItemValueString method . . . . . . . . . . . . . 1939
IsNewNote property . . . . . . . . . . . . . . . . . . 1903 hasItem method . . . . . . . . . . . . . . . . . . . . . . 1940
IsProfile property . . . . . . . . . . . . . . . . . . . . 1904 makeResponse method . . . . . . . . . . . . . . . . 1940
IsResponse property . . . . . . . . . . . . . . . . . . 1905 putInFolder method . . . . . . . . . . . . . . . . . . 1941
IsSaveMessageOnSend property . . . . . . . . . 1905 remove method . . . . . . . . . . . . . . . . . . . . . . 1943
IsSentByAgent property . . . . . . . . . . . . . . . 1906 removeFromFolder method . . . . . . . . . . . . . 1944
IsSigned property . . . . . . . . . . . . . . . . . . . . 1907 removeItem method . . . . . . . . . . . . . . . . . . 1945
IsSignOnSend property . . . . . . . . . . . . . . . . 1908 renderToRTItem method . . . . . . . . . . . . . . . 1946
IsValid property . . . . . . . . . . . . . . . . . . . . . 1909 replaceItemValue method . . . . . . . . . . . . . . 1947
Items property . . . . . . . . . . . . . . . . . . . . . . . 1910 save method . . . . . . . . . . . . . . . . . . . . . . . . 1950
Key property . . . . . . . . . . . . . . . . . . . . . . . . 1911 send method . . . . . . . . . . . . . . . . . . . . . . . . 1951
LastAccessed property . . . . . . . . . . . . . . . . 1911 sign method . . . . . . . . . . . . . . . . . . . . . . . . . 1954
LastModified property . . . . . . . . . . . . . . . . 1912 DocumentCollection class . . . . . . . . . . . . . 1954
NameOfProfile property . . . . . . . . . . . . . . . 1912 Count property . . . . . . . . . . . . . . . . . . . . . . 1957
NoteID property . . . . . . . . . . . . . . . . . . . . . 1912 IsSorted property . . . . . . . . . . . . . . . . . . . . . 1957
ParentDatabase property . . . . . . . . . . . . . . . 1913 Parent property . . . . . . . . . . . . . . . . . . . . . . 1959
ParentDocumentUNID property . . . . . . . . . 1914 Query property . . . . . . . . . . . . . . . . . . . . . . 1960
ParentView property . . . . . . . . . . . . . . . . . . 1915 addDocument method . . . . . . . . . . . . . . . . . 1961
Responses property . . . . . . . . . . . . . . . . . . . 1916 deleteDocument method . . . . . . . . . . . . . . . 1962
Signer property . . . . . . . . . . . . . . . . . . . . . . 1918 FTSearch method . . . . . . . . . . . . . . . . . . . . . 1964
Size property . . . . . . . . . . . . . . . . . . . . . . . . 1918 getDocument method . . . . . . . . . . . . . . . . . 1965
UniversalID property . . . . . . . . . . . . . . . . . 1919 getFirstDocument method . . . . . . . . . . . . . . 1967
Verifier property . . . . . . . . . . . . . . . . . . . . . 1920 getLastDocument method . . . . . . . . . . . . . . 1967
appendItemValue method . . . . . . . . . . . . . . 1921 getNextDocument method . . . . . . . . . . . . . 1967
computeWithForm method . . . . . . . . . . . . . 1923 getNthDocument method . . . . . . . . . . . . . . 1969
copyAllItems method . . . . . . . . . . . . . . . . . 1925 getPrevDocument method . . . . . . . . . . . . . . 1971
copyItem method . . . . . . . . . . . . . . . . . . . . . 1926 putAllInFolder method . . . . . . . . . . . . . . . . 1972
copyToDatabase method . . . . . . . . . . . . . . . 1928 removeAll method . . . . . . . . . . . . . . . . . . . . 1974
createReplyMessage method . . . . . . . . . . . . 1929 removeAllFromFolder method . . . . . . . . . . 1975
createRichTextItem method . . . . . . . . . . . . . 1930 stampAll method . . . . . . . . . . . . . . . . . . . . . 1976
encrypt method . . . . . . . . . . . . . . . . . . . . . . 1931 updateAll method . . . . . . . . . . . . . . . . . . . . 1977
getAttachment method . . . . . . . . . . . . . . . . 1933 EmbeddedObject class . . . . . . . . . . . . . . . . 1978
getFirstItem method . . . . . . . . . . . . . . . . . . 1934 ClassName property . . . . . . . . . . . . . . . . . . 1980
getItemValue method . . . . . . . . . . . . . . . . . 1936 FileSize property . . . . . . . . . . . . . . . . . . . . . 1981
getItemValueDouble method . . . . . . . . . . . . 1938 Name property . . . . . . . . . . . . . . . . . . . . . . 1981

xxx Domino Designer Programming Guide


Object property . . . . . . . . . . . . . . . . . . . . . . 1982 ThousandsSep property . . . . . . . . . . . . . . . 2010
Parent property . . . . . . . . . . . . . . . . . . . . . . 1982 TimeSep property . . . . . . . . . . . . . . . . . . . . 2010
Source property . . . . . . . . . . . . . . . . . . . . . . 1982 TimeZone property . . . . . . . . . . . . . . . . . . . 2010
Type property . . . . . . . . . . . . . . . . . . . . . . . 1983 Today property . . . . . . . . . . . . . . . . . . . . . . 2011
Verbs property . . . . . . . . . . . . . . . . . . . . . . 1983 Tomorrow property . . . . . . . . . . . . . . . . . . . 2011
activate method . . . . . . . . . . . . . . . . . . . . . . 1984 Yesterday property . . . . . . . . . . . . . . . . . . . 2012
doVerb method . . . . . . . . . . . . . . . . . . . . . . 1984 Item class . . . . . . . . . . . . . . . . . . . . . . . . . . 2012
extractFile method . . . . . . . . . . . . . . . . . . . . 1985 DateTimeValue property . . . . . . . . . . . . . . . 2016
remove method . . . . . . . . . . . . . . . . . . . . . . 1986 IsAuthors property . . . . . . . . . . . . . . . . . . . 2016
Form class . . . . . . . . . . . . . . . . . . . . . . . . . . 1986 IsEncrypted property . . . . . . . . . . . . . . . . . . 2018
Aliases property . . . . . . . . . . . . . . . . . . . . . 1988 IsNames property . . . . . . . . . . . . . . . . . . . . 2020
Fields property . . . . . . . . . . . . . . . . . . . . . . 1989 IsProtected property . . . . . . . . . . . . . . . . . . 2021
FormUsers property . . . . . . . . . . . . . . . . . . 1990 IsReaders property . . . . . . . . . . . . . . . . . . . 2021
IsProtectReaders property . . . . . . . . . . . . . . 1992 IsSaveToDisk property . . . . . . . . . . . . . . . . 2022
IsProtectUsers property . . . . . . . . . . . . . . . . 1993 IsSigned property . . . . . . . . . . . . . . . . . . . . 2022
IsSubForm property . . . . . . . . . . . . . . . . . . . 1994 IsSummary property . . . . . . . . . . . . . . . . . . 2023
Name property . . . . . . . . . . . . . . . . . . . . . . 1995 LastModified property . . . . . . . . . . . . . . . . 2024
Parent property . . . . . . . . . . . . . . . . . . . . . . 1996 Name property . . . . . . . . . . . . . . . . . . . . . . 2024
Readers property . . . . . . . . . . . . . . . . . . . . . 1996 Parent property . . . . . . . . . . . . . . . . . . . . . . 2024
remove method . . . . . . . . . . . . . . . . . . . . . . 1997 Text property . . . . . . . . . . . . . . . . . . . . . . . . 2026
International class . . . . . . . . . . . . . . . . . . . 1998 Type property . . . . . . . . . . . . . . . . . . . . . . . 2026
AMString property . . . . . . . . . . . . . . . . . . . 2000 ValueDouble property . . . . . . . . . . . . . . . . . 2029
CurrencyDigits property . . . . . . . . . . . . . . . 2001 ValueInteger property . . . . . . . . . . . . . . . . . 2030
CurrencySymbol property . . . . . . . . . . . . . . 2001 ValueLength property . . . . . . . . . . . . . . . . . 2030
DateSep property . . . . . . . . . . . . . . . . . . . . . 2002 Values property . . . . . . . . . . . . . . . . . . . . . . 2031
DecimalSep property . . . . . . . . . . . . . . . . . . 2004 ValueString property . . . . . . . . . . . . . . . . . . 2033
IsCurrencySpace property . . . . . . . . . . . . . . 2005 abstractText method . . . . . . . . . . . . . . . . . . 2034
IsCurrencySuffix property . . . . . . . . . . . . . . 2005 appendToTextList method . . . . . . . . . . . . . 2035
IsCurrencyZero property . . . . . . . . . . . . . . . 2006 containsValue method . . . . . . . . . . . . . . . . . 2037
IsDateDMY property . . . . . . . . . . . . . . . . . . 2006 copyItemToDocument method . . . . . . . . . . 2038
IsDateMDY property . . . . . . . . . . . . . . . . . . 2007 remove method . . . . . . . . . . . . . . . . . . . . . . 2040
IsDateYMD property . . . . . . . . . . . . . . . . . . 2007 Log class . . . . . . . . . . . . . . . . . . . . . . . . . . . 2041
IsDST property . . . . . . . . . . . . . . . . . . . . . . 2008 IsLogActions property . . . . . . . . . . . . . . . . . 2044
IsTime24Hour property . . . . . . . . . . . . . . . . 2008 IsLogErrors property . . . . . . . . . . . . . . . . . . 2045
Parent property . . . . . . . . . . . . . . . . . . . . . . 2009 IsOverwriteFile property . . . . . . . . . . . . . . . 2046
PMString property . . . . . . . . . . . . . . . . . . . . 2009 NumActions property . . . . . . . . . . . . . . . . . 2048

xxxi
NumErrors property . . . . . . . . . . . . . . . . . . 2049 SurName property . . . . . . . . . . . . . . . . . . . . 2076
Parent property . . . . . . . . . . . . . . . . . . . . . . 2050 Newsletter class . . . . . . . . . . . . . . . . . . . . . 2076
ProgramName property . . . . . . . . . . . . . . . 2050 IsDoScore property . . . . . . . . . . . . . . . . . . . 2079
close method . . . . . . . . . . . . . . . . . . . . . . . . 2051 IsDoSubject property . . . . . . . . . . . . . . . . . . 2079
logAction method . . . . . . . . . . . . . . . . . . . . 2052 Parent property . . . . . . . . . . . . . . . . . . . . . . 2080
logError method . . . . . . . . . . . . . . . . . . . . . 2053 SubjectItemName property . . . . . . . . . . . . . 2080
logEvent method . . . . . . . . . . . . . . . . . . . . . 2055 formatDocument method . . . . . . . . . . . . . . 2081
openAgentLog method . . . . . . . . . . . . . . . . 2056 formatMsgWithDoclinks method . . . . . . . . 2083
openFileLog method . . . . . . . . . . . . . . . . . . 2057 Outline class . . . . . . . . . . . . . . . . . . . . . . . . 2085
openMailLog method . . . . . . . . . . . . . . . . . 2059 Alias property . . . . . . . . . . . . . . . . . . . . . . . 2088
openNotesLog method . . . . . . . . . . . . . . . . 2060 Comment property . . . . . . . . . . . . . . . . . . . 2089
Name class . . . . . . . . . . . . . . . . . . . . . . . . . 2062 Name property . . . . . . . . . . . . . . . . . . . . . . 2089
Abbreviated property . . . . . . . . . . . . . . . . . 2065 addEntry method . . . . . . . . . . . . . . . . . . . . 2089
Addr821 property . . . . . . . . . . . . . . . . . . . . 2065 createEntry method . . . . . . . . . . . . . . . . . . . 2090
Addr822Comment1 property . . . . . . . . . . . 2065 getFirst method . . . . . . . . . . . . . . . . . . . . . . 2091
Addr822Comment2 property . . . . . . . . . . . 2066 getLast method . . . . . . . . . . . . . . . . . . . . . . 2092
Addr822Comment3 property . . . . . . . . . . . 2066 getNext method . . . . . . . . . . . . . . . . . . . . . . 2093
Addr822LocalPart property . . . . . . . . . . . . . 2066 getNextSibling method . . . . . . . . . . . . . . . . 2093
Addr822Phrase property . . . . . . . . . . . . . . . 2067 getParent method . . . . . . . . . . . . . . . . . . . . 2094
ADMD property . . . . . . . . . . . . . . . . . . . . . 2067 getPrev method . . . . . . . . . . . . . . . . . . . . . . 2095
Canonical property . . . . . . . . . . . . . . . . . . . 2067 getPrevSibling method . . . . . . . . . . . . . . . . 2095
Common property . . . . . . . . . . . . . . . . . . . . 2068 moveEntry method . . . . . . . . . . . . . . . . . . . 2096
Country property . . . . . . . . . . . . . . . . . . . . 2068 removeEntry method . . . . . . . . . . . . . . . . . . 2098
Generation property . . . . . . . . . . . . . . . . . . 2068 save method . . . . . . . . . . . . . . . . . . . . . . . . 2099
Given property . . . . . . . . . . . . . . . . . . . . . . 2069 OutlineEntry class . . . . . . . . . . . . . . . . . . . 2099
Initials property . . . . . . . . . . . . . . . . . . . . . . 2069 Alias property . . . . . . . . . . . . . . . . . . . . . . . 2100
IsHierarchical property . . . . . . . . . . . . . . . . 2069 Database property . . . . . . . . . . . . . . . . . . . . 2101
Keyword property . . . . . . . . . . . . . . . . . . . . 2070 Document property . . . . . . . . . . . . . . . . . . . 2101
Language property . . . . . . . . . . . . . . . . . . . 2070 EntryClass property . . . . . . . . . . . . . . . . . . 2102
Organization property . . . . . . . . . . . . . . . . . 2074 Formula property . . . . . . . . . . . . . . . . . . . . 2102
OrgUnit1 property . . . . . . . . . . . . . . . . . . . . 2074 FrameText property . . . . . . . . . . . . . . . . . . . 2103
OrgUnit2 property . . . . . . . . . . . . . . . . . . . . 2074 HasChildren property . . . . . . . . . . . . . . . . . 2103
OrgUnit3 property . . . . . . . . . . . . . . . . . . . . 2075 ImagesText property . . . . . . . . . . . . . . . . . . 2105
OrgUnit4 property . . . . . . . . . . . . . . . . . . . . 2075 IsHidden property . . . . . . . . . . . . . . . . . . . . 2105
Parent property . . . . . . . . . . . . . . . . . . . . . . 2075 IsInThisDB property . . . . . . . . . . . . . . . . . . 2106
PRMD property . . . . . . . . . . . . . . . . . . . . . . 2076 IsPrivate property . . . . . . . . . . . . . . . . . . . . 2106

xxxii Domino Designer Programming Guide


Label property . . . . . . . . . . . . . . . . . . . . . . . 2107 IsAbstract property . . . . . . . . . . . . . . . . . . . 2133
Level property . . . . . . . . . . . . . . . . . . . . . . . 2107 CutoffDate property . . . . . . . . . . . . . . . . . . 2134
NamedElement property . . . . . . . . . . . . . . . 2107 CutoffInterval property . . . . . . . . . . . . . . . . 2135
Type property . . . . . . . . . . . . . . . . . . . . . . . 2108 IsCutoffDelete property . . . . . . . . . . . . . . . . 2135
URL property . . . . . . . . . . . . . . . . . . . . . . . 2108 IsDisabled property . . . . . . . . . . . . . . . . . . . 2136
View property . . . . . . . . . . . . . . . . . . . . . . . 2109 IsDoNotBrowse property . . . . . . . . . . . . . . 2137
setAction method . . . . . . . . . . . . . . . . . . . . 2109 IsDoNotCatalog property . . . . . . . . . . . . . . 2138
setNamedElement method . . . . . . . . . . . . . 2110 IsHideDesign property . . . . . . . . . . . . . . . . 2139
setNoteLink method . . . . . . . . . . . . . . . . . . 2111 IsIgnoreDeletes property . . . . . . . . . . . . . . . 2140
setURL method . . . . . . . . . . . . . . . . . . . . . . 2112 IsIgnoreDestDeletes property . . . . . . . . . . . 2141
Registration class . . . . . . . . . . . . . . . . . . . . 2112 IsMultiDbIndex property . . . . . . . . . . . . . . 2142
CertifierIDFile property . . . . . . . . . . . . . . . . 2114 IsNeverReplicate property . . . . . . . . . . . . . . 2143
CreateMailDb property . . . . . . . . . . . . . . . . 2114 IsNoChronos property . . . . . . . . . . . . . . . . . 2143
Expiration property . . . . . . . . . . . . . . . . . . . 2115 Priority property . . . . . . . . . . . . . . . . . . . . . 2144
IDType property . . . . . . . . . . . . . . . . . . . . . 2115 clearHistory method . . . . . . . . . . . . . . . . . . 2146
IsNorthAmerican property . . . . . . . . . . . . . 2116 reset method . . . . . . . . . . . . . . . . . . . . . . . . 2146
MinPasswordLength property . . . . . . . . . . 2116 save method . . . . . . . . . . . . . . . . . . . . . . . . 2146
OrgUnit property . . . . . . . . . . . . . . . . . . . . 2117 RichTextItem class . . . . . . . . . . . . . . . . . . . 2147
RegistrationLog property . . . . . . . . . . . . . . 2117 EmbeddedObjects property . . . . . . . . . . . . . 2149
RegistrationServer property . . . . . . . . . . . . 2117 addNewLine method . . . . . . . . . . . . . . . . . . 2150
StoreIDInAddressBook property . . . . . . . . 2118 addPageBreak method . . . . . . . . . . . . . . . . 2152
UpdateAddressbook property . . . . . . . . . . . 2118 addTab method . . . . . . . . . . . . . . . . . . . . . . 2152
addCertifierToAddressbook method . . . . . . 2119 appendDocLink method . . . . . . . . . . . . . . . 2153
addServerToAddressbook method . . . . . . . 2120 appendParagraphStyle method . . . . . . . . . . 2155
addUserProfile method . . . . . . . . . . . . . . . . 2121 appendRTItem method . . . . . . . . . . . . . . . . 2155
addUserToAddressbook method . . . . . . . . 2121 appendStyle method . . . . . . . . . . . . . . . . . . 2156
crossCertify method . . . . . . . . . . . . . . . . . . 2123 appendText method . . . . . . . . . . . . . . . . . . 2157
deleteIDOnServer method . . . . . . . . . . . . . . 2123 embedObject method . . . . . . . . . . . . . . . . . . 2157
getIDFromServer method . . . . . . . . . . . . . . 2124 getEmbeddedObject method . . . . . . . . . . . . 2159
getUserInfo method . . . . . . . . . . . . . . . . . . . 2124 getFormattedText method . . . . . . . . . . . . . . 2160
recertify method . . . . . . . . . . . . . . . . . . . . . 2125 RichTextParagraphStyle class . . . . . . . . . . 2162
registerNewCertifier method . . . . . . . . . . . . 2126 Alignment property . . . . . . . . . . . . . . . . . . . 2164
registerNewServer method . . . . . . . . . . . . . 2127 FirstLineLeftMargin property . . . . . . . . . . . 2165
registerNewUser method . . . . . . . . . . . . . . 2128 InterLineSpacing property . . . . . . . . . . . . . . 2165
switchToID method . . . . . . . . . . . . . . . . . . . 2129 LeftMargin property . . . . . . . . . . . . . . . . . . 2166
Replication class . . . . . . . . . . . . . . . . . . . . . 2130 Pagination property . . . . . . . . . . . . . . . . . . . 2166

xxxiii
RightMargin property . . . . . . . . . . . . . . . . . 2167 createName method . . . . . . . . . . . . . . . . . . 2197
SpacingAbove property . . . . . . . . . . . . . . . . 2168 createNewsletter method . . . . . . . . . . . . . . . 2198
SpacingBelow property . . . . . . . . . . . . . . . . 2168 createRegistration method . . . . . . . . . . . . . . 2198
Tabs property . . . . . . . . . . . . . . . . . . . . . . . 2169 createRichTextParagraphStyle method . . . . 2199
clearAllTabs method . . . . . . . . . . . . . . . . . . 2169 createRichTextStyle method . . . . . . . . . . . . 2199
setTab method . . . . . . . . . . . . . . . . . . . . . . . 2170 evaluate method . . . . . . . . . . . . . . . . . . . . . 2200
setTabs method . . . . . . . . . . . . . . . . . . . . . . 2170 freeTimeSearch method . . . . . . . . . . . . . . . . 2202
RichTextStyle class . . . . . . . . . . . . . . . . . . . 2172 getDatabase method . . . . . . . . . . . . . . . . . . 2203
Bold property . . . . . . . . . . . . . . . . . . . . . . . 2174 getDbDirectory method . . . . . . . . . . . . . . . . 2204
Color property . . . . . . . . . . . . . . . . . . . . . . . 2174 getEnvironmentString method . . . . . . . . . . 2205
Effects property . . . . . . . . . . . . . . . . . . . . . . 2175 getEnvironmentValue method . . . . . . . . . . 2207
Font property . . . . . . . . . . . . . . . . . . . . . . . 2176 getURLDatabase method . . . . . . . . . . . . . . . 2209
FontSize property . . . . . . . . . . . . . . . . . . . . 2177 resolve method . . . . . . . . . . . . . . . . . . . . . . 2210
Italic property . . . . . . . . . . . . . . . . . . . . . . . 2177 setEnvironmentVar method . . . . . . . . . . . . 2210
Parent property . . . . . . . . . . . . . . . . . . . . . . 2178 View class . . . . . . . . . . . . . . . . . . . . . . . . . . 2212
StrikeThrough property . . . . . . . . . . . . . . . . 2178 Aliases property . . . . . . . . . . . . . . . . . . . . . 2217
Underline property . . . . . . . . . . . . . . . . . . . 2179 AllEntries property . . . . . . . . . . . . . . . . . . . 2218
RichTextTab class . . . . . . . . . . . . . . . . . . . . 2179 BackgroundColor property . . . . . . . . . . . . . 2219
Position property . . . . . . . . . . . . . . . . . . . . . 2181 ColumnCount property . . . . . . . . . . . . . . . . 2221
Type property . . . . . . . . . . . . . . . . . . . . . . . 2182 ColumnNames property . . . . . . . . . . . . . . . 2222
clear method . . . . . . . . . . . . . . . . . . . . . . . . 2182 Columns property . . . . . . . . . . . . . . . . . . . . 2222
Session class . . . . . . . . . . . . . . . . . . . . . . . . 2182 Created property . . . . . . . . . . . . . . . . . . . . . 2223
AddressBooks property . . . . . . . . . . . . . . . . 2185 HeaderLines property . . . . . . . . . . . . . . . . . 2224
AgentContext property . . . . . . . . . . . . . . . . 2187 IsAutoUpdate property . . . . . . . . . . . . . . . . 2225
CommonUserName property . . . . . . . . . . . 2187 IsCalendar property . . . . . . . . . . . . . . . . . . 2226
International property . . . . . . . . . . . . . . . . . 2188 IsCategorized property . . . . . . . . . . . . . . . . 2227
IsOnServer property . . . . . . . . . . . . . . . . . . 2189 IsConflict property . . . . . . . . . . . . . . . . . . . 2228
NotesVersion property . . . . . . . . . . . . . . . . 2190 IsDefaultView property . . . . . . . . . . . . . . . . 2228
Platform property . . . . . . . . . . . . . . . . . . . . 2191 IsFolder property . . . . . . . . . . . . . . . . . . . . . 2229
ServerName property . . . . . . . . . . . . . . . . . 2192 IsHierarchical property . . . . . . . . . . . . . . . . 2230
UserName property . . . . . . . . . . . . . . . . . . . 2193 IsModified property . . . . . . . . . . . . . . . . . . 2230
UserNameList property . . . . . . . . . . . . . . . . 2194 IsPrivate property . . . . . . . . . . . . . . . . . . . . 2231
UserNameObject property . . . . . . . . . . . . . . 2194 IsProtectReaders property . . . . . . . . . . . . . . 2232
createDateRange method . . . . . . . . . . . . . . . 2195 LastModified property . . . . . . . . . . . . . . . . 2233
createDateTime method . . . . . . . . . . . . . . . . 2196 Name property . . . . . . . . . . . . . . . . . . . . . . 2234
createLog method . . . . . . . . . . . . . . . . . . . . 2197 Parent property . . . . . . . . . . . . . . . . . . . . . . 2235

xxxiv Domino Designer Programming Guide


Readers property . . . . . . . . . . . . . . . . . . . . . 2236 Formula property . . . . . . . . . . . . . . . . . . . . 2284
RowLines property . . . . . . . . . . . . . . . . . . . 2237 HeaderAlignment property . . . . . . . . . . . . . 2285
Spacing property . . . . . . . . . . . . . . . . . . . . . 2237 IsAccentSensitiveSort property . . . . . . . . . . 2285
TopLevelEntryCount property . . . . . . . . . . 2238 IsCaseSensitiveSort property . . . . . . . . . . . . 2286
UniversalID property . . . . . . . . . . . . . . . . . 2238 IsCategory property . . . . . . . . . . . . . . . . . . 2286
clear method . . . . . . . . . . . . . . . . . . . . . . . . 2239 IsField property . . . . . . . . . . . . . . . . . . . . . . 2287
createViewNav method . . . . . . . . . . . . . . . . 2239 IsFormula property . . . . . . . . . . . . . . . . . . . 2287
createViewNavFrom method . . . . . . . . . . . 2241 IsHidden property . . . . . . . . . . . . . . . . . . . . 2288
createViewNavFromCategory method . . . . 2242 IsHideDetail property . . . . . . . . . . . . . . . . . 2288
createViewNavFromChildren method . . . . 2244 IsIcon property . . . . . . . . . . . . . . . . . . . . . . 2290
createViewNavFromDescendants method . . 2245 IsResize property . . . . . . . . . . . . . . . . . . . . . 2290
createViewNavMaxLevel method . . . . . . . . 2247 IsResortAscending property . . . . . . . . . . . . 2290
FTSearch method . . . . . . . . . . . . . . . . . . . . . 2248 IsResortDescending property . . . . . . . . . . . 2291
getAllDocumentsByKey method . . . . . . . . . 2251 IsResortToView property . . . . . . . . . . . . . . 2291
getAllEntriesByKey method . . . . . . . . . . . . 2253 IsResponse property . . . . . . . . . . . . . . . . . . 2292
getChild method . . . . . . . . . . . . . . . . . . . . . 2256 IsSecondaryResort property . . . . . . . . . . . . 2293
getColumn method . . . . . . . . . . . . . . . . . . . 2257 IsSecondaryResortDescending property . . . 2293
getDocumentByKey method . . . . . . . . . . . . 2258 IsShowTwistie property . . . . . . . . . . . . . . . 2294
getEntryByKey method . . . . . . . . . . . . . . . . 2260 IsSortDescending property . . . . . . . . . . . . . 2294
getFirstDocument method . . . . . . . . . . . . . . 2262 IsSorted property . . . . . . . . . . . . . . . . . . . . . 2295
getLastDocument method . . . . . . . . . . . . . . 2263 ItemName property . . . . . . . . . . . . . . . . . . . 2296
getNextDocument method . . . . . . . . . . . . . 2264 ListSep property . . . . . . . . . . . . . . . . . . . . . 2297
getNextSibling method . . . . . . . . . . . . . . . . 2266 NumberAttrib property . . . . . . . . . . . . . . . . 2297
getNthDocument method . . . . . . . . . . . . . . 2267 NumberDigits property . . . . . . . . . . . . . . . . 2299
getParentDocument method . . . . . . . . . . . . 2268 NumberFormat property . . . . . . . . . . . . . . . 2299
getPrevDocument method . . . . . . . . . . . . . . 2270 Parent property . . . . . . . . . . . . . . . . . . . . . . 2300
getPrevSibling method . . . . . . . . . . . . . . . . 2271 Position property . . . . . . . . . . . . . . . . . . . . . 2300
refresh method . . . . . . . . . . . . . . . . . . . . . . 2272 TimeDateFmt property . . . . . . . . . . . . . . . . 2301
remove method . . . . . . . . . . . . . . . . . . . . . . 2273 TimeFmt property . . . . . . . . . . . . . . . . . . . . 2301
ViewColumn class . . . . . . . . . . . . . . . . . . . 2274 TimeZoneFmt property . . . . . . . . . . . . . . . . 2302
Alignment property . . . . . . . . . . . . . . . . . . . 2277 Title property . . . . . . . . . . . . . . . . . . . . . . . . 2302
DateFmt property . . . . . . . . . . . . . . . . . . . . 2278 Width property . . . . . . . . . . . . . . . . . . . . . . 2302
FontColor property . . . . . . . . . . . . . . . . . . . 2280 ViewEntry class . . . . . . . . . . . . . . . . . . . . . 2304
FontFace property . . . . . . . . . . . . . . . . . . . . 2282 ChildCount property . . . . . . . . . . . . . . . . . . 2306
FontPointSize property . . . . . . . . . . . . . . . . 2283 ColumnIndentLevel property . . . . . . . . . . . 2306
FontStyle . . . . . . . . . . . . . . . . . . . . . . . . . . . 2283 ColumnValues property . . . . . . . . . . . . . . . 2307

xxxv
DescendantCount property . . . . . . . . . . . . . 2308 getChild method . . . . . . . . . . . . . . . . . . . . . 2337
Document property . . . . . . . . . . . . . . . . . . . 2308 getCurrent method . . . . . . . . . . . . . . . . . . . 2340
FTSearchScore property . . . . . . . . . . . . . . . . 2309 getFirst method . . . . . . . . . . . . . . . . . . . . . . 2340
IndentLevel property . . . . . . . . . . . . . . . . . . 2309 getFirstDocument method . . . . . . . . . . . . . . 2342
IsCategory property . . . . . . . . . . . . . . . . . . 2310 getLast method . . . . . . . . . . . . . . . . . . . . . . 2343
IsConflict property . . . . . . . . . . . . . . . . . . . 2310 getLastDocument method . . . . . . . . . . . . . . 2345
IsDocument property . . . . . . . . . . . . . . . . . 2310 getNext method . . . . . . . . . . . . . . . . . . . . . . 2346
IsTotal property . . . . . . . . . . . . . . . . . . . . . . 2311 getNextCategory method . . . . . . . . . . . . . . 2346
IsValid property . . . . . . . . . . . . . . . . . . . . . 2311 getNextDocument method . . . . . . . . . . . . . 2347
NoteID property . . . . . . . . . . . . . . . . . . . . . 2312 getNextSibling method . . . . . . . . . . . . . . . . 2348
Parent property . . . . . . . . . . . . . . . . . . . . . . 2312 getNth method . . . . . . . . . . . . . . . . . . . . . . 2349
SiblingCount property . . . . . . . . . . . . . . . . . 2313 getParent method . . . . . . . . . . . . . . . . . . . . 2350
UniversalID property . . . . . . . . . . . . . . . . . 2313 getPos method . . . . . . . . . . . . . . . . . . . . . . . 2351
getPosition method . . . . . . . . . . . . . . . . . . . 2313 getPrev method . . . . . . . . . . . . . . . . . . . . . . 2352
ViewEntryCollection class . . . . . . . . . . . . . 2314 getPrevCategory method . . . . . . . . . . . . . . . 2353
Count property . . . . . . . . . . . . . . . . . . . . . . 2316 getPrevDocument method . . . . . . . . . . . . . . 2354
Parent property . . . . . . . . . . . . . . . . . . . . . . 2316 getPrevSibling method . . . . . . . . . . . . . . . . 2354
Query property . . . . . . . . . . . . . . . . . . . . . . 2317 gotoChild method . . . . . . . . . . . . . . . . . . . . 2355
addEntry method . . . . . . . . . . . . . . . . . . . . 2317 gotoEntry method . . . . . . . . . . . . . . . . . . . . 2357
deleteEntry method . . . . . . . . . . . . . . . . . . . 2318 gotoFirst method . . . . . . . . . . . . . . . . . . . . . 2358
FTSearch method . . . . . . . . . . . . . . . . . . . . . 2320 gotoFirstDocument method . . . . . . . . . . . . . 2359
getEntry method . . . . . . . . . . . . . . . . . . . . . 2321 gotoLast method . . . . . . . . . . . . . . . . . . . . . 2360
getFirstEntry method . . . . . . . . . . . . . . . . . . 2323 gotoLastDocument method . . . . . . . . . . . . . 2362
getLastEntry method . . . . . . . . . . . . . . . . . . 2324 gotoNext method . . . . . . . . . . . . . . . . . . . . . 2363
getNextEntry method . . . . . . . . . . . . . . . . . 2325 gotoNextCategory method . . . . . . . . . . . . . 2364
getNthEntry method . . . . . . . . . . . . . . . . . . 2326 gotoNextDocument method . . . . . . . . . . . . 2365
getPrevEntry method . . . . . . . . . . . . . . . . . 2327 gotoNextSibling method . . . . . . . . . . . . . . . 2365
putAllInFolder method . . . . . . . . . . . . . . . . 2327 gotoParent method . . . . . . . . . . . . . . . . . . . 2366
removeAll method . . . . . . . . . . . . . . . . . . . . 2329 gotoPos method . . . . . . . . . . . . . . . . . . . . . . 2366
removeAllFromFolder method . . . . . . . . . . 2330 gotoPrev method . . . . . . . . . . . . . . . . . . . . . 2367
stampAll method . . . . . . . . . . . . . . . . . . . . . 2331 gotoPrevCategory method . . . . . . . . . . . . . . 2367
updateAll method . . . . . . . . . . . . . . . . . . . . 2332 gotoPrevDocument method . . . . . . . . . . . . . 2368
ViewNavigator class . . . . . . . . . . . . . . . . . . 2333 gotoPrevSibling method . . . . . . . . . . . . . . . 2369
CacheSize property . . . . . . . . . . . . . . . . . . . 2336
Index . . . . . . . . . . . . . . . . . . . Index-1
MaxLevel property . . . . . . . . . . . . . . . . . . . 2336
ParentView property . . . . . . . . . . . . . . . . . . 2337

xxxvi Domino Designer Programming Guide


Preface

The Domino Designer Programming Guide shows how to attach scripts,


formulas, and Java to Domino™ applications.
This book is intended for developers who already understand their
workstation’s operating environment, know how to use Domino, have an
understanding of application development in Domino Designer, and have
an understanding of LotusScript™ and JavaScript if applicable.

Structure of this guide


The Domino Designer Programming Guide contains ten chapters and is
printed in three volumes.
Volume 1: Formula Language
Chapter 1, “Programming Overview,” provides an overview of Domino
programming. This chapter describes where Java, LotusScript, JavaScript,
and formulas can be attached, and provides examples.
Chapter 2, “User Interface,” explains the user interface to writing and
debugging scripts in Domino.
Chapter 3, “Formula Language Rules,” explains the rules of formula
language.
Chapter 4, “Formula Language Coding Guidelines,” provides guidelines for
working in Domino through formulas.
Chapter 5, “Formula Language @Functions A–Z,” is an A–Z reference of the
Domino @functions.
Chapter 6, “Formula Language @Commands A–Z,” is an A–Z reference of
the Domino @commands.
Volume 2: LotusScript Classes
Chapter 7, “LotusScript Classes Coding Guidelines,” provides guidelines
for working in Domino through LotusScript.
Chapter 8, “LotusScript Classes A–Z,” is an A–Z reference of the Domino
classes, methods, properties, and events.

xxxvii
Volume 3: Java Classes
Chapter 9, “Java Classes Coding Guidelines,” provides guidelines for
working in Domino through Java.
Chapter 10, “Java Classes A–Z,” is an A–Z reference of the Java
Domino methods.

Conventions
In Volume 1, keywords listed under “Syntax” are enclosed in brackets and
bold face type.
In Volume 2, parameters which appear in brackets are optional.

Structure of Notes and Domino documentation


Documentation for Notes and Domino is provided online in three databases
available from the Help menu:
Notes 5 Client Help
Domino 5 Administration Help
Domino 5 Designer Help
In addition, the Administration and Designer documentation is available as
printed books. In Notes, select File - OtherHelp to see a table of all the
available documentation. You can order books from the Lotus Education
Web site at: www.lotus.com/education.

Documentation for the Notes Client


In addition to the online Help, the printed book Step by Step provides a
tutorial for beginning Notes users.

Documentation for Domino Administration


The following table shows the printed books that comprise the
Administration documentation set. The information in these books is
also found in the Domino 5 Administration Help online database.

Moving to Notes and Describes how to upgrade existing Domino


Domino Release 5 servers and Notes clients to Release 5. Also
describes how to move users to Domino from
other messaging systems.

xxxviii Domino Designer Programming Guide


Configuring the Explains how to configure a specific network
Domino Network to work with Domino. Also illustrates how to
run Notes using multiple network protocols
and individual protocols, such as AppleTalk,
Banyan VINES, NetBIOS, Novell SPX
(NetWare), and TCP/IP.
Administering the Describes how to set up and manage servers,
Domino System, users, server connections, mail, replication,
Volumes 1 and 2 security, calendars and scheduling, Web
servers, NNTP services, billing, and system
monitoring. Describes how to troubleshoot
system problems.
Administering Describes how to set up, manage, and
Domino Clusters troubleshoot Domino clusters.
Managing Domino Databases Provides information on managing
databases, including putting databases into
production, setting up access control lists and
replication, and maintaining databases.

Documentation for Domino Designer


The following table shows the printed books that comprise the Domino
Designer documentation set. The information in these books is also found
in the Domino 5 Designer Help online database.

Application Development with Explains how to create all the design


Domino Designer elements used in building Domino
applications, how to share information with
other applications, and how to customize
applications.
Domino Designer Introduces programming in Domino
Programming Guide Designer and describes the formula
Volume 1: Formula Language language, the @functions, and the
@commands.
Domino Designer Provides reference information on the
Programming Guide LotusScript classes, which provide access to
Volume 2: LotusScript Classes databases and other Domino structures.
Domino Designer Provides reference information on the Java
Programming Guide classes, which provide access to databases
Volume 3: Java Classes and other Domino structures.

Preface xxxix
LotusScript Language Guide Describes the basic building blocks of
LotusScript, how to use the language to
create applications, an overview of the
LotusScript programming language, and a
comprehensive list of language elements.
Domino Enterprise Provides information on how to set up
Integration Guide Domino Connectors, how to utilize Domino
Enterprise Connection Services (DECS) to
access enterprise data in real-time, and
reference material for programming with
the LotusScript Extension for Domino
Connectors.
Managing Domino Databases Provides information on managing
databases, including putting databases into
production, setting up access control lists and
replication, and maintaining databases.

Notes
Help *

Step by Step **

Setting up a Domino Server


Release Notes Administration Moving to Notes and Domino Release 5
Help Configuring the Domino Network
Administering Domino Clusters
Administering the Domino System, Volume 1
Administering the Domino System, Volume 2

Managing Domino
Databases

Application Development with Domino Designer Domino Objects


Designer
Help
Domino Designer Templates Guide * Posters
Domino Designer Programming Guide, Volume 1: Formula Language
Domino Designer Programming Guide, Volume 2: LotusScript Classes
Domino Designer Programming Guide, Volume 3: Java Classes
* not available in print LotusScript Language Guide
** print only Domino Enterprise Integration Guide

xl Domino Designer Programming Guide


Chapter 9
Java Classes

The documentation for the Java classes consists of guidelines and an A-to-Z
reference.
This documentation does not cover the Java language, which is a product of
Sun Microsystems, Inc. See http://java.sun.com/products/jdk.

Java Classes Coding Guidelines


These are guidelines for writing Java programs using the Domino Objects.
See “Java Classes A-Z” for a reference.

Running a Java program


You can call into the object interface from a Java program by importing the
lotus.domino package. The program can be coded as an application, a
Domino agent, an applet, or a servlet. Local calls access run-time code on
the local machine, which must have Domino installed. Remote (IIOP) calls
access run-time code from a remote Domino server; in this case, the local
machine need not have Domino installed. Compilation must be on a
machine with Domino Designer Release 5 installed.
Note The lotus.domino package has the same content as the Release 4.6
lotus.notes package plus new classes, methods, and other enhancements.
The Release 4.6 lotus.notes package continues to be supported for
backwards compatibility only; it does not contain the new classes, methods,
and other enhancements.

Requirements
Server requirements
Remote calls require access to a Release 5 Domino server.
The server tasks HTTP and DIIOP must be running. Ensure that the server
notes.ini file contains the following line:
ServerTasks=<any other tasks>,http,diiop

Or you can start the tasks later with the load console command.

1591
The server document in the Domino Directory (under Server\Servers) must
permit and restrict remote calls as desired:
Under Internet Protocols - IIOP, specify the number of threads to be
allocated for handling remote calls.
Under Ports - Internet Ports - DIIOP, set up the TCP/IP port for
non-encrypted transfers and the SSL port for encrypted transfers.
Indicate whether access is permitted by name and password, and
whether anonymous access is allowed.
Under Security - Server Access, fill in Access server, Not access server,
Create new databases, and Create replica databases as desired.
Fill in Security - DIIOP Restrictions as desired.
A server refreshes its cache of security options approximately every half
hour. The console command “tell diiop refresh” forces an immediate
refresh.
SSL security for CORBA based Domino Object applications/applets builds
on the Web Server SSL security. You must first setup the Web server
security using the “Domino R5 Certificate Authority” application.

Designer requirements
Compilation of a Java program using the lotus.domino package requires
installation of Domino Designer Release 5.
Ensure that the notes.ini file of the Designer machine contains the following
line:
ALLOW_NOTES_PACKAGE_APPLETS=1

For stand-alone applications, include domino\java\NCSO.jar and Notes.jar


from the Notes directory in the CLASSPATH environment variable. For
example:
set
CLASSPATH=.;c:\notes\domino\java\NCSO.jar;c:\notes\Notes.jar

Notes.jar contains the high-level lotus.domino package, the


lotus.domino.local package for local calls, and the old lotus.notes package.
NCSO.jar contains the high-level lotus.domino package and the
lotus.domino.corba package for remote calls. Strictly, you do not need
NCSO.jar if you are not compiling remote calls and you do not need
Notes.jar if you are not compiling local calls or old calls.
Your class code must import the high-level lotus.domino package:
import lotus.domino.*;

1592 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Run-time requirements
A machine running a Java application that makes local Domino calls must
contain Domino Release 5 (Client, Designer, or Server) and must include
Notes.jar in the CLASSPATH.
A machine running a Java application that makes remote Domino calls need
not contain Domino Release 5, but must contain NCSO.jar and must include
NCSO.jar in the CLASSPATH.
A machine running a Domino Release 5 agent that makes Domino calls
must include Notes.jar in the CLASSPATH.
A machine running an applet that makes Domino calls needs no Domino
software or CLASSPATH assignments.

Calling the lotus.domino package


The following guidelines apply to Java programs calling into the
lotus.domino package:
An application or servlet that makes local calls uses the NotesThread
class, which extends java.lang.Thread. You can extend NotesThread,
implement the Runnable interface, or use the static NotesThread
methods sinitThread() and stermThread(). If you extend NotesThread,
the entry point to the functional code must be public void runNotes(). If
you implement Runnable, the entry point must be public void run(). If
you use the static NotesThread methods, be sure to call stermThread
exactly one time for each call to sinitThread. An application that makes
remote calls does not use the NotesThread class. See the examples for
clarification.
Each thread of an application making local calls must initialize a
NotesThread object. This includes AWT threads that access the Domino
Objects. Listener threads must use the static methods because they
cannot inherit from NotesThread.
An agent extends the AgentBase class, which extends the NotesThread
class. The class that contains the agent code must be public. The entry
point to the functional code must be public void NotesMain(). See the
examples for clarification.
An applet extends AppletBase and puts its functional code in the
methods notesAppletInit(), notesAppletStart(), and notesAppletStop().
You do not have to distinguish between local and remote access in the
main code. AppletBase makes local calls if the applet is running
through the Notes client and remote (IIOP) calls if it is running through
a browser.

Chapter 9: Java Classes 1593


If an applet creates a thread containing Domino calls, the thread code
must use NotesThread for local Domino calls but not remote (IIOP)
calls. Use AppletBase.isLocal() to determine the environment.
Use NotesThread.sinitThread for initialization and
NotesThread.stermThread for termination. Thread creation includes
handling AWT events.
See the examples for clarification.
The Session class is the root of the Domino back-end object containment
hierarchy. For applications making local calls, use the method
NotesFactory.createSession() to create a Session object. For applications
making remote calls, use the method NotesFactory.createSession(String
host) or NotesFactory.createSession(String host, String user, String
pwd). For agents, use the method AgentBase.getSession(). For applets,
use the method AppletBase.openSession() or
AppletBase.openSession(String user, String pwd) and
AppletBase.closeSession(Session session). See the examples for
clarification.
The user and pwd parameters of NotesFactory.createSession(String
host, String user, String pwd) and AppletBase.openSession(String user,
String pwd) must be a user name and Internet password in the Domino
Directory on the server being accessed. If a name and password are not
specified, anonymous access must be permitted by the server.
To enable SSL (Secure Socket Layer), use
NotesFactory.createSession(String host, String args[], String user, String
pwd) and specify “-ORBEnableSSLSecurity” for args(0).
For foreground agents, System.out and System.err output goes to the
Java debug console. For locally scheduled agents, System.out and
System.err output goes to the Domino log.
For output to Web browsers from agents (but not applets), you must
assign a java.io.PrintWriter object with the getAgentOutput() method of
AgentBase, and write using the println method of the PrintWriter
object. This method works for output to Notes clients as well. See the
examples for clarification.
System.exit must not be used to terminate a program using the
NotesThread class (and by extension the AgentBase class). In an agent,
System.exit throws SecurityException. In an application, System.exit
may cause corruption problems.

1594 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Using the lotus.domino classes
The lotus.domino classes allow you to access named databases, views,
documents, and other back-end objects. The following lotus.domino classes
are for direct, public use:
ACL represents a collection of all the access control list entries for a
database.
ACLEntry represents a single entry in an access control list.
Agent represents the attributes of an agent.
AgentContext represents the context of the current agent if the program
is running as an agent.
Database represents a Domino database.
DateRange represents a range of dates and times.
DateTime represents a Domino date-time.
DbDirectory represents the database files on a server or the local
machine.
Document represents a document in a database.
DocumentCollection represents a collection of documents.
EmbeddedObject represents embedded objects, links, and file
attachments.
Form represents a form in a database.
International represents the international settings in the operating
system.
Item represents an item of data in a document.
Log represents actions and errors that occur during execution of a
script.
Name represents a user or server name.
NewsLetter represents a summary document that contains information
from, or links to, several other documents.
Outline represents an outline.
OutlineEntry represents an entry in an outline.
Registration represents the creation or administration of an ID file.
Replication represents the replication attributes of a Domino database.
RichTextItem represents items that contain rich text.
RichTextParagraphStyle represents rich text paragraph style attributes.
RichTextStyle represents rich text style attributes.
RichTextTab represents rich text tab attributes.

Chapter 9: Java Classes 1595


Session represents the context of the current program. This class is the
root of the Domino database objects.
View represents a view or folder in a database.
ViewColumn represents a column of a view.
ViewEntry represents an entry in a view.
ViewEntryCollection represents a collection of view entries.
ViewNavigator represents a view navigator.

Examples: Running a Java program


The following examples demonstrate the minimal code needed for a Java
program that uses the Domino classes. The examples instantiate a Session
object and print the String output of its getPlatform method (Platform
property). Also shown are several servlet configuration files.
1. This is an application that makes local calls and extends the
NotesThread class:
import lotus.domino.*;
public class platform1 extends NotesThread
{
public static void main(String argv[])
{
platform1 t = new platform1();
t.start();
}
public void runNotes()
{
try
{
Session s = NotesFactory.createSession();
String p = s.getPlatform();
System.out.println("Platform = " + p);
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
2. This is an application that makes local calls and implements the
Runnable interface:
import lotus.domino.*;
public class platform2 implements Runnable
{
public static void main(String argv[])
{

1596 Domino Designer Programming Guide, Volume 3: JavaScript Classes


platform2 t = new platform2();
NotesThread nt = new NotesThread((Runnable)t);
nt.start();
}
public void run()
{
try
{
Session s = NotesFactory.createSession();
String p = s.getPlatform();
System.out.println("Platform = " + p);
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
3. This is an application that makes local calls and uses the static
NotesThread methods:
import lotus.domino.*;
public class platform3
{
public static void main(String argv[])
{
try
{
NotesThread.sinitThread();
Session s = NotesFactory.createSession();
String p = s.getPlatform();
System.out.println("Platform = " + p);
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
NotesThread.stermThread();
}
}
}

Chapter 9: Java Classes 1597


4. This is an agent program where the code is entered through the
Domino Designer UI. The UI generates everything in the example
except the two lines following // (Your code goes here).
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
String p = session.getPlatform();
System.out.println("Platform = " + p);
} catch(Exception e) {
e.printStackTrace();
}
}
}
5. This is an agent program where the code is imported into Domino
Designer:
import lotus.domino.*;
public class platform4 extends AgentBase
{
public void NotesMain()
{
try
{
Session s = getSession();
String p = s.getPlatform();
System.out.println("Platform =" + p);
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
6. This is an agent program with print output that can be seen by a
browser:
import lotus.domino.*;
import java.io.PrintWriter;
public class platform5 extends AgentBase
{
public void NotesMain()
{
try

1598 Domino Designer Programming Guide, Volume 3: JavaScript Classes


{
Session s = getSession();
String p = s.getPlatform();
PrintWriter pw = getAgentOutput();
pw.println("Platform = " + p);
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
7. This example demonstrates an application that makes remote (IIOP)
calls. The example requires the user to enter the name of the host
Domino server and optionally a user name and password. If a user
name and password is not supplied, the server must allow anonymous
access.
import lotus.domino.*;
public class platform6 implements Runnable
{
String host=null, user="", pwd="";
public static void main(String argv[])
{
if(argv.length<1)
{
System.out.println(
"Need to supply Domino server name");
return;
}
platform6 t = new platform3(argv);
Thread nt = new Thread((Runnable)t);
nt.start();
}
public platform6(String argv[])
{
host = argv[0];
if(argv.length >= 2) user = argv[1];
if(argv.length >= 3) pwd = argv[2];
}
public void run()
{
try
{
Session s = NotesFactory.createSession(
host, user, pwd);
String p = s.getPlatform();
System.out.println("Platform = " + p);

Chapter 9: Java Classes 1599


}
catch (Exception e)
{
e.printStackTrace();
}
}
}

8. To enable SSL in the previous application example, replace:


Session s = NotesFactory.createSession(
host, user, pwd);
With:
String args = new String[1];
args[0] = "-ORBEnableSSLSecurity";
Session s = NotesFactory.createSession(
host, args, user, pwd);
In addition, the Java classpath must be setup so that the class
“TrustedCerts.class” is found. This class file is generated every time the
diiop server starts and contains the server’s certificate. It is normally
found in the server’s data directory\domino\java.
In order to enable SSL for an applet, you should also enable the
attribute “Applet uses CORBA SSL Security” in the “Java Applet
Properties” dialog.
9. This example demonstrates an applet that makes Domino calls.
AppletBase makes the calls locally if possible, remotely otherwise.
import lotus.domino.*;
public class platformApplet extends AppletBase
{
java.awt.TextArea ta;
public void notesAppletInit()
{
setLayout(null);
setSize(100,100);
ta = new java.awt.TextArea();
ta.setBounds(0,0,98,98);
add(ta);
ta.setEditable(false);
setVisible(true);
}
public void notesAppletStart()
{
Session s;
try
{
// Can also do openSession(user, pwd)

1600 Domino Designer Programming Guide, Volume 3: JavaScript Classes


s = this.openSession();
if (s == null) { //not able to make the connection,
warn user
ta.append("Unable to create a session
with the server");
return;
}
String p = s.getPlatform();
ta.append("Platform = " + p);
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
this.closeSession(s);
}
}
)
10. This example demonstrates an applet that makes Domino calls in code
that responds to an event. This code must initialize and terminate a
Domino session if the code is running locally, and must not if the code
is running remotely (IIOP).
import lotus.domino.*;
import java.awt.*;
import java.applet.Applet;
public class commonUserNameApplet extends AppletBase
{
private Button b2;
private String text = "";
Graphics g1;
int j = 0, k = 0;
Dimension dScreen;
public java.awt.TextArea ta;
public Session s;
public void notesAppletInit()
{
g1 = getGraphics();
dScreen = this.getToolkit().getScreenSize();
b2 = new Button("b2 Java Notes Classes");
add(b2);
b2.requestFocus();
ta = new java.awt.TextArea(15,30);
add(ta);
}

Chapter 9: Java Classes 1601


public void paint(Graphics g)
{
b2.move(0, 0);
ta.move(200,0);
}
public void notesAppletStart()
{
try
{
s = this.getSession();
ta.append("User " + s.getCommonUserName()+ "\n");
}
catch(NotesException e)
{
text = e.id + " " + e.text;
}
catch(Exception e)
{
e.printStackTrace();
}
}
public boolean action(Event e, Object o)
{
if(e.target instanceof Button)
{
text = "";
if(e.target.equals(b2))
{
this.b2Test();
}
ta.append(text + "\n");
}
return true;
}
// Java Notes Classes
public void b2Test()
{
try
{
if (isNotesLocal() == true)
NotesThread.sinitThread();
text = "User " + s.getCommonUserName();
}
catch(NotesException e)
{
text = e.id + " " + e.text;

1602 Domino Designer Programming Guide, Volume 3: JavaScript Classes


}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
if (isNotesLocal() == true)
NotesThread.stermThread();
}
}
} // end of Applet

Accessing databases
The Database class represents a Domino database and provides access to
the constituent views, documents, forms, access control list, and properties.
Accessing database properties
Locating a database on a server or the local directory
Opening a database
Creating, compacting, removing, and replicating a database
Examining and adjusting an access control list
Accessing a form
Accessing an outline

Accessing database properties


The following methods access the Database properties:
getACL returns an ACL object representing the access control list of the
database. See Examining and adjusting an access control list.
getAgents (database must be open) returns a java.util.Vector of Agent
objects representing all the agents in the database. See Accessing agents.
getAllDocuments (database must be open) returns a
DocumentCollection object representing all the documents in the
database. See Collecting all documents and unprocessed documents.
getCategories returns a String value containing the categories in the
database; setCategories (database must be open) sets the database
categories to a String value.
getCreated returns a DateTime object representing the date and time
the database was created.

Chapter 9: Java Classes 1603


getCurrentAccessLevel returns an integer containing the user’s access
level to the database. See Examining and adjusting an access control
list.
getDesignTemplateName returns a String value containing the name of
the design template, if any.
getFileName returns a String value containing the database file name.
getFilePath returns a String value containing the database file path.
getFolderRefsEnabled returns true if this database maintains folder
references.
getForms returns a java.util.Vector of Form objects representing the
forms in the database. See Accessing a form.
isDelayUpdates returns true if server updates are delayed (batched) for
better performance; setDelayUpdates (database must be open) batches
updates if set to true.
isFTIndexed returns true if the database is full-text indexed.
isMultiDbSearch returns true if the search index is multi-database.
isOpen returns true if the database is open.
isPrivateAddressBook returns true if the database is a Personal Address
Book; valid only through getAddressBooks in Session.
isPublicAddressBook returns true if the database is a Domino
Directory; valid only through getAddressBooks in Session.
getLastFTIndexed (database must be open) returns a DateTime object
representing the date and time the full-text index, if any, was last
modified.
getLastModified (database must be open) returns a DateTime object
representing the date and time the database was last modified.
getManagers returns a java.util.Vector of String values that contain the
names of users that have Manager access to the database.
getMaxSize returns a long value containing the maximum size of the
database, in kilobytes.
getParent returns a Session object representing the current Domino
session.
getPercentUsed (database must be open to get the correct value) returns
a double value that contains the percent of the total size of a database
that is occupied by real data.
getReplicaID returns a String value containing the database replica ID
in hexadecimal.

1604 Domino Designer Programming Guide, Volume 3: JavaScript Classes


getReplication returns a Replication object representing the replication
information for this database. See below.
getServer returns a String value containing the name of the server on
which the database resides, or null for the local directory.
getSize (the database must be open) returns a double value containing
the database size, in bytes.
getSizeQuota returns an int value containing the database size quota, if
any; setSizeQuota (the database must be open) sets the database size
quota to an int value. You must be an administrator to use
setSizeQuota.
getTemplateName returns a String value containing the template name
of the database if it is a template.
getTitle returns a String value containing the database title; setTitle
(database must be open) sets the title.
getViews returns a java.util.Vector of View objects representing the
named views in the database. See Locating a view or folder.
Each Database object has exactly one Replication object. The following
methods access the Replication properties:
getAbstract returns true if large documents are truncated and
attachments removed; setAbstract truncates large documents and
removes attachments if set to true.
getCutoffDate returns an int value containing today’s date minus the
cutoff interval.
getCutoffInterval returns a long value containing the number of days
after which documents are automatically deleted; setCutoffInterval sets
the cutoff interval.
isCutoffDelete returns true if documents older than the cutoff date are
deleted; setCutoffDelete deletes documents older than the cutoff date.
isDisabled returns true if replication is disabled; setDisabled disables
replication. Unlike NeverReplicate, this property is accessible through
the UI.
isDoNotBrowse returns true if a database is not shown in the “Open
Database” dialog box; setDoNotBrowse prevents a database from being
shown in the “Open Database” dialog box.
isDoNotCatalog returns true if a database is not listed in the database
catalog (catalog.nsf); setDoNotCatalog prevents a database from being
listed in the database catalog.
isHideDesign returns true if a database design is hidden;
setHideDesign hides a database design.

Chapter 9: Java Classes 1605


isIgnoreDeletes returns true if deletions are not replicated;
setIgnoreDeletes prevents replication of deletions.
isIgnoreDestDeletes returns true if deletions are not replicated to
destination databases; setIgnoreDestDeletes prevents replication of
deletions to destination databases.
isMultiDbIndex returns true if a database can be included in
multi-database indexing; setMultiDbIndex includes a database in
multi-database indexing.
isNeverReplicate returns true if replication is disabled;
setNeverReplicate disables replication. Unlike Disabled, this property is
not accessible through the UI.
isNoChronos returns true if background agents are disabled;
setNoChronos disables background agents.
getPriority returns an int value containing the replication priority;
setPriority sets the replication priority.
If you set replication properties, you must save them to make them
permanent. You can reset the current property values back to the last saved
values. You can clear the replication history with clearHistory.

Example: Accessing database properties


This application gets the first database in the local directory and prints its
database properties. The example demonstrates which properties require
that the database be open.
import lotus.domino.*;
import java.util.Vector;
public class accessing extends NotesThread
{
public static void main(String argv[])
{
accessing t = new accessing();
t.start();
}
public void runNotes()
{
try
{
Session s = NotesFactory.createSession();
DbDirectory Dir = s.getDbDirectory(null);
Database db = Dir.getFirstDatabase(Dir.DATABASE);
// Database does not have to be open
System.out.println
("DATABASE NOT OPEN");
System.out.println
("Title:\t\t\t" + db.getTitle());

1606 Domino Designer Programming Guide, Volume 3: JavaScript Classes


System.out.println
("FileName:\t\t" + db.getFileName());
System.out.println
("FilePath:\t\t\t" + db.getFilePath());
System.out.println
("Server:\t\t\t" + db.getServer());
System.out.println
("ReplicaID:\t\t" + db.getReplicaID());
System.out.println
("DesignTemplateName:\t" +
db.getDesignTemplateName());
System.out.println
("TemplateName:\t\t" + db.getTemplateName());
System.out.println
("Categories:\t\t" + db.getCategories());
System.out.println
("IsOpen:\t\t\t" + db.isOpen());
System.out.println
("IsFTIndexed:\t\t" + db.isFTIndexed());
System.out.println
("IsPublicAddressBook:\t" +
db.isPublicAddressBook());
System.out.println
("IsPrivateAddressBook:\t" +
db.isPrivateAddressBook());
System.out.println
("DelayUpdates:\t\t" + db.isDelayUpdates());
System.out.println
("SizeQuota:\t\t" + db.getSizeQuota());
Session ps = db.getParent();
System.out.println
("Parent platform:\t\t" + ps.getPlatform());
System.out.println
("Replication Disabled:\t" +
db.getReplicationInfo().isDisabled());
// Database must be open ...
System.out.println("DATABASE OPEN");
db.open();
// ... to set properties
db.setTitle(db.getTitle() + " Redux");
System.out.println
("Title set to:\t\t" + db.getTitle());
if (db.getCategories() == null)
db.setCategories("Example databases");
else
db.setCategories(db.getCategories()
+ ";Example databases");
System.out.println
("Categories set to:\t\t" + db.getCategories());
db.setDelayUpdates(true);

Chapter 9: Java Classes 1607


System.out.println
("DelayUpdates set to:\t" + db.isDelayUpdates());
db.setSizeQuota(20000000);
System.out.println
("SizeQuota set to:\t\t" + db.getSizeQuota());
// ... and to get these properties
System.out.println
("Created:\t\t\t" + db.getCreated().getLocalTime());
System.out.println
("LastModified:\t\t" +
db.getLastModified().getLocalTime());
System.out.println
("LastFTIndexed:\t\t" +
db.getLastFTIndexed().getLocalTime());
System.out.println
("IsMultiDbSearch:\t\t" + db.isMultiDbSearch());
System.out.println
("Size:\t\t\t" + (int)db.getSize() + " bytes");
System.out.println
("PercentUsed:\t\t" + db.getPercentUsed());
ACL acl = db.getACL();
System.out.println
("ACL UniformAccess:\t" + acl.isUniformAccess());
System.out.println
("CurrentAccessLevel:\t" +
db.getCurrentAccessLevel());
System.out.println
("FolderReferencessEnabled:\t" +
db.getFolderReferencesEnabled());
Vector managers = db.getManagers();
System.out.print("Managers:\t\t");
for (int i=0; i<managers.size(); i++)
System.out.print("[" +
(String)managers.elementAt(i) + "] ");
System.out.println();
Vector views = db.getViews();
System.out.print("Views:\t\t\t");
for (int i=0; i<views.size(); i++)
System.out.print("[" +
((View)views.elementAt(i)).getName() + "]");
System.out.println();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}

1608 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Locating a database on a server or the local directory
The DbDirectory class provides a means to locate databases on servers and
the local directory. To access a particular server, specify its name as the
argument to the getDbDirectory method of Session. The getFirstDatabase
and getNextDatabase methods of DbDirectory return handles to Database
objects. The Name property contains the name of the server or workstation.
The Parent property returns a Session object representing the current
session.
The Database object returned by getFirstDatabase and getNextDatabase is
not open. You can access a subset of the Database methods on the closed
database. You must explicitly call the open method of Database to open the
database to access all methods. See isOpen for details.

Example: Locating a database on a server or the local directory


This agent prints the file name and title of each database and template in
the local directory.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
DbDirectory dir = session.getDbDirectory(null);
String server = dir.getName();
if (server == null) server = "Local";
System.out.println ("Database directory list on server"+
server + "\n");
System.out.println("***DATABASES***\n");
Database db =
dir.getFirstDatabase(DbDirectory.DATABASE);
while (db != null) {
String fn = db.getFileName();
String title = db.getTitle();
System.out.println(fn.toUpperCase() + " - " + title);
db = dir.getNextDatabase(); }
System.out.println("\n***TEMPLATES***\n");
db = dir.getFirstDatabase(DbDirectory.TEMPLATE);
while (db != null) {
String fn = db.getFileName();
String title = db.getTitle();
System.out.println(fn.toUpperCase() + " - " + title);
db = dir.getNextDatabase(); }

Chapter 9: Java Classes 1609


} catch(Exception e) {
e.printStackTrace();
}
}
}

Opening a database
Use the getDatabase method of Session or the openDatabase method of
DbDirectory to open a specified database.
Use the CurrentDatabase property of AgentContext to open the current
database, if your program is an agent.
Use:
openByReplicaID of DbDirectory to open a database whose server and
replica ID are known. You can obtain the replica ID from a database
that is already open with the ReplicaID property of Database.
openIfModified of DbDirectory opens a database only if it was
modified after a specified date.
openMailDatabase of DbDirectory opens the user’s mail database.
getURLDatabase of Session opens the default Web Navigator database.
Use the open method of Database to open a database whose object you set,
for example, with getFirstDatabase, getNextDatabase, or getAddressBooks.
You can access a subset of the Database methods on a closed database, but
must explicitly open the database to access all methods. See isOpen for
details.
The AddressBooks property of Session accesses the Domino Directories and
Personal Address Books available to the current session. The
isPrivateAddressBook and isPublicAddressBook properties of Database
distinguish between Domino Directories and Private Address Books.
For remote sessions only, the resolve method of Session returns the
Database, View, Form, Document, or Agent object that a URL addresses.
Databases can be accessed through the Parent or ParentDatabase property
of objects that the database contains.

Examples: Opening a database


1. This agent opens a local database and prints its title. The user supplies
the database file name, which does not need the .nsf extension, as the
agent comment.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {

1610 Domino Designer Programming Guide, Volume 3: JavaScript Classes


try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
DbDirectory dir = session.getDbDirectory(null);
Database db = dir.openDatabase(agent.getComment());
if (db == null) System.out.println(
"Database open failed");
else System.out.println("Title:\t\t" +
db.getTitle());
} catch(NotesException e) {
if (e.id + NotesError.NOTES_MIN_ERROR_CODE ==
NotesError.NOTES_ERR_NOTAFILE)
System.out.println("No such database");
else {
System.out.println(e.id + " " + e.text);
e.printStackTrace(); }
} catch(Exception e) {
e.printStackTrace();
}
}
}
2. This agent opens the current database.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
System.out.println
("Title:\t\t" + db.getTitle());
System.out.println
("File name:\t" + db.getFileName());
String msg = "closed";
if (db.isOpen()) msg = "open";
System.out.println("Database is " + msg);
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 9: Java Classes 1611


3. This agent shows that the database returned by getFirstDatabase is
closed until opened with the open method.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
DbDirectory dir = session.getDbDirectory(null);
Database db = dir.getFirstDatabase(
DbDirectory.DATABASE);
if (db.isOpen()) System.out.println("Is open");
else System.out.println("Is closed");
db.open();
if (db.isOpen()) System.out.println("Is open");
else System.out.println("Is closed");
} catch(Exception e) {
e.printStackTrace();
}
}
}
4. This agent traverses the local databases and opens the database whose
title is specified as the agent comment.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
DbDirectory dir = session.getDbDirectory(null);
Database db = dir.getFirstDatabase(
DbDirectory.DATABASE);
while (db != null) {
if (db.getTitle() != null)
if (db.getTitle().equalsIgnoreCase(
agent.getComment())) {
db.open();
DocumentCollection dc = db.getAllDocuments();
for (int j=1; j<=dc.getCount(); j++) {
Document doc = dc.getNthDocument(j);
System.out.println
(doc.getItemValueString("Subject")); }

1612 Domino Designer Programming Guide, Volume 3: JavaScript Classes


break; }
db = dir.getNextDatabase(); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

5. This agent opens the user’s mail database.


import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
DbDirectory dir = session.getDbDirectory(null);
Database db = dir.openMailDatabase();
System.out.println("File name:\t" +
db.getFileName());
String msg = "closed";
if (db.isOpen()) msg = "open";
System.out.println("Database is " + msg);
} catch(Exception e) {
e.printStackTrace();
}
}
}
6. This agent opens the database on the server NotesUA1 whose replica
ID is the same as the current database.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
DbDirectory dir = session.getDbDirectory(
"NotesUA1");
Database dbLocal =
agentContext.getCurrentDatabase();
Database dbRemote =
dir.openDatabaseByReplicaID
(dbLocal.getReplicaID());
System.out.println
("Title:\t\t" + dbRemote.getTitle());

Chapter 9: Java Classes 1613


System.out.println
("Server:\t\t" + dbRemote.getServer());
System.out.println
("File path:\t\t" + dbRemote.getFilePath());
String msg = "closed";
if (dbRemote.isOpen()) msg = "open";
System.out.println("Database is " + msg);
} catch(Exception e) {
e.printStackTrace();
}
}
}

Creating, compacting, removing, and replicating a database


Use one of the following methods to create a database.
DbDirectory.createDatabase creates an uninitialized database. A
program can access it, but a user cannot access it through the user
interface because it has no forms or views.
Database.createFromTemplate creates an initialized database based on
an existing template. This database has the design and documents of
the template and can be accessed from the workspace.
Database.createReplica creates an uninitialized replica of an existing
database. The replica must be initialized either by you with the
replicate method or by the user accessing it from the workspace upon
first use.
Database.createCopy creates a copy of the design of an existing
database.
The following methods are available for an existing database:
Database.compact compacts a database.
Database.remove removes (deletes) a database.
Database.replicate replicates a database.

Examples: Creating, compacting, removing, and replicating a database


1. This agent creates a local database named salesdisc.nsf. The database is
not initialized. This database is useful for storing data
programmatically but cannot be used through the workspace.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();

1614 Domino Designer Programming Guide, Volume 3: JavaScript Classes


// (Your code goes here)
DbDirectory dir = session.getDbDirectory(null);
Database db = dir.createDatabase("salesdisc");
} catch(Exception e) {
e.printStackTrace();
}
}
}
2. This agent creates a local database named salesdisc.nsf based on a
template and changes the title. The third argument to
createFromTemplate is for inheriting design changes.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
DbDirectory dir = session.getDbDirectory(null);
Database template = dir.openDatabase(
"discsw50.ntf");
Database db = template.createFromTemplate
(null, "salesdisc", true);
db.setTitle("Sales Discussion Database");
} catch(Exception e) {
e.printStackTrace();
}
}
}
3. This agent creates a local replica of a database on a server and initializes
it.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
DbDirectory dir = session.getDbDirectory("market");
Database basedb = dir.openDatabase("salesdisc");
Database db = basedb.createReplica(null,
"salesdisc");
if (db.replicate("market"))
System.out.println("Replication OK");

Chapter 9: Java Classes 1615


else
System.out.println("Replication errors");
} catch(Exception e) {
e.printStackTrace();
}
}
}

4. This agent creates a copy of names.nsf in the local directory.


import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
DbDirectory dir = session.getDbDirectory(null);
Database basedb = dir.openDatabase("names");
Database db = basedb.createCopy(null,
"namescpy");
db.setTitle("Copy of names.nsf");
} catch(Exception e) {
e.printStackTrace();
}
}
}

Examining and adjusting an access control list


You examine and adjust the access control list (ACL) of a database through
the following classes:
Database contains an ACL property (getACL method) for accessing an
ACL object; a CurrentAccessLevel property (getCurrentAccessLevel)
for determining the current user’s access level; grantAccess,
revokeAccess, and queryAccess methods for creating, removing, and
checking ACL entries; and a Managers property for getting the names
of users with Manager access.
ACL contains getEntry, getFirstEntry, and getNextEntry methods for
accessing ACL entries; a createACLEntry method for creating ACL
entries and a removeACLEntry method for removing ACL entries; a
Roles property (getRoles method) and addRole, deleteRole, and
renameRole methods for accessing roles; a Parent property (getParent
method); an InternetLevel property (getInternetLevel and
setInternetLevel methods) to examine and adjust the maximum internet

1616 Domino Designer Programming Guide, Volume 3: JavaScript Classes


level; and a UniformAccess property (isUniformAccess and
setUniformAccess methods) to enforce, or not enforce, a consistent ACL
across all replicas of a database.
ACLEntry contains IsAdminReaderAuthor (isAdminReaderAuthor and
setAdminReaderAuthor methods), IsAdminServer (isAdminServer and
setAdminServer methods), IsCanCreateDocuments
(isCanCreateDocuments and setCanCreateDocuments methods),
IsCanCreateLSOrJavaAgent (isCanCreateLSOrJavaAgent and
setCanCreateLSOrJavaAgent methods), IsCanCreatePersonalAgent
(isCanCreatePersonalAgent and setCanCreatePersonalAgent methods),
IsCanCreatePersonalFolder (isCanCreatePersonalFolder and
setCanCreatePersonalFolder methods), IsCanCreateSharedlFolder
(isCanCreateSharedFolder and setCanCreateSharedFolder methods),
IsCanDeleteDocuments(isCanDeleteDocuments and
setCanDeleteDocuments methods), Level, IsGroup (isGroup and
setGroup methods), IsPerson (isPerson and setPerson methods),
IsServer (isServer and setServer methods), Name (getName and
setName methods), NameObject (getNameObject method), Parent
(getParent method), and UserType (getUserType and setUserType
methods) properties for examining and adjusting an ACL entry; a
remove method for removing an entry; a Roles property (getRoles
method) and isRoleEnabled, enableRole, and disableRole methods for
associating ACL entries with roles; and IsPublicReader (isPublicReader
and setPublicReader methods) and IsPublicWriter (isPublicWriter and
setPublicWriter methods) properties for becoming public readers and
writers.
The access levels used by the Level and InternetLevel properties are as
follows:
ACL.LEVEL_NOACCESS
ACL.LEVEL_DEPOSITOR
ACL.LEVEL_READER
ACL.LEVEL_AUTHOR
ACL.LEVEL_EDITOR
ACL.LEVEL_DESIGNER
ACL.LEVEL_MANAGER
The permissions properties apply to the access levels as shown in the
following table. “Always” means the permission is always true at that
access level; “never” means the permission is never true at that access level.
“Def yes” means that the permission is true by default at that access level
and can be adjusted. “Def no” means that the permission is false by default
at that access level and can be adjusted.

Chapter 9: Java Classes 1617


Manager Designer Editor Author Reader Depositor No access
CanCreateDocuments Always Always Always Def yes Never Always Never
CanCreateLSOrJava Always Def no Def no Def no Def no Never Never
CanCreatePersonalAgent Always Always Def no Def no Def no Never Never
CanCreatePersonalFolder Always Always Def no Def no Def no Never Never
CanCreateSharedFolder Always Always Def no Never Never Never Never
CanDeleteDocuments Def yes Def yes Def yes Def yes Never Never Never
PublicReader Always Always Always Always Always Def no Def no
PublicWriter Always Always Always Def no Def no Def no Def no

You must use the save method of ACL to write to permanent storage
changes you make to the ACL and ACL entries. Otherwise, the changes are
lost when your program exits.

Example: Examining and adjusting an access control list


This agent displays whether uniform access is enforced, then accesses each
entry in the ACL of the current database and displays its name.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
ACL acl = db.getACL();
if (acl.isUniformAccess())
System.out.println("Uniform access is in effect");
else
System.out.println("Uniform access is not in effect");
System.out.println("Names of ACL entries:");
ACLEntry entry = acl.getFirstEntry();
do {
System.out.println(" " + entry.getName()); }
while ((entry = acl.getNextEntry(entry)) != null);
} catch(Exception e) {
e.printStackTrace();
}
}
}

1618 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Accessing a form
You can access existing forms in a database as follows:
The Forms property of Database returns an array of Form objects.
The getForm method of Database returns a named Form object.
The Form class provides access to properties through the following
methods:
getAliases returns a java.util.Vector of String values containing the
names of all the fields on the form.
getFields returns a java.util.Vector of String values containing the
aliases of the form.
getFormUsers returns a java.util.Vector of String values containing the
$FormUsers field; setFormUsers sets the $FormUsers field to a
java.util.Vector of String values.
isSubform returns true if the form is a subform.
getName returns a String value containing the name of the form.
isProtectReaders returns true if $Readers items are protected from
being overwritten; setProtectReaders protects $Readers items from
being overwritten when set to true.
isProtectUsers returns true if $FormUsers items are protected from
being overwritten; setProtectUsers protects $FormUsers items from
being overwritten when set to true.
getReaders returns a java.util.Vector of String values containing the
$Readers field; setReaders sets the $Readers field to a java.util.Vector of
String values.
getParent returns a Database object representing the database
containing the form.
You can remove an existing form from the database with the remove
method of Form.

Chapter 9: Java Classes 1619


Accessing an outline
You can access and create outlines in a database as follows:
getOutline in Database returns an Outline object representing an
existing outline.
createOutline in Database returns an Outline object representing a
newly created outline.
The Outline class provides getName as a property. The getFirst, getLast,
getNext, getNextSibling, getPrev, and getPrevSibling methods return
OutlineEntry objects that represent entries in the outline. The addEntry,
createEntry, moveEntry, and removeEntry methods manipulate entries in
the outline. You must save an outline after manipulating an entry.
The OutlineEntry class provides access to properties through the following
methods:
getAlias returns a String value containing the programming name of all
the outline.
getDatabase returns a Database object representing the link for a
database outline entry.
getDocument returns a Database object representing the link for a
database outline entry.
getEntryClass returns an int constant containing the class of entry.
getFormula returns a String value containing the formula of an action
outline entry.
getFrameText returns a String value containing the name of the entry’s
frame; setFrameText sets the value.
hasChildren returns true if the entry has child entries.
getImagesText returns a String value containing the name of the entry’s
frame; setImagesText sets the value.
isHidden returns true if the entry is hidden.
isInThisDB returns true if entry refers to an element in the current
database.
isPrivate returns true if an entry is specific to an individual.
getLabel returns a String value containing the entry label; setLabel sets
the value.
getLevel returns an int value containing the level of the entry.
getNamedElement returns a String value containing the name for a
named element outline entry.
getType returns an int constant containing the type of entry.

1620 Domino Designer Programming Guide, Volume 3: JavaScript Classes


getURL returns a String value containing the formula of an action
outline entry.
getView returns a View object representing the for link for a view
outline entry.
You can set class and type attributes with the following methods:
setAction specifies the formula for an outline entry.
setNoteLink sets the link for a database, document, or view outline
entry.
setURL specifies the URL for an outline entry.
setNamedElement specifies the database and named element for an
outline entry.

Accessing views and folders


The View class lets you locate documents within views and folders, and
perform operations on views and folders. You access views and folders
through getView and getViews in Database and getParentView in
Document. Operations that apply to views apply to folders unless explicitly
prohibited.
Accessing view properties
Locating a view
Accessing view columns
Working with view entries and navigators
Removing a view

Accessing view properties


The following methods access the View properties:
getAliases returns a vector of String values containing the aliases of the
view or folder, or null if there are no aliases.
getAllEntries returns a ViewEntryCollection object representing all the
document entries in the view or folder.
getBackgroundColor returns an int value containing a color code for the
background color of the view or folder.
getColumnCount returns an int value containing the number of
columns in the view or folder.
getColumnNames returns a vector of String values containing the
names of the columns in the view or folder.

Chapter 9: Java Classes 1621


getColumns returns a vector of ViewColumn objects representing the
columns in the view or folder.
getCreated returns a DateTime object representing the creation date
and time of the view or folder.
getHeaderLines returns an int value containing the number of lines in
the header of the view or folder.
isAutoUpdate returns true if the front-end view is updated each time a
change occurs in the back-end and false if the updates occur when the
program ends; setAutoUpdate causes updates to occur automatically or
not.
isCalendar returns true if this is a calendar view.
isCategorized returns true if the view or folder is categorized.
isConflict returns true if a calendar view is enabled for conflict
checking.
isDefaultView returns true if this is the default view.
isFolder returns true if this is a folder.
isHierarchical returns true if a view or folder shows response
documents in a hierarchy.
isModified returns true if the view is modified.
isProtectReaders returns true if the $Readers field is protected from
being overwritten during replication; setProtectReaders protects the
$Readers field or not.
getLastModified returns a DateTime object representing the
modification date and time of the view or folder.
getName returns a String value containing the name of the view or
folder.
getParent returns a Database object representing the database
containing the view or folder.
getReaders returns a vector of String values containing the contents of
the $Readers field for the view or folder, or null; setReaders sets the
value of the $Readers field.
getRowLines returns an int value containing the number of lines in each
row.
getSpacing returns an int value containing a code for the spacing
between rows.
getTopLevelEntryCount returns an int value containing the number of
top-level entries in a view.
getUniversalID returns a String value containing the universal ID of the
view or folder.

1622 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Example: Accessing view or folder properties
This agent gets the properties of all the views and folders in the current
database.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Vector views = db.getViews();
for (int i=0; i<views.size(); i++) {
View view = (View)views.elementAt(i);
System.out.println
(view.getName() + " with " +
view.getColumnCount() + " columns in \"" +
view.getParent().getTitle() + "\"");
ViewEntryCollection entries =
view.getAllEntries();
System.out.println
("\tNumber of document entries = " +
entries.getCount());
Vector columnNames = view.getColumnNames();
Vector columns = view.getColumns();
for (int j=0; j<columns.size(); j++) {
String columnName =
((String)columnNames.elementAt(j)).trim();
if (columnName.length() == 0) columnName =
"No Name";
ViewColumn column =
(ViewColumn)columns.elementAt(j);
System.out.println
("\t[" + columnName + "] has width of " +
column.getWidth()); }
Vector aliases = view.getAliases();
for (int j=0; j<aliases.size(); j++)
System.out.println
("\tAlias \"" + aliases.elementAt(j) + "\"");
System.out.println
("\tUniversal ID: " + view.getUniversalID());
System.out.println
("\tCreated: " + view.getCreated());
System.out.println
("\tLast modified: " + view.getLastModified());
System.out.println

Chapter 9: Java Classes 1623


("\tDefault view? " + view.isDefaultView());
System.out.println
("\tAuto update? " + view.isAutoUpdate());
System.out.println
("\tFolder? " + view.isFolder());
System.out.println
("\tCalendar? " + view.isCalendar());
System.out.println
("\tConflict? " + view.isConflict());
System.out.println
("\tModified? " + view.isModified());
System.out.println
("\tProtect readers? " + view.isProtectReaders());
System.out.println
("\tCategorized? " + view.isCategorized());
System.out.println
("\tHierarchical? " + view.isHierarchical());
Vector readers = view.getReaders();
for (int j=0; j<readers.size(); j++)
System.out.println
("\tReader \"" + readers.elementAt(j) + "\"");
switch (view.getBackgroundColor()) {
case RichTextStyle.COLOR_BLACK :
System.out.println(
"\tBackground color is black"); break;
case RichTextStyle.COLOR_WHITE :
System.out.println(
"\tBackground color is white"); break;
default :
System.out.println(
"\tBackground color not black or white"); }
System.out.println
("\tHeaderLines = " + view.getHeaderLines());
System.out.println
("\tRowLines = " + view.getRowLines());
String spacing = null;
switch (view.getSpacing()) {
case View.SPACING_DOUBLE : spacing =
"double"; break;
case View.SPACING_ONE_POINT_25 : spacing =
"1.25"; break;
case View.SPACING_ONE_POINT_50 : spacing =
"1.5"; break;
case View.SPACING_ONE_POINT_75 : spacing =
"1.75"; break;
case View.SPACING_SINGLE : spacing =
"single"; break;
default : spacing = "unknown";
}

1624 Domino Designer Programming Guide, Volume 3: JavaScript Classes


System.out.println
("\tSpacing = " + spacing);
System.out.println
("\tTopLevelEntryCount = " +
view.getTopLevelEntryCount()); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

Locating a view
If the name of the view or folder is known, specify it to getView in
Database. The view or folder name must be specified exactly, including
cascades, remembering to escape backslashes. For example, “Certificates
and ID Information\Cross Certificates” must be specified as “Certificates
and ID Information\\Cross Certificates” if it is a Java string literal.
You can use an alias in place of the name.
To get all views and folders, or to locate a view or folder when the name or
an alias is not known, use getViews in Database. To locate the view or
folder from which a document or view entry is accessed, use getParentView
in Document, getParentView in ViewNavigator, getParent in ViewEntry, or
getParent in ViewEntryCollection.

Examples: Locating a view


1. This example finds a view or folder in the current database, as specified
by the user in the agent comment.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Agent agent = agentContext.getCurrentAgent();
View view = db.getView(agent.getComment());
System.out.println
("View name:\t" + view.getName());
System.out.println
("Last modified:\t" + view.getLastModified());
System.out.println
("Created:\t\t" + view.getCreated());
System.out.println

Chapter 9: Java Classes 1625


("Universal ID:\t" + view.getUniversalID());
} catch(Exception e) {
e.printStackTrace();
}
}
}
2. This example finds the default view in the current database.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Vector views = db.getViews();
for (int i=0; i<views.size(); i++) {
View view = (View)views.elementAt(i);
if (view.isDefaultView()) {
System.out.println
("The default view is \"" +
view.getName() + "\"");
break; } }
} catch(Exception e) {
e.printStackTrace();
}
}
}

Accessing view columns


You can access view or folder columns through getColumns in View, which
returns a ViewColumn object. This object gives you access to properties
through the following methods:
getAlignment returns an int value containing the alignment
(justification) of data in the column.
getDateFmt returns an int value containing the specific format of date
data in the column.
getFontColor returns an int value containing the font color of data in
the column.
getFontFace returns an int value containing the font face of data in the
column.

1626 Domino Designer Programming Guide, Volume 3: JavaScript Classes


getFontPointSize returns an int value containing the font point size of
data in the column.
getFontStyle returns an int value containing the font style of data in the
column.
getFormula returns a String value containing the column formula or
null if the column is the value of a field.
getHeaderAlignment returns an int value containing the alignment
(justification) of the header in the column.
isAccentSensitiveSort if the column is sorted without regard to accent.
isCaseSensitiveSort if the column is sorted without regard to case.
isCategory returns true if the column is categorized.
isField if the column value is based on a field value.
isFormula returns true if the column value is based on a formula.
isHidden returns true if the column is hidden.
isHideDetail returns true if the details for a total column are hidden.
isIcon returns true if the column value is displayed as an icon.
isResize returns true if the column is resizable.
isResortAscending returns true if the column can be resorted in
ascending order.
isResortDescending returns true if the column can be resorted in
descending order.
isResortToView returns true if the column is resortable, that is, if the
user can click on the column header to resort.
isResponse returns true if the column contains only response
documents.
isSecondaryResort returns true if the column is a secondary resortable
column.
isSecondaryResortDescending returns true if the secondary resort is
descending.
isShowTwistie returns true if the expandable column displays a twistie.
isSortDescending returns true if the sorted column is descending.
isSorted returns true if the column is sorted.
getItemName returns a String value containing the name of the item
whose value is in the column or null if the column is a formula.
getListSep returns an int value containing the list (multi-value)
separator for values in the column.

Chapter 9: Java Classes 1627


getNumberAttrib returns an int value containing the attributes for
numeric values in the column.
getNumberDigits returns an int value containing the number of decimal
places for numeric values in the column.
getNumberFormat returns an int value containing the format for
numeric values in the column.
getParent returns a View object representing the view that contains the
column.
getPosition returns an int value containing the position of the column in
the view.
getTimeDateFmt returns an int value containing the format of time-date
data in the column.
getTimeFmt returns an int value containing the format of time data in a
column.
getTimeZoneFmt returns an int value containing the format of the zone
in time-date data in a column.
getTitle returns a String value containing the title of the item or null if
the column has no title.
getWidth returns an int value containing the width of the column.

Working with view entries and navigators


For navigation and access, a view or folder supports view entries, view
entry collections, and view navigators.

View entries
A ViewEntry object represents a row in a view and can be of type category,
document, or total. The following methods access a ViewEntry object:
getChildCount
getColumnIndentLevel
getColumnValues
getDescendantCount
getDocument
getFTSearchScore
getIndentLevel
getPosition
isCategory
isConflict
isDocument

1628 Domino Designer Programming Guide, Volume 3: JavaScript Classes


isTotal
isValid
getNoteID
getParent
getSiblingCount
getUniversalID
The ViewNavigator methods (discussed below) return ViewEntry objects,
as does getEntryByKey in View.

View entry collections


A ViewEntryCollection object represents zero or more ViewEntry objects of
type document (excluding entries of type category and total).
getCount returns the number of entries in the view entry collection;
getParent returns the parent View object; getQuery returns the search
query if the collection is filtered or is the result of a search.
FTSearch filters the collection so that only those entries that meet the
requirements of a search query remain.
getEntry, getFirstEntry, getNextEntry, getLastEntry, and getPrevEntry
return ViewEntry objects from the collection.
addEntry adds an entry to the collection and deleteEntry deletes an
entry from the collection.
removeAll removes all the underlying documents of a view entry
collection from the database; stampAll writes to an item in all the
documents; putAllInFolder puts all the documents in a folder;
removeAllFromFolder removes all the documents from a folder;
updateAll marks all documents of a view entry collection as processed
by an agent.
The methods getAllEntries and getAllEntriesByKey in View return
ViewEntryCollection objects.

View navigators
A ViewNavigator object provides goto methods to position you at a view
entry and get methods to both position you at a view entry and return it.
gotoFirst, getFirst, gotoNext, getNext, gotoLast, getLast, gotoPrev, and
getPrev navigate sequentially.
gotoFirstDocument, getFirstDocument, gotoNextCategory,
getNextCategory, gotoNextDocument, getNextDocument,
gotoLastDocument, getLastDocument, gotoPrevCategory,
getPrevCategory, gotoPrevDocument, and getPrevDocument navigate
sequentially by type of entry.

Chapter 9: Java Classes 1629


gotoEntry, getCurrent, getNth, gotoPos, and getPos navigate to a
specified entry.
gotoNextSibling, getNextSibling, gotoPrevSibling, getPrevSibling,
gotoChild, getChild, gotoParent, and getParent
getMaxLevel and setMaxLevel specify the maximum level of navigation
0-30 (30 by default); getCacheSize and setCacheSize specify the cache
for remote operations only; getParentView gets the parent View object.
The following View methods create ViewNavigator objects. A navigator is
based on the view calling the method.
createViewNav creates a view navigator for all the entries in a view.
createViewNavFrom creates a view navigator for all the entries in a
view starting at a specified entry.
createViewNavFromCategory creates a view navigator for all the
entries in a view under a specified category.
createViewNavFromChildren creates a view navigator for the
immediate children of a specified entry.
createViewNavFromDescendants creates a view navigator for all the
descendants of a specified entry.
createViewNavMaxLevel creates a view navigator for all entries in a
view down to a specified level.

Examples: Working with view entries and navigators


1. This agent gets all the entries in a view of type category.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
ViewNavigator nav = view.createViewNav();
System.out.println("Categories:");
ViewEntry entry = nav.getFirst();
while (entry != null) {
if (entry.isCategory())
System.out.println
("\tPosition " + entry.getPosition('.') +
" has " + entry.getDescendantCount() +
" descendants");
entry = nav.getNext(); }

1630 Domino Designer Programming Guide, Volume 3: JavaScript Classes


} catch(Exception e) {
e.printStackTrace();
}
}
}
2. This agent gets all the entries in a view of type document.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
ViewEntryCollection vec = view.getAllEntries();
System.out.println("Documents:");
ViewEntry entry = vec.getFirstEntry();
while (entry != null) {
System.out.println
("\tPosition " + entry.getPosition('.') + "\t" +

entry.getDocument().getItemValueString("Subject"));
entry = vec.getNextEntry(); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

Removing a view
The remove method of View removes a view or folder from a database.

Accessing documents
The Document class lets you examine and manipulate document attributes
and contents. You gain access to a Document object through methods in the
Database, View, ViewEntry, and DocumentCollection classes. See
“Accessing views and folders” for accessing documents through views. You
can:
Access document properties
Collect all documents and unprocessed documents

Chapter 9: Java Classes 1631


Collect documents by searching
Locate a document by ID
Create a document
Remove a document
Copy a document
Mail a document

Accessing document properties


You access the document properties through the following methods:
getAuthors returns a String vector containing the names of users who
have saved the document.
getColumnValues returns an Object vector containing the column
values in the parent view, or an empty vector if the document is not
accessed through a view.
getCreated returns a DateTime object representing the date and time
the document was created.
getEmbeddedObjects returns an EmbeddedObject object vector
representing the embedded objects in the document (but not file
attachments).
getEncryptionKeys returns a String vector containing the keys used to
encrypt the document; setEncryptionKey sets the keys.
getFolderReferences returns a String vector containing the universal IDs
of the folders that contain the document.
getFTSearchScore returns an int value containing the relevance value if
the document was retrieved from a full-text search.
hasEmbedded returns true if the document has embedded objects.
isDeleted returns true if the document is deleted.
isEncryptOnSend returns true if the document is encrypted when
mailed; setEncryptOnSend sets the encryption attribute.
isNewNote returns true if the document is created but does not yet exist
on disk.
isProfile returns true if the document is a profile document.
isResponse returns true if the document is a response document.
isSaveMessageOnSend returns true if a document is saved when
mailed.
isSentByAgent returns true if the document was mailed by a program.
isSigned returns true if the document is signed.

1632 Domino Designer Programming Guide, Volume 3: JavaScript Classes


isSignOnSend returns true if the document is signed when mailed;
setSignOnSend sets the sign-on-send attribute.
isValid returns true if the document exists (is not a deletion stub).
getItems returns an Item vector representing all the items in the
document.
getKey returns a String value containing the profile key of a profile
document.
getLastAccessed returns a DateTime object representing the date and
time the document was last accessed.
getLastModified returns a DateTime object representing the date and
time the document was last modified.
getNameOfProfile returns a String value containing the profile name of
a profile document.
getNoteID returns a String value containing the NoteID of the
document.
getParentDatabase returns a Database object representing the database
that contains the document.
getParentDocumentUNID returns a String value containing the
universal ID of the parent if the document is a response.
getParentView returns a View object representing the view from which
the document was retrieved, if any.
getResponses returns a DocumentCollection object representing the
immediate responses to this document, if any.
getSigner returns a String value name of signer if the document is
signed.
getSize returns an int value containing the size of the document in
bytes, including any attachments.
getUniversalID returns a String value containing the universal ID of the
document.
getVerifier returns a String value containing the name of the certificate
verifying a signature if the document is signed.

Chapter 9: Java Classes 1633


Example: Accessing document properties
This agent prints properties of a document.
import lotus.domino.*;
import java.util.Vector;
import java.util.Enumeration;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
Document doc = dc.getFirstDocument();
while (doc != null) {
System.out.println("******");
System.out.println(
doc.getItemValueString("Subject"));
Enumeration e = doc.getAuthors().elements();
while (e.hasMoreElements())
System.out.println("Author: " + e.nextElement());
System.out.println("Created: " + doc.getCreated());
if (doc.isNewNote())
System.out.println("Is new note");
if (doc.isResponse())
System.out.println("Parent UNID: " +
doc.getParentDocumentUNID());
if (doc.isSigned()) {
System.out.println("Signed by: " +
doc.getSigner());
System.out.println("Verified by: " +
doc.getVerifier()); }
System.out.println("Last accessed: " +
doc.getLastAccessed());
System.out.println("Verified by: " +
doc.getLastModified());
System.out.println("Note ID: " +
doc.getNoteID());
System.out.println("Universal ID: " +
doc.getUniversalID());
doc = dc.getNextDocument(); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

1634 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Collecting all documents and all unprocessed documents
Use getAllDocuments of Database to get a DocumentCollection object that
contains all the data documents in a database. Use
getUnprocessedDocuments in AgentContext to get documents that depend
on the specifications of the current agent, for example, those documents that
are selected or those documents modified since the agent last ran.
The DocumentCollection class has the following properties and methods for
accessing documents:
getFirstDocument and getNextDocument, which can be used to get the
first and next documents in a loop until the next document is null.
getLastDocument and getPrevDocument, which can be used to get the
last and previous documents in a loop until the previous document is
null.
getCount to get the number of documents in the collection, and
getNthDocument, which can be used to get a particular document in
the sequence.
getDocument locates a specified document in the current document
collection.
In loops, use the getNextDocument and getPrevDocument methods that do
not take a parameter. These methods provide better performance than the
methods that take a Document parameter; in particular, the methods that
take a parameter invalidate the cache for remote (IIOP) operations. Do not
use getCount and getNthDocument for loops for performance reasons.
The documents in a document collection are ordered only if the collection is
the result of a search. Otherwise, you cannot depend on the documents to
be a particular sequence.
Use addDocument and deleteDocument to adjust a DocumentCollection
object after you create it.
When you use an agent to work on unprocessed documents, you must mark
those documents as updated so that they are recognized as old documents
in subsequent runs. Use either updateAll of NotesDocumentCollection or
updateProcessedDoc of AgentContext.
The DocumentCollection class contains the following properties:
getCount returns an int value containing the number of documents in
the collection.
isSorted returns true if the document collection is sorted.

Chapter 9: Java Classes 1635


getParent returns a Database object representing the database that
contains the collection.
getQuery returns a String value that contains the text of the query that
created the collection.

Examples: Collecting all documents and unprocessed documents


1. This agent traverses all the documents in a database.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
Document doc = dc.getFirstDocument();
while (doc != null) {
System.out.println(
doc.getItemValueString("Subject"));
doc = dc.getNextDocument(); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

2. This agent traverses all the unprocessed documents associated with the
current agent. If the agent, for example, processes selected documents,
this code traverses all selected documents.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
DocumentCollection dc =
agentContext.getUnprocessedDocuments();
Document doc = dc.getFirstDocument();
while (doc != null) {
System.out.println(
doc.getItemValueString("Subject"));
doc = dc.getNextDocument(); }
} catch(Exception e) {

1636 Domino Designer Programming Guide, Volume 3: JavaScript Classes


e.printStackTrace();
}
}
}

Collecting documents by searching


FTSearch and Search in Database, and unprocessedFTSearch and
UnprocessedSearch in AgentContext return a DocumentCollection object
containing documents that match a search query. FTSearch in
DatabaseCollection refines a DocumentCollection so that only documents
that match a search query are retained. FTSearch in View and FTSearch in
ViewEntryCollection do the same for those objects. Use FTDomainSearch to
search domain.
For FTSearch and unprocessedFTSearch, the search query is a string that
meets the Notes rules for full-text search queries, requiring that a search
entity be a single word or multiple words enclosed in quotes (escape the
quotes in string constants). Search entities can include ? and * wildcards,
and can be combined by ! (not), & (and), and | (or) operators. For the
complete syntax rules, see search operators in client help.
For search and unprocessedSearch, the search query is a Domino formula.
A database does not have to be full-text indexed for FTSearch and
unprocessedFTSearch to work, but the search is slower. Use updateFTIndex
to create or update a full-text index. Use isFTIndexed to test for the
existence of an index.

Examples: Collecting documents by searching


1. This agent finds all documents containing the word “alpha” or the
string “string beta” through a full-text search.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
if (!db.isFTIndexed()) db.updateFTIndex(true);
DocumentCollection dc =
db.FTSearch("alpha | \"string beta\"");
Document doc = dc.getFirstDocument();
while (doc != null) {
System.out.println(
doc.getItemValueString("Subject"));

Chapter 9: Java Classes 1637


doc = dc.getNextDocument(); }
} catch(Exception e) {
e.printStackTrace();
}
}
}
2. This agent finds all documents whose Subject item contains the word
“Alpha” through an @Contains Domino formula.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc =
db.search("@Contains(Subject; \"Alpha\")");
Document doc = dc.getFirstDocument();
while (doc != null) {
System.out.println(
doc.getItemValueString("Subject"));
doc = dc.getNextDocument(); }
} catch(NotesException e) {
System.out.println(e.id + " " + e.text);
e.printStackTrace();
}
}
}

Locating a document by ID
If you have saved or acquired the note ID or universal ID of a document,
you can find a single document by specifying the ID in getDocumentByID
or getDocumentByUNID of Database. You can get these IDs from
getNoteID and getUniversalID in Document.

Example: Locating a document by ID


This agent demonstrates getting documents whose IDs are stored in a
vector.
import lotus.domino.*;
import java.util.Vector;
import java.util.Enumeration;
public class JavaAgent extends AgentBase {
Vector v;
public void NotesMain() {

1638 Domino Designer Programming Guide, Volume 3: JavaScript Classes


try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
saveIDs(db);
Enumeration e = v.elements();
while (e.hasMoreElements()) {
String id = (String)e.nextElement();
Document doc = db.getDocumentByID(id);
System.out.println(
doc.getItemValueString("Subject"));
}
} catch(Exception e) {
e.printStackTrace();
}
}

public void saveIDs(Database db) {


try {
DocumentCollection dc = db.getAllDocuments();
v = new Vector();
Document doc = dc.getFirstDocument();
while (doc != null) {
v.addElement(doc.getNoteID());
doc = dc.getNextDocument(); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

Creating a document
Use createDocument in Database to create a new document.
See “Creating an item and assigning values” for instructions on adding item
values.
Use save in Document to post the new document to the database in storage.
Otherwise, the new document is lost when the program exits.

Removing a document
Use remove in Document to remove a document from a database. Use
removeAll in DocumentCollection to remove all documents in a collection
from a database.

Chapter 9: Java Classes 1639


Copying a document
Use copyToDatabase to copy a document to a specified database (which can
be the same database in which the document exists).

Mailing a document
Use the send method of Document to mail a document. You can specify the
recipient in the second parameter or omit the parameter and use the SendTo
field of the document. Specify the first parameter as true to include the form
in the mailed document.
To save the document after it is mailed, you can set saveMessageOnSend to
true before mailing the document.
To sign the mail, use isSignOnSend or sign in Document before sending the
mail. Use save afterwards if you want to save the signature. You can check
for a signature with isSigned, and get the signer and signature verifier with
getSigner and getVerifier.
To encrypt the mail, set encryptOnSend in Document to true before sending
the mail. Do not use the encrypt method.
Use createReplyMessage in Document to create a new document that is a
reply to the current document. The new document uses the default mail
form for replies.
Use isSentByAgent in Document to determine if a message was generated
programmatically.

Accessing items
The Item and RichTextItem classes let you examine and manipulate item
properties and contents. You gain access to an Item or RichTextItem object
through various methods in the Document class. The RichTextItem class
inherits from Item, meaning that RichTextItem objects can use all the
properties and methods of Item. You can:
Access item properties
Get an item and its values
Create an item and assign values
Copy an item
Remove an item
Work with a rich text item
Work with an embedded object

1640 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Accessing item properties
You access item properties through the following methods:
getDateTimeValue returns a DateTime object representing the value of
a date-time item; setDateTimeValue sets the item value.
getValueDouble returns a double value containing the value of a
numeric item; setValueDouble sets the item value.
getValueInteger returns an int value containing the value of a numeric
item; setValueInteger sets the item value.
getValueString returns a String value containing the value of a text
item; setValueString sets the item value.
getValues returns a vector of Object objects representing the value or
values of an item; setValues sets the item values().
isAuthors returns true if the item is of type Authors; setAuthors set the
item type regarding Authors.
isEncrypted returns true if the item is to be encrypted; setEncrypted
sets the item encrypted status.
isNames returns true if the item is of type Names; setNames sets the
item type regarding Names.
isProtected returns true if editor access is required to modify the item;
setProtected sets the item protected status.
isReaders returns true if the item is of type Readers; setReaders sets the
item type regarding Readers.
isSigned returns true if the item is signed; setSigned sets the item signed
status.
isSummary returns true if the item value can appear in a view;
setSummary sets the item summary status.
isSaveToDisk returns true if the item is saved when the document is
saved; setSaveToDisk sets the item save status.
getLastModified returns a DateTime object representing the date and
time the item was last modified.
getName returns a String value containing the name of the item.
getParent returns a Document object representing the document that
contains the item.
getText returns a String value containing a text rendition of the item’s
value.
getType returns an int constant representing the item type.
getValueLength returns an int value containing the item’s storage
requirements in bytes.

Chapter 9: Java Classes 1641


Example: Accessing item properties
This agent gets properties for all the items in the first document in a
database.
import lotus.domino.*;
import java.util.Vector;
import java.util.Enumeration;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
Document doc = dc.getFirstDocument();
Enumeration items = doc.getItems().elements();
while (items.hasMoreElements()) {
System.out.println("******");
Item item = (Item)items.nextElement();
System.out.println("Name: " + item.getName());
String type = "Undefined";
switch (item.getType()) {
case Item.ATTACHMENT :
type = "Attachment"; break;
case Item.EMBEDDEDOBJECT :
type = "Embedded object"; break;
case Item.ERRORITEM :
type = "Error item"; break;
case Item.NAMES :
type = "Names"; break;
case Item.AUTHORS :
type = "Authors"; break;
case Item.READERS :
type = "Readers"; break;
case Item.NOTELINKS :
type = "Note links"; break;
case Item.NOTEREFS :
type = "Note references"; break;
case Item.NUMBERS :
type = "Numbers"; break;
case Item.RICHTEXT :
type = "Rich text"; break;
case Item.TEXT :
type = "Text"; break;
case Item.SIGNATURE :
type = "Signature"; break;
case Item.DATETIMES :

1642 Domino Designer Programming Guide, Volume 3: JavaScript Classes


type = "Date-times"; break;
case Item.UNAVAILABLE :
type = "Unavailable"; break;
case Item.UNKNOWN :
type = "Unknown"; break;
case Item.USERDATA :
type = "User data"; break;
case Item.USERID :
type = "User ID"; break;
}
System.out.println("Type: " + type);
if (item.isEncrypted())
System.out.println("Is encrypted");
if (item.isSigned())
System.out.println("Is signed");
if (item.isSummary())
System.out.println("Is summary");
if (item.isProtected())
System.out.println("Is protected");
System.out.println("Text:\n" + item.getText());
}
} catch(Exception e) {
e.printStackTrace();
}
}

Getting an item and its values


If you do not know the name of an item or want to traverse the items in a
document, use getItems in Document; getItem returns a vector of Item
objects. As you access each vector element, use the Item methods to
interrogate and manipulate the object.
To access an item whose name is known, usegetFirstItem in Document.
Items can have the same name, although this practice is discouraged; to
access other than the first item, you must use getItems. Use hasItem in
Document to determine if a document contains a named item.
From the Document level, getItemValueDouble, getItemValueInteger, and
getItemValueString are convenient for obtaining the value of a numeric or
text item that holds a single value. From the Item level, use
getDateTimeValue, getValueDouble, getValueInteger, and getValueString
to get a single date-time, numeric, or text value. Use getValues in Item to
get the values of a single or multi-value item; getValues returns a vector of
Object objects, which must be cast to DateTime, Double, Integer, or String.
In Item, containsValue determines the existence of elements in multi-value
text items.

Chapter 9: Java Classes 1643


Use getText of Item to get a text rendition of an item of any type.
Multi-value items are rendered with a separator, typically the semicolon,
between elements. Use abstract to get a condensed text rendition of an item.

Creating an item and assigning values


Use replaceItemValue or appendItemValue in Document to create an item
and assign a single value. Prefer replaceItemValue unless your intent is to
create another item with the same name.
From the Document level, use replaceItemValue to assign single values to
items (providing that two items do not have the same name). From the Item
level, use setDateTimeValue, setValueDouble, setValueInteger, and
setValueString to set a single date-time, numeric, or text value. Use
setValues in Item to set the values of a single or multi-value item; setValues
passes a vector of DateTime, Double, Integer, or String values. In Item,
qppendToTextList is convenient for adding values to a multi-value text
item.
After creating or replacing an item, you must call save on the Document
object containing the item or the update is lost when the program exits.
You can run a form’s default value, translation, and validation formulas on
the item that corresponds to a field with computeWithForm in Document.
Computed fields are not recalculated when you save a document. If you
change items that affect a computed field and want the new value to be
available immediately (for example, if you want the user to see the new
value in a view or you want to use the new value in a calculation), you must
calculate the value in the program.
The user cannot see an item as a field in the document unless you add the
field to the form design. However, the item exists and can be accessed
programmatically.
You can replace the value of an item in every document of a document
collection with the stampAll method of DocumentCollection. This method
writes immediately to the documents in storage. Be sure to save all
documents (save method of Document) that you have modified before
using stampAll on them. You do not have to save after stampAll.

Copying an item
Use copyItemToDocument in Item to copy the current item to another
document. Use copyAllItems in Document to copy all items in the current
document to another document.
Use copyItem in Document to copy an item to another item in the same
document.

1644 Domino Designer Programming Guide, Volume 3: JavaScript Classes


After copying an item, you must call save for the Document object
containing the new item or the update is lost when the program exits.

Removing an item
Use either remove in Item or removeItem in Document to remove an item
from a document. The remove method removes only the current object —
other items with the same name remain in existence. The removeItem
method removes all items with the specified name.
After removing an item, you must call save for the Document object that
contained the item or the update is lost when the program exits.

Working with a rich text item


The RichTextItem class inherits from Item and so has the same properties
and methods. RichTextItem has methods for working with rich text and
embedded objects. If you do not need the additional methods, you can
access a rich text item as either an Item or RichTextItem object.
When a rich text item is the return value of a method such as getFirstItem in
Document and you want to use the rich text methods, you must cast the
return value to RichTextItem.
The NotesRichTextItem methods are:
getFormattedText returns the value of the rich text item as formatted
text.
appendText, appendRTItem, appendDocLink, addTab, addNewLine, and
addPageBreak build content into a rich text item.
appendParagraphStyle and appendStyle build style attributes into a
rich text item.
getEmbeddedObjects, getEmbeddedObject, and embedObject deal with
embedded objects, object links, and file attachments.
Use createRichTextItem in Document to create a rich text item.
Use createRichTextParagraphStyle and createRichTextStyle in Session to
create RichTextParagraphStyle and RichTextStyle objects. Use getTabs in
RichTextParagraphStyle to get a vector of RichTextTab objects. The
paragraph styles affect alignment, interline spacing, spacing above, spacing
below, left margin, right margin, first line left margin, pagination, and tabs
(position and type). The text styles affect bold, italics, color, special effects,
font type, font size, underlines, and strike through.

Chapter 9: Java Classes 1645


Working with an embedded object
Use getEmbeddedObjects of RichTextItem to get a vector of
EmbeddedObject objects containing all the embedded objects, linked
objects, and file attachments in a rich text item. Use hasEmbedded of
Document to see whether a document contains any embedded objects.
Note This feature is not supported under OS/2, under UNIX, and on the
Macintosh.
To get all the embedded objects in a document, including objects that were
originally embedded in the form from which the document was created, use
getEmbeddedObjects of Document. This property does not include file
attachments.
To locate pre-R4 file attachments not associated with a rich text item, get all
the items in the document, for example, by using getItems of Document.
Test getType property of each item for Item.ATTACHMENT. To get an
attachment of this type, use getAttachment of Document.
You access EmbeddedObject properties through the following methods:
getClass returns a String value containing the name of the application
that created the object (does not apply to attachments).
getFileSize returns an int value containing the size of the object (does
not apply to embedded and linked objects).
getName returns a String value containing the name used to reference
an object that was embedded programmatically.
getObject returns an int value containing the OLE handle for the object.
getParent returns a RichTextItem object representing the item that
contains the object.
getSource returns a String value containing the file name or OLE syntax
for the source document/item of the embedded object.
getType returns an int value containing the type of the object:
EmbeddedObject.EMBED_OBJECTLINK,
EmbeddedObject.EMBED_ATTACHMENT, or
EmbeddedObject.EMBED_OBJECT.
getVerbs returns a vector of String objects representing the verbs that
an OLE/2 embedded object supports.

1646 Domino Designer Programming Guide, Volume 3: JavaScript Classes


EmbeddedObject has the following methods:
activate causes OLE to load the object and returns a handle to the OLE
object (on systems supporting OLE).
doVerb executes an object verb (on systems supporting OLE).
extractFile copies a file attachment to a file.
remove removes the object from its rich text item. You must call save of
Document to implement the removal in storage.

Accessing Domino sessions


The Session class is the root of the Domino Objects containment hierarchy,
providing access to the other Domino objects, and represents the Domino
environment of the current program.
For local calls, the Domino environment is the local Domino directory,
which can belong to a server or a user. For remote (IIOP) calls, the Domino
environment is the server handling the remote requests.
See the following topics:
Accessing session properties
Using environment variables
Accessing agents
Accessing international settings
Working with time
Making a log
Making a newsletter
Representing a name
Evaluating a formula
Searching for free time slots
The Session class also contains the following methods for creating new
Domino objects:
createDateRange
createDateTime
createLog
createName
createNewsletter
createRegistration

Chapter 9: Java Classes 1647


createRichTextParagraphStyle
createRichTextStyle
getDatabase
getDbDirectory
getURLDatabase

Accessing session properties


The following methods access the Session properties:
getAddressBooks returns a java.util.Vector object of Database objects
representing all accessible Domino Directories and Personal Address
Books.
getAgentContext returns an AgentContext object representing the
current agent environment for programs being run as agents.
getCommonUserName returns a String value containing the common
name of the session’s server or user.
getInternational returns an International object representing the
international settings in the operating environment.
isOnServer returns true if the environment is a server.
getNotesVersion returns a String value containing the version of the
session’s server or user.
getPlatform returns a String value containing the operating system
platform.
getServerName returns a String value containing the full name of the
session’s server.
getUserName returns a String value containing the full name of the
session’s server or user.
getUserNameList returns a vector of Name objects representing the
name of the session’s server or user, and the alternate name if
applicable.
getUserNameObject returns a Name object representing the name of the
session’s server or user.

1648 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Using environment variables
The getEnvironmentValue, getEnvironmentString, and setEnvironmentVar
methods retrieve and set environment variables, which are stored in the
local notes.ini file. Use getEnvironmentValue only for numeric environment
variables. Use getEnvironmentString for strings and numeric values.
SetEnvironmentVar prepends a dollar sign ($) to parameter 1, the name of
the environment variable, if the third parameter is false or omitted. The
dollar sign distinguishes user environment variables (name starts with a
dollar sign) and system environment variables (name does not start with a
dollar sign). GetEnvironmentValue and getEnvironmentString prepend a
dollar sign if the second parameter is false or omitted, and do not prepend a
dollar sign if the second parameter is true.
Environment variables are useful for saving state and data between
program invocations where no conflicts are possible. They are also useful
for obtaining Domino environment information, such as KitType, Directory,
Preferences, Domain, Port, and so on.

Example: Using environment variables


This example increments the environment variable $SeqNo by one and
prints the result. (This program would not be reliable on a server for
maintaining a system of sequential numbers.)
import lotus.domino.*;
class seqno extends NotesThread
{
public static void main(String argv[])
{
seqno t = new seqno();
t.start();
}
public void runNotes()
{
try
{
Session s = NotesFactory.createSession();
int seq;
if (s.getEnvironmentValue("SeqNo") == null)
seq = 0;
else
seq =
((Integer)s.getEnvironmentValue("SeqNo")).
intValue();
System.out.println(seq);
seq++;
s.setEnvironmentVar("SeqNo", new Integer(seq));
System.out.println(s.getEnvironmentValue("SeqNo"));

Chapter 9: Java Classes 1649


}
catch (Exception e)
{
e.printStackTrace();
}
}
}

Accessing agents
Two classes provide access to agents: AgentContext and Agent.

AgentContext
The AgentContext class provides a means to access attributes of the current
agent environment for programs that are running as agents. Call
getAgentContext in Session to get the current agent context;
getAgentContext returns null if the program is not running as an agent.
The following methods access the AgentContext properties:
getCurrentAgent returns an Agent object representing the current
agent.
getCurrentDatabase returns a Database object representing the
database containing the current agent.
getDocumentContext returns a Document object representing the
in-memory document when the agent starts.
getEffectiveUserName returns a String value containing the user name
that is in effect for the agent.
getLastExitStatus returns an int value containing the exit status for the
last time the agent ran.
getLastRun returns a DateTime object representing the last time the
agent ran.
getSavedData returns a Document object representing information
stored between invocations of the agent.
getUnprocessedDocuments returns a DocumentCollection object
representing the documents in the database that the agent considers
“unprocessed.”
The unprocessedFTSearch and unprocessedSearch methods return
DocumentCollection objects representing “unprocessed” documents that
meet search criteria. The updateProcessedDoc method marks documents as
“processed” for future searches for new and modified documents.

1650 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Agent
The Agent class represents an agent. You can access the current agent
through getCurrentAgent in AgentContex. You can access all agents in a
database through getAgents in Database. You can access a specified agent
through getAgent in Database.
The following methods access the Agent properties:
getComment returns a String value containing the comment associated
with the agent.
getCommonOwner returns a String value containing the common name
of the user who last modified the agent.
getLastRun returns a DateTime object representing the last time the
agent ran.
getName returns a String value containing the name of the agent.
getOwner returns a String value containing the name of the person who
last modified the agent.
getParent returns a Database object representing the database that
contains the agent.
getQuery returns a String value containing the query used by the agent
to select documents.
getServerName returns a String value containing the name of the server
on which the agent runs; setServerName sets the server name to a string
value (including * for all servers).
getTarget returns an int value defining what documents the agent runs
on.
getTrigger returns an int value defining when the agent runs.
isEnabled returns true if the agent is enabled; setEnabled enables (true)
or disables (false) a scheduled agent.
isNotesAgent returns true if the agent can be activated from a Notes
client.
isPublic returns true if the agent is public.
isWebAgent returns true if the agent can be activated from a browser.
The Agent class contains a remove method to remove the agent from the
database; a run method to run the agent on a local database; a runOnServer
method to run the agent on a remote database; and a save method to save
changes made by setServerName and setEnabled.

Chapter 9: Java Classes 1651


Example: Accessing agents
This agent sends a memo to the managers of the current database
containing the name and comment of each agent in the database.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Document doc = db.createDocument();
RichTextItem rti =
doc.createRichTextItem("Body");
Vector agents = db.getAgents();
for (int i=0; i<agents.size(); i++)
{
Agent agent = (Agent)agents.elementAt(i);
if (agent.isPublic() & agent.isEnabled())
{
rti.appendText(agent.getName());
rti.addTab(2);
rti.appendText(agent.getComment());
rti.addNewLine(1);
}
}
doc.appendItemValue("Subject",
"Public agent summary for " + db.getTitle());
doc.send(false, db.getManagers());
} catch(Exception e) {
e.printStackTrace();
}
}
}

Accessing international settings


The International class represents the international (regional) settings of the
operating environment. You can access the international settings through
getInternational in Session.
The following methods access the International properties:
getCurrencyDigits returns an int value containing the number of
decimal digits for number format.

1652 Domino Designer Programming Guide, Volume 3: JavaScript Classes


getDecimalSep returns a String value containing the decimal separator
for number format.
getThousandsSep returns a String value containing the thousands
separator for number format.
isCurrencyZero returns a boolean value that is true if fractions have a
zero before the decimal point for number format.
getCurrencySymbol returns a String value containing the symbol that
indicates a number is currency.
isCurrencySpace returns a boolean value that is true if currency format
has a space between the currency symbol and the number.
isCurrencySuffix returns a boolean value that is true if the currency
symbol follows the number in currency format.
getAMString returns a String value containing the AM designator.
getPMString returns a String value containing the PM designator.
getTimeSep returns a String value containing the character used to
separate hours, minutes, and seconds.
getTimeZone returns an int value containing the time zone.
isTime24Hour returns a boolean value that is true if the time format is
24-hour.
getDateSep returns a String value containing the character used to
separate months, days, and years.
getToday returns a String value containing the today designator for
time-date format.
getTomorrow returns a String value containing the tomorrow
designator for time-date format.
getYesterday returns a String value containing the yesterday designator
for time-date format.
isDateDMY returns a boolean value that is true if the order of the date
format is day-month-year.
isDateMDY returns a boolean value that is true if the order of the date
format is month-day-year.
isDateYMD returns a boolean value that is true if the order of the date
format is year-month-day.
isDST returns a boolean value that is true if the date format reflects
daylight savings time.
getParent returns a Session object representing the current session.

Chapter 9: Java Classes 1653


Working with time
The DateTime class represents a date-time. Use createDateTime in Session
to create a DateTime object. Various methods throughout the lotus.domino
package return DateTime objects.
The following methods access the DateTime properties:
getLocalTime returns a String value containing a date-time in local
time; setLocalTime with a String parameter sets the date-time to the
local time represented by the String; setLocalTime with int parameters
sets the time component of the date-time; setLocalDate, which takes int
parameters, sets the date component of the date-time.
getGMTTime returns a String value containing a date-time in GMT.
getDateOnly returns a String value containing the date component of a
date-time in local time.
getTimeOnly returns a String value containing the date component of a
date-time in local time.
getTimeZone returns an int value containing the time zone of a
date-time; setTimeZone sets the time zone.
getZoneTime returns a String value containing a date-time adjusted for
the time zone and daylight savings time, which can be changed with
convertToZone.
isDST returns true if a date-time is in daylight-saving time.
getParent returns a Session object representing the current session.
You can change a date-time with the following methods: adjustSecond,
adjustMinute, adjustHour, adjustDay, adjustMonth, and adjustYear. You
can initialize a date-time or date-time component with the following
methods: setNow, setAnyDate, and setAnyTime. You can get the difference
in seconds between two times with timeDifference. You can convert a
date-time to a java.util.Date object with toJavaDate.
The DateRange class represents a range of dates. The following methods
access the DateTime properties:
getEndDateTime returns a DateTime object representing the end date of
the range; setEndDateTime sets the end date of the range to the
specification of a DateTime object.
getStartDateTime returns a DateTime object representing the start date
of the range; setStartDateTime sets the start date of the range to the
specification of a DateTime object.

1654 Domino Designer Programming Guide, Volume 3: JavaScript Classes


getText returns a String value containing the range (two date-times in
String format separated by a hyphen); setText sets the range to the
specification of a String value.
getParent returns a Session object representing the current session.
When you set a DateRange object, write to either StartDate and EndDate, or
Text, but not both. Values written to StartDate or EndDate are immediately
transcribed to Text, and vice-versa. Any changes made to the DateTime
object that is the basis for StartDateTime or EndDateTime also affect the
DateRange object.

Examples: Working with time


1. This agent gets the creation date of the current database into a
DateTime object, prints the date-time in local time and GMT time,
converts the time to zone 15 time, and prints the zone 15 time.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DateTime dt = db.getCreated();
System.out.println
("Creation date of current database");
System.out.println
(" Local time: " + dt.getLocalTime());
System.out.println
(" GMT time: " + dt.getGMTTime());
boolean dst = dt.isDST();
dt.convertToZone(15, dst);
System.out.println
(" Time in zone 15: " + dt.getZoneTime());
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 9: Java Classes 1655


2. This agent determines the earliest and latest creation dates for all the
documents in the current database, and creates a DateRange object
using these dates.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
Document doc = dc.getFirstDocument();
if (doc == null)
System.out.println("No documents");
else {
DateTime dt1 = doc.getCreated();
DateTime dt2 = doc.getCreated();
doc = dc.getNextDocument(doc);
while (doc != null) {
// if dt1 > Created, Created -> dt1
if (dt1.timeDifference(doc.getCreated()) > 0)
dt1 = doc.getCreated();
// if dt2 < Created, Created -> dt2
if (dt2.timeDifference(doc.getCreated()) < 0)
dt2 = doc.getCreated();
doc = dc.getNextDocument(); }
DateRange dr =
session.createDateRange(dt1, dt2);
System.out.println("Date range of documents:");
System.out.println(dr.getText()); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

1656 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Making a log
The Log class provides these methods for opening a log:
openFileLog opens a file for logging.
openMailLog opens a mail memo for logging. The memo is mailed
when the log is closed.
openNotesLog opens a Domino database for logging. Each log entry is a
document with the items A$PROGNAME, A$LOGTIME, A$USER,
A$LOGTYPE, A$ACTION, A$ERRCODE, and A$ERRMSG. Use the
system template alog.ntf to create databases suitable for logging.
openAgentLog opens an agent log for logging. This method is valid
only in an agent. Each agent has an associated log that is accessible
through Agent - Log when the agent is selected.
The close method closes a log.
These methods make entries in the log:
logAction logs an action.
logError logs an error.
The logEvent method can be used on servers to generate events on the
network, including events that can be seen by the NotesView product.
The following methods access the Log properties:
isLogActions returns true if action logging is enabled; setLogActions
sets this property to true (default) or false to enable or disable action
logging.
isLogErrors returns true if error logging is enabled; setLogErrors sets
this property to true (default) or false to enable or disable error logging.
isOverwriteFile returns true if existing files are written over rather than
appended to; setOverwriteFile sets this property to true or false
(default) to enable or disable file overwriting.
getNumActions returns an int value containing the number of actions
logged so far.
getNumErrors returns an int value containing the number of errors
logged so far.
getProgramName returns a String value containing the name of the
script to which the entries apply; setProgramName sets this property.
getParent returns a Session object representing the current session.

Chapter 9: Java Classes 1657


Making a newsletter
A newsletter is a summary document containing a picture of another
document or links to other documents. Use the createNewsletter method of
Session to create a Newsletter object based on a document collection. Use
one of the following methods to format the newsletter:
formatDocument formats the newsletter to contain a picture of one
document in the document collection that is the basis for the newsletter.
You must iterate through the document collection to format all the
documents.
formatMsgWithDoclinks formats the newsletter to contain links to all
the documents in the document collection that is the basis for the
newsletter.
You can use the send method of Document to mail documents based on
newsletters.
You can use the save method of Document to save documents based on
newsletters.
The following methods access the Newsletter properties. The boolean
properties are useful only with formatMsgWithDoclinks.
isDoScore returns true if the formatted newsletter is to contain each
document’s relevance score; set this property to true or false with
setDoScore before calling formatMsgWithDoclinks.
isDoSubject returns true if the formatted newsletter is to contain the
content of each document’s subject field; set this property to true or
false (default) with setDoSubject before calling
formatMsgWithDoclinks.
getSubjectItemName returns the name of the field associated with
isDoSubject; set this property with setSubjectItemName if you set
setDoSubject to true.
getParent returns a Session object representing the current session.

Representing a name
A Name object allows you to represent a user or server name so that you
can access the parts of the name as properties. Use createName in Session to
create a Name object and specify a name. If the name is in the form of a
hierarchical name, it is treated as a hierarchical name; otherwise, it is
treated as a flat name. Use getUserNameList to get a vector of Name objects
representing the user name and alternate user name; use
getUserNameObject in Session to get a Name object representing the
current user or server.

1658 Domino Designer Programming Guide, Volume 3: JavaScript Classes


The following methods access the Name properties. These methods return
null for undefined properties.
isHierarchical returns true if the name is hierarchical.
getAbbreviated returns a String value containing the abbreviated form
of a hierarchical name.
getCanonical returns a String value containing the canonical form of a
hierarchical name.
getCommon returns a String value containing the common name (CN=)
component of a hierarchical name.
getCountry returns a String value containing the country (C=)
component of a hierarchical name.
getOrganization returns a String value containing the organization (O=)
component of a hierarchical name.
getOrgUnit1 returns a String value containing the first organizational
unit (OU=) component of a hierarchical name.
getOrgUnit2 returns a String value containing the second
organizational unit (OU=) component of a hierarchical name.
getOrgUnit3 returns a String value containing the third organizational
unit (OU=) component of a hierarchical name.
getOrgUnit4 returns a String value containing the fourth organizational
unit (OU=) component of a hierarchical name.
getKeyword returns a String value containing the
country\organization\organizational unit 1\organizational unit
2\organizational unit 3\organizational unit 4.
getGeneration returns a String value containing the generation
component of a hierarchical name (Q=), for example, “Jr.”
getGiven returns a String value containing the given component of a
hierarchical name (G=).
getInitials returns a String value containing the initials component of a
hierarchical name (I=).
getSurname returns a String value containing the surname part of a
name.
getADMD returns a String value containing the administration
management domain name component of a hierarchical name (A=).
getPRMD returns a String value containing the private management
domain name component of a hierarchical name (P=).
getLanguage returns a String value containing the language associated
with a name.

Chapter 9: Java Classes 1659


getParent returns a Session object representing the current session.
getAddr821 returns a String value containing an Internet address in
RFC 821 format.
getAddr822Comment1 returns a String value containing the Comment1
part of an Internet address in RFC 822 format.
getAddr822Comment2 returns a String value containing the Comment2
part of an Internet address in RFC 822 format.
getAddr822Comment3 returns a String value containing the Comment3
part of an Internet address in RFC 822 format.
getAddr822LocalPart returns a String value containing the LocalPart
part of an Internet address in RFC 822 format.
getAddr822Phrase returns a String value containing the Phrase part of
an Internet address in RFC 822 format.

1660 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Chapter 10
Java Classes A-Z

These are the lotus.domino classes that access the Domino Objects.
Following each class are alphabetical descriptions of the properties and
methods for that class. A “property” consists of the Java methods that
get/set properties of Domino Objects. To find the property or method you
want, turn to the class that the property or method belongs to.
The Domino Objects classes start with ACL. Preceding them are the
specifications for the supporting classes AgentBase, AppletBase, Base,
NotesError, NotesException, NotesFactory, and NotesThread, the general
methods getURL, recycle, and toString, and the Visibility interface. Also
listed are the constants used by the Domiono Objects classes.

Properties and methods with ECL security


The following tables list the properties and methods affected by an execute
control list (ECL). Those properties cannot be accessed or set and those
methods do not execute on the workstation unless the marked ECL
priveleges are granted to the formula’s signer.
The ECL flags listed in the table are:
Access to current file system (file)
Access to current database (cur)
Access to environment variables (env)
Access to external programs (prog)
Ability to send mail (mail)
Ability to read other databases (read)
Ability to modify other databases (mod)
ACL file cur env prog mail read mod
createACLEntry X X
deleteRole X X
continued

1661
ACL file cur env prog mail read mod
getEntry X X
getFirstEntry X X
getNextEntry X X
renameRole X X
save X X X

ACLEntry file cur env prog mail read mod


disableRole X X
enableRole X X
isRoleEnabled X X
remove X X

Agent file cur env prog mail read mod


remove X X
run X X
runOnServer X

AgentContext file cur env prog mail read mod


unprocessedFTSearch X X
updateProcessedDoc X

Database file cur env prog mail read mod


setCategories X X
isDelayUpdates X X
setSizeQuota X X
setTitle X X
compact X
createDocument X X
FTSearch X X
getAgent X X
getDocumentByID X X
getDocumentByUNID X X
continued

1662 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Database file cur env prog mail read mod
getDocumentByURL X X
getForm X X
getProfileDocument X X
getURLHeader X X
getView X X
grantAccess X X
queryAccess X X
replicate X X
revokeAccess X X
search X X
unprocessedFTSearch X X
updateFTIndex X X

Document file cur env prog mail read mod


appendItemValue X X
computeWithForm X X
copyAllItems X X
setEncryptionKeys X X
setUniversalID X X
copyItem X X
copyToDatabase X X
createReplyMessage X X X
createRichTextItem X X
encrypt X X
makeResponse X X
putInFolder X X
remove X X
removeFromFolder X X
removeItem X X
renderToRTItem X X
replaceItemValue X X
continued

Chapter 10: Java Classes A–Z 1663


Document file cur env prog mail read mod
save X X
send X X X
sign X X

DocumentCollection file cur env prog mail read mod


FTSearch X*
getFirstDocument X*
getLastDocument X*
getNextDocument X*
getNthDocument X*
getPrevDocument X*
putAllInFolder X X
removeAll X X
removeAllFromFolder X X
stampAll X X
updateAll X

* For these methods in DocumentCollection, access to read a database


implies access to elements within the database without explicitly
checking for ECL privileges.
EmbeddedObject file cur env prog mail read mod
extractFile X
remove X

Form file cur env prog mail read mod


setFormUsers X
setProtectReaders X
setProtectUsers X
setReaders X
remove X

1664 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Item file cur env prog mail read mod
setDateTimeValue X X
setAuthors X
setEncrypted X
setNames X X
setProtected X X
setReaders X X
setSaveToDisk X X
setSigned X X
setSummary X X
setValueDouble X X
setValueInteger X X
setValues X X
setValueString X X
abstractText X*
appendToTextList X X
containsValue X*
copyToDocument X X
remove X X

* For abstractText and containsValue, access to read a database implies


access to elements within the database without explicitly checking for
ECL privileges.
Log file cur env prog mail read mod
close X
logAction (to database) X
logAction (to file) X
logAction X X
(to mail message)
logAction (to agent) X
logError (to database) X
logError (to file) X
continued

Chapter 10: Java Classes A–Z 1665


Log file cur env prog mail read mod
logError (to mail X X
message)
logError (to agent) X
openFileLog X

Newsletter file cur env prog mail read mod


formatDocument X
formatMsgWithDoclinks X

RichTextItem file cur env prog mail read mod


addNewLine X X
addTab X X
appendDocLink X X
getEmbeddedObject X
(OLE)
appendRTItem X X
appendText X X
embedObject (file) X X X
embedObject (OLE) X X X

Session file cur env prog mail read mod


freeTimeSearch X
getDatabase X
getEnvironmentString X
setEnvironmentVar X
updateProcessedDoc X

View file cur env prog mail read mod


getAliases X*
getColumns X*
getCreated X*
isAutoUpdate X X* X
isCalendar X*
continued

1666 Domino Designer Programming Guide, Volume 3: JavaScript Classes


View file cur env prog mail read mod
isDefaultView X*
isFolder X*
isProtectReaders X X* X
getLastModified X*
getName X*
getParent X*
getReaders X* X
getUniversalID X*
FTSearch X*
getAllDocumentsByKey X*
getChild X*
getDocumentByKey X*
getFirstDocument X*
getLastDocument X*
getNextDocument X*
getNextSibling X*
getNthDocument X*
getParentDocument X*
getPrevDocument X*
getPrevSibling X*
refresh X*
remove X X* X

* For the View class, access to read a database implies access to


elements within the database without explicitly checking for
ECL privileges.

Chapter 10: Java Classes A–Z 1667


AgentBase class

AgentBase class
Notes agents must extend AgentBase and use NotesMain() as the entry
point for their functional code. Use getSession() to create a Session object.
For output to browsers as well as Notes clients (the Java console), create a
PrintWriter object with getAgentOutput().
The specification (public methods) of the AgentBase class is as follows:
public class AgentBase extends NotesThread {
protected Session m_session;
public AgentBase();
public final void startup(AgentInfo info);
public final void runNotes() throws NotesException;
public void NotesMain();
public Session getSession();
public boolean isRestricted();
public PrintWriter getAgentOutput();
public void setDebug(boolean debug);
public void setTrace(boolean trace);
public void dbgMsg(String msg, PrintStream ps);
public void dbgMsg(String msg, PrintWriter pw);
public void dbgMsg(String msg);

AppletBase class
Applets must extend AppletBase or JAppletBase and use notesAppletInit(),
notesAppletStart(), and notesAppletStop() as the entry points for their
functional code. Use getSession() or getSession(String user, String pwd) to
create a Session object.
The specification (public methods) of the AppletBase class is as follows:
public class AppletBase extends Applet
implements DominoAppletBase {
public Session getSession() throws NotesException;
public Session getSession(String user, String pwd)
throws NotesException;
public Session openSession() throws NotesException;
public Session openSession(String user, String pwd)
throws NotesException;
public void closeSession(Session session)
throws NotesException;
public final void init();
public void notesAppletInit();
public final void start();

1668 Domino Designer Programming Guide, Volume 3: JavaScript Classes


NotesError and NotesException classes

public void notesAppletStart();


public final void stop();
public void notesAppletStop();
public final void destroy();
public void notesAppletDestroy();
public boolean isNotesLocal();
}

JAppletBase class is the same except that it imports com.sun.java.swing.*


and extends JApplet rather than Applet.
For more information, see “Running a Java program” in the chapter “Java
Classes Coding Guidelines.”

NotesError and NotesException classes


The NotesException class extends java.lang.Exception to include exception
handling for Domino. The NotesError class defines public static final
variables for Domino error codes.

Catching a Domino exception


To catch a Domino exception, specify the parameter of the catch clause as
type NotesException. The NotesException class contains the following
public variables:
NotesException.id, of type int, contains the error code.
NotesException.text, of type String, contains the error text.
The following example prints the error code and text if a Domino exception
is thrown.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
DbDirectory dir = session.getDbDirectory(null);
Database db =
dir.openDatabase(agent.getComment());
if (db == null) System.out.println(
"Database open failed");
else System.out.println(
"Title:\t\t" + db.getTitle());

Chapter 10: Java Classes A–Z 1669


NotesError and NotesException classes

} catch(NotesException e) {
System.out.println(e.id + " " + e.text);
e.printStackTrace();
} catch(Exception e) {
e.printStackTrace();
}
}
}
The following example demonstrates checking for the Domino error
NOTES_ERR_NOTAFILE.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
DbDirectory dir = session.getDbDirectory(null);
Database db =
dir.openDatabase(agent.getComment());
if (db == null)
System.out.println("Database open failed");
else System.out.println(
"Title:\t\t" + db.getTitle());
} catch(NotesException e) {
if (e.id == NotesError.NOTES_ERR_NOTAFILE)
System.out.println("Database open failed");
else {
System.out.println(e.id + " " + e.text);
e.printStackTrace(); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

1670 Domino Designer Programming Guide, Volume 3: JavaScript Classes


NotesError and NotesException classes

The class NotesException


The specification of the NotesException class is as follows:
public final class NotesException extends UserException {
public int id;
public String text;
public NotesException();
public NotesException(int _id, String _text);
}
UserException extends java.lang.Exception.

The class NotesError


The specification of the NotesError interface follows. The constants defined
in NotesError are for the lotus.domino classes, which start with
NotesError.NOTES_MIN_ERROR_CODE. This value is 4000.
interface NotesError{
const long NOTES_MIN_ERROR_CODE = 4000;
const long NOTES_ERR_ERROR = NOTES_MIN_ERROR_CODE+0
const long NOTES_ERR_SYS_OUT_OF_MEMORY =
NOTES_MIN_ERROR_CODE+1;
const long NOTES_ERR_SYS_LOAD_OUT_OF_MEM =
NOTES_MIN_ERROR_CODE+2;
const long NOTES_ERR_SYS_FILE_NOT_FOUND =
NOTES_MIN_ERROR_CODE+3;
const long NOTES_ERR_SYS_DICT_NOT_ON_PATH =
NOTES_MIN_ERROR_CODE+4;
const long NOTES_ERR_ERROR2 = NOTES_MIN_ERROR_CODE+5;
const long NOTES_ERR_SYS_RESOURCE_NOT_FOUND =
NOTES_MIN_ERROR_CODE+8;
const long NOTES_ERR_SYS_LOADING_RESOURCE =
NOTES_MIN_ERROR_CODE+9;
const long NOTES_ERR_SYS_LOCKING_RESOURCE =
NOTES_MIN_ERROR_CODE+10;
const long NOTES_ERR_SYS_FREEING_RESOURCE =
NOTES_MIN_ERROR_CODE+11;
const long NOTES_ERR_SYS_NOSUCH_RESOURCE =
NOTES_MIN_ERROR_CODE+12;
const long NOTES_ERR_SYS_WARNING_TITLE =
NOTES_MIN_ERROR_CODE+16;

Chapter 10: Java Classes A–Z 1671


NotesError and NotesException classes

const long NOTES_ERR_MAIL_COPEN_FAILED =


NOTES_MIN_ERROR_CODE+26;
const long NOTES_ERR_MAIL_PAOPEN_FAILED =
NOTES_MIN_ERROR_CODE+27;
const long NOTES_ERR_MAIL_LAOPEN_FAILED =
NOTES_MIN_ERROR_CODE+28;
const long NOTES_ERR_MAIL_VIM_MESSAGE =
NOTES_MIN_ERROR_CODE+29;
const long NOTES_ERR_MAIL_CANT_CREATE =
NOTES_MIN_ERROR_CODE+30;
const long NOTES_ERR_MAIL_UNKNOWN_PROP =
NOTES_MIN_ERROR_CODE+31;
const long NOTES_ERR_MAIL_INVALID_MSG =
NOTES_MIN_ERROR_CODE+32;
const long NOTES_ERR_MAIL_NOPUBLIC_GRP =
NOTES_MIN_ERROR_CODE+33;
const long NOTES_ERR_MAIL_NOPRIVATE_GRP =
NOTES_MIN_ERROR_CODE+34;
const long NOTES_ERR_MAIL_GRPCREATE_FAILED =
NOTES_MIN_ERROR_CODE+35;
const long NOTES_ERR_MAIL_GROUP_DELETED =
NOTES_MIN_ERROR_CODE+36;
const long NOTES_ERR_MAIL_NAME_REQUIRED =
NOTES_MIN_ERROR_CODE+37;
const long NOTES_ERR_FAILURE = NOTES_MIN_ERROR_CODE+38;
const long NOTES_ERR_NOSUCH_VIEW = NOTES_MIN_ERROR_CODE+39;
const long NOTES_ERR_NOFTINDEX = NOTES_MIN_ERROR_CODE+40;
const long NOTES_ERR_DBCREATE_FAILED =
NOTES_MIN_ERROR_CODE+41;
const long NOTES_ERR_DBDELETE_FAILED =
NOTES_MIN_ERROR_CODE+42;
const long NOTES_ERR_DBOPEN_FAILED = NOTES_MIN_ERROR_CODE+43;
const long NOTES_ERR_INVALID_FORMULA =
NOTES_MIN_ERROR_CODE+44;
const long NOTES_ERR_INVALID_DATE = NOTES_MIN_ERROR_CODE+45;
const long NOTES_ERR_COPY_FAILED = NOTES_MIN_ERROR_CODE+46;

1672 Domino Designer Programming Guide, Volume 3: JavaScript Classes


NotesError and NotesException classes

const long NOTES_ERR_VIEWOPEN_FAILED =


NOTES_MIN_ERROR_CODE+47;
const long NOTES_ERR_NOTEDEL_FAILED =
NOTES_MIN_ERROR_CODE+48;
const long NOTES_ERR_NEXTITEM_FAILED =
NOTES_MIN_ERROR_CODE+49;
const long NOTES_ERR_FINDITEM_FAILED =
NOTES_MIN_ERROR_CODE+50;
const long NOTES_ERR_MODLOAD_FAILED =
NOTES_MIN_ERROR_CODE+51;
const long NOTES_ERR_PROCFIND_FAILED =
NOTES_MIN_ERROR_CODE+52;
const long NOTES_ERR_RTWRITE_FAILED =
NOTES_MIN_ERROR_CODE+53;
const long NOTES_ERR_RTCONVERT_FAILED =
NOTES_MIN_ERROR_CODE+54;
const long NOTES_ERR_FTSRCH_FAILED = NOTES_MIN_ERROR_CODE+55;
const long NOTES_ERR_QUERY_FAILED = NOTES_MIN_ERROR_CODE+56;
const long NOTES_ERR_DOCSEARCH_FAILED =
NOTES_MIN_ERROR_CODE+57;
const long NOTES_ERR_ITEMCOPY_FAILED =
NOTES_MIN_ERROR_CODE+58;
const long NOTES_ERR_CREATENOTE_FAILED =
NOTES_MIN_ERROR_CODE+59;
const long NOTES_ERR_DBNOACCESS = NOTES_MIN_ERROR_CODE+60;
const long NOTES_ERR_UNAME_LOOKUP = NOTES_MIN_ERROR_CODE+61;
const long NOTES_ERR_SESOPEN_FAILED =
NOTES_MIN_ERROR_CODE+62;
const long NOTES_ERR_DATABASE_NOTOPEN =
NOTES_MIN_ERROR_CODE+63;
const long NOTES_ERR_SESSION_DATECONV =
NOTES_MIN_ERROR_CODE+64;
const long NOTES_ERR_SESSION_VALNOTSUPP =
NOTES_MIN_ERROR_CODE+65;
const long NOTES_ERR_CANT_GETNTH = NOTES_MIN_ERROR_CODE+66;
const long NOTES_ERR_ATTACH_FAILED = NOTES_MIN_ERROR_CODE+67;
const long NOTES_ERR_DETACH_FAILED = NOTES_MIN_ERROR_CODE+68;

Chapter 10: Java Classes A–Z 1673


NotesError and NotesException classes

const long NOTES_ERR_EXTRACT_FAILED =


NOTES_MIN_ERROR_CODE+69;
const long NOTES_ERR_DIRSEARCH_FAILED =
NOTES_MIN_ERROR_CODE+70;
const long NOTES_ERR_BAD_INDEX = NOTES_MIN_ERROR_CODE+71;
const long NOTES_ERR_NOSUCH_DIRECTORY =
NOTES_MIN_ERROR_CODE+72;
const long NOTES_ERR_CDTEXTCREATE_FAILED =
NOTES_MIN_ERROR_CODE+73;
const long NOTES_ERR_CDASSIM_FAILED =
NOTES_MIN_ERROR_CODE+74;
const long NOTES_ERR_NOT_RT_ITEM = NOTES_MIN_ERROR_CODE+75;
const long NOTES_ERR_FORMCOMP_FAILED =
NOTES_MIN_ERROR_CODE+76;
const long NOTES_ERR_FORMEVAL_FAILED =
NOTES_MIN_ERROR_CODE+77;
const long NOTES_ERR_ITEMCREATE_FAILED =
NOTES_MIN_ERROR_CODE+78;
const long NOTES_ERR_DECRYPT_FAILED =
NOTES_MIN_ERROR_CODE+79;
const long NOTES_ERR_NOTLOCAL_IDX = NOTES_MIN_ERROR_CODE+80;
const long NOTES_ERR_FTIDX_FAILED = NOTES_MIN_ERROR_CODE+81;
const long NOTES_ERR_NOTEOPEN_FAILED =
NOTES_MIN_ERROR_CODE+82;
const long NOTES_ERR_RENDER_FAILED = NOTES_MIN_ERROR_CODE+83;
const long NOTES_ERR_FILENOTFOUND = NOTES_MIN_ERROR_CODE+84;
const long NOTES_ERR_UNKNOWN_TYPE = NOTES_MIN_ERROR_CODE+85;
const long NOTES_ERR_FILEOPEN_FAILED =
NOTES_MIN_ERROR_CODE+86;
const long NOTES_ERR_FILEWRITE_FAILED =
NOTES_MIN_ERROR_CODE+87;
const long NOTES_ERR_DATE_NOTSET = NOTES_MIN_ERROR_CODE+88;
const long NOTES_ERR_NODBNAME = NOTES_MIN_ERROR_CODE+89;
const long NOTES_ERR_TEMPLCOPY_FAILED =
NOTES_MIN_ERROR_CODE+90;
const long NOTES_ERR_BAD_UNID = NOTES_MIN_ERROR_CODE+91;

1674 Domino Designer Programming Guide, Volume 3: JavaScript Classes


NotesError and NotesException classes

const long NOTES_ERR_UNAME_REQ = NOTES_MIN_ERROR_CODE+92;


const long NOTES_ERR_GETACL_FAILED = NOTES_MIN_ERROR_CODE+93;
const long NOTES_ERR_ACLENTRY_FAILED =
NOTES_MIN_ERROR_CODE+94;
const long NOTES_ERR_ACL_INVALID = NOTES_MIN_ERROR_CODE+95;
const long NOTES_ERR_QUERYACL_FAILED =
NOTES_MIN_ERROR_CODE+96;
const long NOTES_ERR_REFRESH_FAILED =
NOTES_MIN_ERROR_CODE+97;
const long NOTES_ERR_OLEPKG_FAILED = NOTES_MIN_ERROR_CODE+98;
const long NOTES_ERR_TMPFILE_FAILED =
NOTES_MIN_ERROR_CODE+99;
const long NOTES_ERR_READFILE_FAILED =
NOTES_MIN_ERROR_CODE+100;
const long NOTES_ERR_RTRENDER_FAILED =
NOTES_MIN_ERROR_CODE+101;
const long NOTES_ERR_WRONG_CLASS = NOTES_MIN_ERROR_CODE+102;
const long NOTES_ERR_INVALID_ID = NOTES_MIN_ERROR_CODE+103;
const long NOTES_ERR_INVALID_AGENT =
NOTES_MIN_ERROR_CODE+104;
const long NOTES_ERR_VIEWCLONE_FAILED =
NOTES_MIN_ERROR_CODE+105;
const long NOTES_ERR_NOVIEWNAME = NOTES_MIN_ERROR_CODE+106;
const long NOTES_ERR_NEWSGROUPDB_FAILED =
NOTES_MIN_ERROR_CODE+107;
const long NOTES_ERR_NONEWSGROUPNAME =
NOTES_MIN_ERROR_CODE+108;
const long NOTES_ERR_LOG_DBOPEN_FAILED =
NOTES_MIN_ERROR_CODE+135;
const long NOTES_ERR_LOG_FOPEN_FAILED =
NOTES_MIN_ERROR_CODE+136;
const long NOTES_ERR_LOG_CDCREATE_FAILED =
NOTES_MIN_ERROR_CODE+137;
const long NOTES_ERR_LOG_MAILLOG_FAILED =
NOTES_MIN_ERROR_CODE+138;
const long NOTES_ERR_MEM_HVPOOLFULL =
NOTES_MIN_ERROR_CODE+139;

Chapter 10: Java Classes A–Z 1675


NotesError and NotesException classes

const long NOTES_ERR_COPYACL_FAILED =


NOTES_MIN_ERROR_CODE+150;
const long NOTES_ERR_DOC_NOTINVIEW =
NOTES_MIN_ERROR_CODE+151;
const long NOTES_ERR_NOFTQUERY = NOTES_MIN_ERROR_CODE+152;
const long NOTES_ERR_NOITEMNAME = NOTES_MIN_ERROR_CODE+153;
const long NOTES_ERR_NOTEUPDATE_FAILED =
NOTES_MIN_ERROR_CODE+154;
const long NOTES_ERR_NOTELOCATE_FAILED =
NOTES_MIN_ERROR_CODE+155;
const long NOTES_ERR_VIEWDEL_FAILED =
NOTES_MIN_ERROR_CODE+156;
const long NOTES_ERR_LOG_CONSTRUCT_FAILED =
NOTES_MIN_ERROR_CODE+157;
const long NOTES_ERR_SEM_ALLOC_FAILED =
NOTES_MIN_ERROR_CODE+158;
const long NOTES_ERR_LOOKUP_FAILED =
NOTES_MIN_ERROR_CODE+159;
const long NOTES_ERR_SEND_FAILED = NOTES_MIN_ERROR_CODE+160;
const long NOTES_ERR_NCREATE_FAILED =
NOTES_MIN_ERROR_CODE+161;
const long NOTES_ERR_MACRO_IDTBL_FAILED =
NOTES_MIN_ERROR_CODE+162;
const long NOTES_ERR_MACRO_RUN_FAILED =
NOTES_MIN_ERROR_CODE+163;
const long NOTES_ERR_DBOPEN_NOTLOCAL =
NOTES_MIN_ERROR_CODE+164;
const long NOTES_ERR_SIGN_NOPERM = NOTES_MIN_ERROR_CODE+165;
const long NOTES_ERR_ENCRYPT_NOPERM =
NOTES_MIN_ERROR_CODE+166;
const long NOTES_ERR_ENCRYPT_FAILED =
NOTES_MIN_ERROR_CODE+167;
const long NOTES_ERR_NOSENDTO = NOTES_MIN_ERROR_CODE+168;
const long NOTES_ERR_LOG_EVENTPUT_FAILED =
NOTES_MIN_ERROR_CODE+169;
const long NOTES_ERR_LOG_INVALID_EVTYPE =
NOTES_MIN_ERROR_CODE+170;

1676 Domino Designer Programming Guide, Volume 3: JavaScript Classes


NotesError and NotesException classes

const long NOTES_ERR_LOG_INVALID_SEVERITY =


NOTES_MIN_ERROR_CODE+171;
const long NOTES_ERR_NO_NEWSLETTERDOCS =
NOTES_MIN_ERROR_CODE+172;
const long NOTES_ERR_MAILDBOPEN_FAILED =
NOTES_MIN_ERROR_CODE+173;
const long NOTES_ERR_NEWSLETTER_FAILED =
NOTES_MIN_ERROR_CODE+174;
const long NOTES_ERR_DFLT_VID_FAILED =
NOTES_MIN_ERROR_CODE+175;
const long NOTES_ERR_KEYFIND_FAILED =
NOTES_MIN_ERROR_CODE+176;
const long NOTES_ERR_RTTEXT_FAILED =
NOTES_MIN_ERROR_CODE+177;
const long NOTES_ERR_RTDOCLINK_FAILED =
NOTES_MIN_ERROR_CODE+178;
const long NOTES_ERR_NOPERM_DISKIO =
NOTES_MIN_ERROR_CODE+179;
const long NOTES_ERR_NOPERM_SIGN = NOTES_MIN_ERROR_CODE+180;
const long NOTES_ERR_NOPERM_ENCRYPT =
NOTES_MIN_ERROR_CODE+181;
const long NOTES_ERR_NOPERM_ENVIRON =
NOTES_MIN_ERROR_CODE+182;
const long NOTES_ERR_NOPERM_ANY = NOTES_MIN_ERROR_CODE+183;
const long NOTES_ERR_NOSERV_DB = NOTES_MIN_ERROR_CODE+184;
const long NOTES_ERR_INVALID_DB = NOTES_MIN_ERROR_CODE+185;
const long NOTES_ERR_INVALID_CREDEL =
NOTES_MIN_ERROR_CODE+186;
const long NOTES_ERR_INVALID_DOC = NOTES_MIN_ERROR_CODE+187;
const long NOTES_ERR_DBS_MUST_MATCH =
NOTES_MIN_ERROR_CODE+188;
const long NOTES_ERR_RESPONSE_FAILED =
NOTES_MIN_ERROR_CODE+189;
const long NOTES_ERR_NOLISTS = NOTES_MIN_ERROR_CODE+190;
const long NOTES_ERR_CONTAINS_FAILED =
NOTES_MIN_ERROR_CODE+191;

Chapter 10: Java Classes A–Z 1677


NotesError and NotesException classes

const long NOTES_ERR_MUSTBE_STRING =


NOTES_MIN_ERROR_CODE+192;
const long NOTES_ERR_DESVIEW_FAILED =
NOTES_MIN_ERROR_CODE+193;
const long NOTES_ERR_ITEMARR_FAILED =
NOTES_MIN_ERROR_CODE+194;
const long NOTES_ERR_SRVSEARCH_FAILED =
NOTES_MIN_ERROR_CODE+195;
const long NOTES_ERR_UNKNOWN_SRCHTYPE =
NOTES_MIN_ERROR_CODE+196;
const long NOTES_ERR_MUSTCALL_FIRSTDB =
NOTES_MIN_ERROR_CODE+197;
const long NOTES_ERR_ALLDOCS_FAILED =
NOTES_MIN_ERROR_CODE+198;
const long NOTES_ERR_ITYPENOT_TEXT =
NOTES_MIN_ERROR_CODE+199;
const long NOTES_ERR_INVALID_ITYPE =
NOTES_MIN_ERROR_CODE+200;
const long NOTES_ERR_NOSUCH_FOLDER =
NOTES_MIN_ERROR_CODE+201;
const long NOTES_ERR_ADDRBOOK_FAILED =
NOTES_MIN_ERROR_CODE+202;
const long NOTES_ERR_NOTCONTEXT_DB =
NOTES_MIN_ERROR_CODE+203;
const long NOTES_ERR_LTDACCESS_FAILED =
NOTES_MIN_ERROR_CODE+204;
const long NOTES_ERR_LTDUPDATE_FAILED =
NOTES_MIN_ERROR_CODE+205;
const long NOTES_ERR_BADVIEW_VERSION =
NOTES_MIN_ERROR_CODE+206;
const long NOTES_ERR_NEED_ADT = NOTES_MIN_ERROR_CODE+207;
const long NOTES_ERR_ACLWRITE_FAILED =
NOTES_MIN_ERROR_CODE+208;
const long NOTES_ERR_RENAME_FAILED =
NOTES_MIN_ERROR_CODE+209;
const long NOTES_ERR_NOSUCH_ROLENAME =
NOTES_MIN_ERROR_CODE+210;

1678 Domino Designer Programming Guide, Volume 3: JavaScript Classes


NotesError and NotesException classes

const long NOTES_ERR_PRIVNAME_FAILED =


NOTES_MIN_ERROR_CODE+211;
const long NOTES_ERR_READPRIV_FAILED =
NOTES_MIN_ERROR_CODE+212;
const long NOTES_ERR_DELPRIV_FAILED =
NOTES_MIN_ERROR_CODE+213;
const long NOTES_ERR_DELENTRY_FAILED =
NOTES_MIN_ERROR_CODE+214;
const long NOTES_ERR_NOSERV_EVENTS =
NOTES_MIN_ERROR_CODE+215;
const long NOTES_ERR_INVALID_ACLENTRYNAME =
NOTES_MIN_ERROR_CODE+216;
const long NOTES_ERR_ENTRYNAME_FAILED =
NOTES_MIN_ERROR_CODE+217;
const long NOTES_ERR_NOTLOCAL_REPL =
NOTES_MIN_ERROR_CODE+218;
const long NOTES_ERR_REPL_FAILED = NOTES_MIN_ERROR_CODE+219;
const long NOTES_ERR_NOTLOCAL_COMPACT =
NOTES_MIN_ERROR_CODE+220;
const long NOTES_ERR_COMPACT_FAILED =
NOTES_MIN_ERROR_CODE+221;
const long NOTES_ERR_TIMEADJUST_FAILED =
NOTES_MIN_ERROR_CODE+222;
const long NOTES_ERR_NOSUCH_EMBED = NOTES_MIN_ERROR_CODE+223;
const long NOTES_ERR_NOSUCH_EOFILE =
NOTES_MIN_ERROR_CODE+224;
const long NOTES_ERR_NOSUCH_PATH = NOTES_MIN_ERROR_CODE+225;
const long NOTES_ERR_EMBEDARR_FAILED =
NOTES_MIN_ERROR_CODE+226;
const long NOTES_ERR_NOADDRS_FOUND =
NOTES_MIN_ERROR_CODE+227;
const long NOTES_ERR_DUP_ROLENAME = NOTES_MIN_ERROR_CODE+228;
const long NOTES_ERR_CANTCREATE_FOLDER =
NOTES_MIN_ERROR_CODE+229;
const long NOTES_ERR_NOTERENDER_FAILED =
NOTES_MIN_ERROR_CODE+230;
const long NOTES_ERR_NOFROMFIELD = NOTES_MIN_ERROR_CODE+231;

Chapter 10: Java Classes A–Z 1679


NotesError and NotesException classes

const long NOTES_ERR_TEXTLIST_FAILED =


NOTES_MIN_ERROR_CODE+232;
const long NOTES_ERR_NOTA_DOCUMENT =
NOTES_MIN_ERROR_CODE+233;
const long NOTES_ERR_VALIDATE_FAILED =
NOTES_MIN_ERROR_CODE+234;
const long NOTES_ERR_ABSTRACT_BUFFER =
NOTES_MIN_ERROR_CODE+235;
const long NOTES_ERR_ABSTRACTING_TEXT =
NOTES_MIN_ERROR_CODE+236;
const long NOTES_ERR_DESAGENT_FAILED =
NOTES_MIN_ERROR_CODE+237;
const long NOTES_ERR_MIXED_ARRAY = NOTES_MIN_ERROR_CODE+238;
const long NOTES_ERR_INVALID_DOCLINK =
NOTES_MIN_ERROR_CODE+239;
const long NOTES_ERR_TEXTLIST_BAD_INPUT =
NOTES_MIN_ERROR_CODE+240;
const long NOTES_ERR_CANTREMOVE = NOTES_MIN_ERROR_CODE+241;
const long NOTES_ERR_CANTENCRYPT = NOTES_MIN_ERROR_CODE+242;
const long NOTES_ERR_CANTCLOSEDB = NOTES_MIN_ERROR_CODE+243;
const long NOTES_ERR_CANTRUN_OLEOBJ =
NOTES_MIN_ERROR_CODE+244;
const long NOTES_ERR_CANTSHOW_OLEOBJ =
NOTES_MIN_ERROR_CODE+245;
const long NOTES_ERR_NOEMBEDDED_OBJ =
NOTES_MIN_ERROR_CODE+246;
const long NOTES_ERR_NOSUCH_EMBEDCLASS =
NOTES_MIN_ERROR_CODE+247;
const long NOTES_ERR_CANTGET_DBSUMMARY =
NOTES_MIN_ERROR_CODE+248;
const long NOTES_ERR_CANTCOPY_ITEMTYPE =
NOTES_MIN_ERROR_CODE+249;
const long NOTES_ERR_NEED_DB = NOTES_MIN_ERROR_CODE+250;
const long NOTES_ERR_NEED_NOTE = NOTES_MIN_ERROR_CODE+251;
const long NOTES_ERR_CANT_LINK_OLE1 =
NOTES_MIN_ERROR_CODE+252;

1680 Domino Designer Programming Guide, Volume 3: JavaScript Classes


NotesError and NotesException classes

const long NOTES_ERR_ROLENAME_TOOBIG =


NOTES_MIN_ERROR_CODE+253;
const long NOTES_ERR_EOARRAY_FAILED =
NOTES_MIN_ERROR_CODE+254;
const long NOTES_ERR_ATTACHINFO_FAILED =
NOTES_MIN_ERROR_CODE+255;
const long NOTES_ERR_QUOTAINFO_FAILED =
NOTES_MIN_ERROR_CODE+256;
const long NOTES_ERR_DOCNOTSAVED = NOTES_MIN_ERROR_CODE+257;
const long NOTES_ERR_ACLNEXT_INVALID =
NOTES_MIN_ERROR_CODE+258;
const long NOTES_ERR_NOTAFILE = NOTES_MIN_ERROR_CODE+259;
const long NOTES_ERR_CANTFIND_ATTACHMENT =
NOTES_MIN_ERROR_CODE+260;
const long NOTES_ERR_NOSUCH_VERB = NOTES_MIN_ERROR_CODE+261;
const long NOTES_ERR_DOVERB_FAILED =
NOTES_MIN_ERROR_CODE+262;
const long NOTES_ERR_INVALID_ADTTYPE =
NOTES_MIN_ERROR_CODE+263;
const long NOTES_ERR_FTQUERY_FAILED =
NOTES_MIN_ERROR_CODE+264;
const long NOTES_ERR_NOSUCH_DBID = NOTES_MIN_ERROR_CODE+265;
const long NOTES_ERR_OPENBYRID_FAILED =
NOTES_MIN_ERROR_CODE+266;
const long NOTES_ERR_BAD_UNPROCFT = NOTES_MIN_ERROR_CODE+267;
const long NOTES_ERR_AGENT_NO_RECURSION =
NOTES_MIN_ERROR_CODE+268;
const long NOTES_ERR_CANTGET_MAILSERVER =
NOTES_MIN_ERROR_CODE+269;
const long NOTES_ERR_BAD_NOTEID = NOTES_MIN_ERROR_CODE+270;
const long NOTES_ERR_DBSECURITY = NOTES_MIN_ERROR_CODE+271;
const long NOTES_ERR_DELETE_AGENT = NOTES_MIN_ERROR_CODE+272;
const long NOTES_ERR_RUN_AGENT = NOTES_MIN_ERROR_CODE+273;
const long NOTES_ERR_NOSUCH_DOCINDEX =
NOTES_MIN_ERROR_CODE+274;

Chapter 10: Java Classes A–Z 1681


NotesError and NotesException classes

const long NOTES_ERR_BAD_SOURCE_CLASS =


NOTES_MIN_ERROR_CODE+275;
const long NOTES_ERR_CANT_CHANGE_DEFACL =
NOTES_MIN_ERROR_CODE+276;
const long NOTES_ERR_LINKNOCLASS = NOTES_MIN_ERROR_CODE+277;
const long NOTES_ERR_CANTDO_ARRAYOFARRAY =
NOTES_MIN_ERROR_CODE+278;
const long NOTES_ERR_SESSION_CLOSED =
NOTES_MIN_ERROR_CODE+279;
const long NOTES_ERR_CANTOPEN_URLDB =
NOTES_MIN_ERROR_CODE+280;
const long NOTES_ERR_NEED_URL = NOTES_MIN_ERROR_CODE+281;
const long NOTES_ERR_INVALID_URL = NOTES_MIN_ERROR_CODE+282;
const long NOTES_ERR_INVALID_URLHEADER =
NOTES_MIN_ERROR_CODE+283;
const long NOTES_ERR_NOSUCH_URLHEADER =
NOTES_MIN_ERROR_CODE+284;
const long NOTES_ERR_NOUNPROC_DOCS =
NOTES_MIN_ERROR_CODE+285;
const long NOTES_ERR_EMBED_FAILED = NOTES_MIN_ERROR_CODE+286;
const long NOTES_ERR_NODEL_CURRENTDB =
NOTES_MIN_ERROR_CODE+287;
const long NOTES_ERR_INVALID_TIMEEXPR =
NOTES_MIN_ERROR_CODE+288;
const long NOTES_ERR_RECURSIVE_RENDER =
NOTES_MIN_ERROR_CODE+289;
const long NOTES_ERR_INVALID_ITEM = NOTES_MIN_ERROR_CODE+290;
const long NOTES_ERR_NOMOVETO_PRIV1STUSE =
NOTES_MIN_ERROR_CODE+291;
const long NOTES_ERR_SAMESRV_REPLICA =
NOTES_MIN_ERROR_CODE+292;
const long NOTES_ERR_CANT_SIGN = NOTES_MIN_ERROR_CODE+293;
const long NOTES_ERR_NO_MATCH = NOTES_MIN_ERROR_CODE+294;
const long NOTES_ERR_AMBIGUOUS_MATCH =
NOTES_MIN_ERROR_CODE+295;
const long NOTES_ERR_DBALREADY_OPEN =
NOTES_MIN_ERROR_CODE+296;

1682 Domino Designer Programming Guide, Volume 3: JavaScript Classes


NotesError and NotesException classes

const long NOTES_ERR_OLE_NOTAVAIL = NOTES_MIN_ERROR_CODE+297;


const long NOTES_ERR_ARRAY_NOGOOD = NOTES_MIN_ERROR_CODE+298;
const long NOTES_ERR_REGARG_NOTGIVEN =
NOTES_MIN_ERROR_CODE+299;
const long NOTES_ERR_MISSING_CERTID =
NOTES_MIN_ERROR_CODE+300;
const long NOTES_ERR_NOCERT_CTX = NOTES_MIN_ERROR_CODE+301;
const long NOTES_ERR_REGFAILED = NOTES_MIN_ERROR_CODE+302;
const long NOTES_ERR_SRVREGFAILED = NOTES_MIN_ERROR_CODE+303;
const long NOTES_ERR_CERTREGFAILED =
NOTES_MIN_ERROR_CODE+304;
const long NOTES_ERR_XCERTFAILED = NOTES_MIN_ERROR_CODE+305;
const long NOTES_ERR_RECERTFAILED = NOTES_MIN_ERROR_CODE+306;
const long NOTES_ERR_NOSUCH_BOOL = NOTES_MIN_ERROR_CODE+307;
const long NOTES_ERR_CANTSWITCH_ID =
NOTES_MIN_ERROR_CODE+308;
const long NOTES_ERR_NOSUCH_MAILPATH =
NOTES_MIN_ERROR_CODE+309;
const long NOTES_ERR_BAD_IDFILE = NOTES_MIN_ERROR_CODE+310;
const long NOTES_ERR_CANTADD_USER = NOTES_MIN_ERROR_CODE+311;
const long NOTES_ERR_CANTADD_SERV = NOTES_MIN_ERROR_CODE+312;
const long NOTES_ERR_CANTADD_CERT = NOTES_MIN_ERROR_CODE+313;
const long NOTES_ERR_NOCURRENT_AGENT =
NOTES_MIN_ERROR_CODE+314;
const long NOTES_ERR_AGENTLOG_FAILED =
NOTES_MIN_ERROR_CODE+315;
const long NOTES_ERR_NOSUCH_CERTIDTYPE =
NOTES_MIN_ERROR_CODE+316;
const long NOTES_ERR_NOCURRENT_FTRESULT =
NOTES_MIN_ERROR_CODE+317;
const long NOTES_ERR_IDTBL_FAILED = NOTES_MIN_ERROR_CODE+318;
const long NOTES_ERR_PROF_ARG_MISSING =
NOTES_MIN_ERROR_CODE+319;
const long NOTES_ERR_NOSUCH_PROFILE =
NOTES_MIN_ERROR_CODE+320;

Chapter 10: Java Classes A–Z 1683


NotesError and NotesException classes

const long NOTES_ERR_PROFUPDATE_FAILED =


NOTES_MIN_ERROR_CODE+321;
const long NOTES_ERR_PROFDELETE_FAILED =
NOTES_MIN_ERROR_CODE+322;
const long NOTES_ERR_NOSUCH_ARG = NOTES_MIN_ERROR_CODE+323;
const long NOTES_ERR_WRONG_UNID_LEN =
NOTES_MIN_ERROR_CODE+324;
const long NOTES_ERR_DESFORM_FAILED =
NOTES_MIN_ERROR_CODE+325;
const long NOTES_ERR_FORMDEL_FAILED =
NOTES_MIN_ERROR_CODE+326;
const long NOTES_ERR_NOCLOSE_CURRDB =
NOTES_MIN_ERROR_CODE+327;
const long NOTES_ERR_FREETIME_FAILED =
NOTES_MIN_ERROR_CODE+328;
const long NOTES_ERR_UNIFORM_FAILED =
NOTES_MIN_ERROR_CODE+329;
const long NOTES_ERR_GETOPTION_FAILED =
NOTES_MIN_ERROR_CODE+330;
const long NOTES_ERR_MARKREAD_FAILED =
NOTES_MIN_ERROR_CODE+331;
const long NOTES_ERR_MARKUNREAD_FAILED =
NOTES_MIN_ERROR_CODE+332;
const long NOTES_ERR_MULTIDB_FAILED =
NOTES_MIN_ERROR_CODE+333;
const long NOTES_ERR_ADDPROF_FAILED =
NOTES_MIN_ERROR_CODE+334;
const long NOTES_ERR_ULOOKUP_FAILED =
NOTES_MIN_ERROR_CODE+335;
const long NOTES_ERR_INVALID_OBJECT =
NOTES_MIN_ERROR_CODE+336;
const long NOTES_ERR_STAMP_FAILED = NOTES_MIN_ERROR_CODE+337;
const long NOTES_ERR_BAD_ORGUNIT = NOTES_MIN_ERROR_CODE+338;
const long NOTES_ERR_BAD_FTSORT = NOTES_MIN_ERROR_CODE+339;
const long NOTES_ERR_NOTCONTEXT_COLLEC =
NOTES_MIN_ERROR_CODE+340;

1684 Domino Designer Programming Guide, Volume 3: JavaScript Classes


NotesError and NotesException classes

const long NOTES_ERR_ECLACCESS_FAILED =


NOTES_MIN_ERROR_CODE+341;
const long NOTES_ERR_W32DOM_FAILED =
NOTES_MIN_ERROR_CODE+342;
const long NOTES_ERR_W32DOM_NOFIRSTUSER =
NOTES_MIN_ERROR_CODE+343;
const long NOTES_ERR_W32DOM_BADPLATFORM =
NOTES_MIN_ERROR_CODE+344;
const long NOTES_ERR_W32DOM_BADNETAPI32 =
NOTES_MIN_ERROR_CODE+345;
const long NOTES_ERR_W32DOM_DOMAIN_CONTROLLER =
NOTES_MIN_ERROR_CODE+346;
const long NOTES_ERR_TOOMANY_SORT_KEYS =
NOTES_MIN_ERROR_CODE+347;
const long NOTES_ERR_BAD_KEYTYPE = NOTES_MIN_ERROR_CODE+348;
const long NOTES_ERR_CANT_SELF_ASSIMILATE =
NOTES_MIN_ERROR_CODE+349;
const long NOTES_ERR_CANT_SELF_COPY =
NOTES_MIN_ERROR_CODE+350;
const long NOTES_ERR_POP3_FAILED = NOTES_MIN_ERROR_CODE+351;
const long NOTES_ERR_ARRCREATE_FAILED =
NOTES_MIN_ERROR_CODE+352;
const long NOTES_ERR_AGSAVE_FAILED =
NOTES_MIN_ERROR_CODE+353;
const long NOTES_ERR_CANTREMOVE_AGC =
NOTES_MIN_ERROR_CODE+354;
const long NOTES_ERR_CANTENCRYPT_AGC =
NOTES_MIN_ERROR_CODE+355;
const long NOTES_ERR_RTSTYLE_CREATEFAILED =
NOTES_MIN_ERROR_CODE+356;
const long NOTES_ERR_RTSTYLE_APPENDFAILED =
NOTES_MIN_ERROR_CODE+357;
const long NOTES_ERR_RTSTYLE_BADFONT =
NOTES_MIN_ERROR_CODE+358;
const long NOTES_ERR_NO_CONTEXTDB = NOTES_MIN_ERROR_CODE+359;
const long NOTES_ERR_NULL_APPENDLIST =
NOTES_MIN_ERROR_CODE+360;

Chapter 10: Java Classes A–Z 1685


NotesError and NotesException classes

const long NOTES_ERR_NOSUCH_JAVA_TYPE =


NOTES_MIN_ERROR_CODE+361;
const long NOTES_ERR_INVALID_JARRAY =
NOTES_MIN_ERROR_CODE+362;
const long NOTES_ERR_RTSTYLE_BADBOOL =
NOTES_MIN_ERROR_CODE+363;
const long NOTES_ERR_RTSTYLE_BADFONTSIZE =
NOTES_MIN_ERROR_CODE+364;
const long NOTES_ERR_RTSTYLE_BADCOLOR =
NOTES_MIN_ERROR_CODE+365;
const long NOTES_ERR_RTSTYLE_BADEFFECT =
NOTES_MIN_ERROR_CODE+366;
const long NOTES_ERR_NOTREMOTE_DB = NOTES_MIN_ERROR_CODE+367;
const long NOTES_ERR_RTITEM_EXISTS =
NOTES_MIN_ERROR_CODE+368;
const long NOTES_ERR_NOFORM = NOTES_MIN_ERROR_CODE+369;
const long NOTES_ERR_NOTA_VECTOR = NOTES_MIN_ERROR_CODE+370;
const long NOTES_ERR_SERVER_SWITCH =
NOTES_MIN_ERROR_CODE+371;
const long NOTES_ERR_DBDIR_THREAD = NOTES_MIN_ERROR_CODE+372;
const long NOTES_ERR_NO_COLLECTION =
NOTES_MIN_ERROR_CODE+373;
const long NOTES_ERR_NOT_IN_SESSION =
NOTES_MIN_ERROR_CODE+374;
const long NOTES_ERR_INVALID_NAME = NOTES_MIN_ERROR_CODE+375;
const long NOTES_ERR_DELETED = NOTES_MIN_ERROR_CODE+376;
const long NOTES_ERR_NOT_LOCAL = NOTES_MIN_ERROR_CODE+377;
const long NOTES_ERR_INVALID_RANGE =
NOTES_MIN_ERROR_CODE+378;
const long NOTES_ERR_OBJECT_NOT_FOUND =
NOTES_MIN_ERROR_CODE+379;
const long NOTES_ERR_INVALID_TIMEZONE =
NOTES_MIN_ERROR_CODE+383;
const long NOTES_ERR_FOLDERREFS_NOT_SUPPORTED_BY_DB =
NOTES_MIN_ERROR_CODE+386;
const long NOTES_ERR_DBFOLDERREFS_NOT_ENABLED =
NOTES_MIN_ERROR_CODE+387;

1686 Domino Designer Programming Guide, Volume 3: JavaScript Classes


NotesError and NotesException classes

const long NOTES_ERR_VIEWNAV_BAD_ENTRY =


NOTES_MIN_ERROR_CODE+391;
const long NOTES_ERR_VIEWNAV_BAD_MAX =
NOTES_MIN_ERROR_CODE+392;
const long NOTES_ERR_VIEWNAV_BAD_POS =
NOTES_MIN_ERROR_CODE+393;
const long NOTES_ERR_VIEWNAV_BAD_PARENT =
NOTES_MIN_ERROR_CODE+394;
const long NOTES_ERR_NOT_IMPLEMENTED =
NOTES_MIN_ERROR_CODE+395;
const long NOTES_ERR_VIEW_INVALID_COLUMN =
NOTES_MIN_ERROR_CODE+396;
const long NOTES_ERR_RTPSTYLE_APPENDFAILED =
NOTES_MIN_ERROR_CODE+397;
const long NOTES_ERR_RTPSTYLE_TOOMANYTABS =
NOTES_MIN_ERROR_CODE+398;
const long NOTES_ERR_RTPSTYLE_OUTOFRANGE =
NOTES_MIN_ERROR_CODE+399;
const long NOTES_ERR_RTPSTYLE_BADALIGN =
NOTES_MIN_ERROR_CODE+400;
const long NOTES_ERR_RTPSTYLE_BADSPACING =
NOTES_MIN_ERROR_CODE+401;
const long NOTES_ERR_RTPSTYLE_BADPAGINATE =
NOTES_MIN_ERROR_CODE+402;
const long NOTES_ERR_ACL_MISSING = NOTES_MIN_ERROR_CODE+403;
const long NOTES_ERR_SESSION_MISSING =
NOTES_MIN_ERROR_CODE+404;
const long NOTES_ERR_DATABASE_MISSING =
NOTES_MIN_ERROR_CODE+405;
const long NOTES_ERR_DOCUMENT_MISSING =
NOTES_MIN_ERROR_CODE+406;
const long NOTES_ERR_VIEW_MISSING = NOTES_MIN_ERROR_CODE+407;
const long NOTES_ERR_PARENT_MISSING =
NOTES_MIN_ERROR_CODE+408;
const long NOTES_ERR_NOT_RICHTEXT = NOTES_MIN_ERROR_CODE+409;
const long NOTES_ERR_PSTYLE_MISSING =
NOTES_MIN_ERROR_CODE+410;

Chapter 10: Java Classes A–Z 1687


NotesError and NotesException classes

const long NOTES_ERR_REMOVEALL_FAILED =


NOTES_MIN_ERROR_CODE+411;
const long NOTES_ERR_ENTRY_NOTE_FROM_COLLECTION =
NOTES_MIN_ERROR_CODE+412;
const long NOTES_ERR_NOTE_NOT_FROM_COLLECTION =
NOTES_MIN_ERROR_CODE+413;
const long NOTES_ERR_ADDENTRY_DUP = NOTES_MIN_ERROR_CODE+414;
const long NOTES_ERR_ADDENTRY_FAILED =
NOTES_MIN_ERROR_CODE+415;
const long NOTES_ERR_MACRO_SNM_ENABLE_FAILED =
NOTES_MIN_ERROR_CODE+416;
const long NOTES_ERR_SYNCH_RUN_AGENT =
NOTES_MIN_ERROR_CODE+417;
const long NOTES_ERR_SYNCH_NOOLE = NOTES_MIN_ERROR_CODE+418;
const long NOTES_ERR_RTPSTYLE_BADTABTYPE =
NOTES_MIN_ERROR_CODE+419;
const long NOTES_ERR_GETALLENTRIES_FAILED =
NOTES_MIN_ERROR_CODE+420;
const long NOTES_ERR_EXECUTESETUP_FAILED =
NOTES_MIN_ERROR_CODE+421;
const long NOTES_ERR_MAXDBSIZE_EXCEEDED =
NOTES_MIN_ERROR_CODE+422;
const long NOTES_ERR_INVALID_NAV = NOTES_MIN_ERROR_CODE+423;
const long NOTES_ERR_INVALID_VNLEVEL =
NOTES_MIN_ERROR_CODE+424;
const long NOTES_ERR_SVRACCESS_FAILED =
NOTES_MIN_ERROR_CODE+425;
const long NOTES_ERR_NOT_IN_VIEW = NOTES_MIN_ERROR_CODE+426;
const long NOTES_ERR_NOT_IN_DB = NOTES_MIN_ERROR_CODE+427;
const long NOTES_ERR_PROP_NOT_AVAIL =
NOTES_MIN_ERROR_CODE+428;
const long NOTES_ERR_NOT_IN_ACL = NOTES_MIN_ERROR_CODE+429;
const long NOTES_ERR_NO_LOGS_OPEN = NOTES_MIN_ERROR_CODE+430;
const long NOTES_ERR_CACHE_SZ_INVALID =
NOTES_MIN_ERROR_CODE+431;
const long NOTES_ERR_VIEW_ENTRY_REMOVED =
NOTES_MIN_ERROR_CODE+432;

1688 Domino Designer Programming Guide, Volume 3: JavaScript Classes


NotesError and NotesException classes

const long NOTES_ERR_VIEW_ENTRY_DELETED =


NOTES_MIN_ERROR_CODE+433;
const long NOTES_ERR_DOCUMENT_DELETED =
NOTES_MIN_ERROR_CODE+434;
const long NOTES_ERR_ERR_NOTES_SYNCH_INVALIDOP =
NOTES_MIN_ERROR_CODE+435;
const long NOTES_ERR_CREATEOUTLINE_FAILED =
NOTES_MIN_ERROR_CODE+436;
const long NOTES_ERR_HTML_GENFAILED =
NOTES_MIN_ERROR_CODE+437;
const long NOTES_ERR_CREATE_DOCCOLL_FAILED =
NOTES_MIN_ERROR_CODE+438;
const long NOTES_ERR_EXECUTESETUP_FAILED2 =
NOTES_MIN_ERROR_CODE+439;
const long NOTES_ERR_CANTUPDATE_FOLDER =
NOTES_MIN_ERROR_CODE+440;
const long NOTES_ERR_RTITEM_MISSING =
NOTES_MIN_ERROR_CODE+441;
const long NOTES_ERR_NO_AUTHORIZATION =
NOTES_MIN_ERROR_CODE+442;
const long NOTES_ERR_NAME_MISSING = NOTES_MIN_ERROR_CODE+443;
const long NOTES_ERR_ITEM_MISSING = NOTES_MIN_ERROR_CODE+444;
const long NOTES_ERR_DATERANGE_MISSING =
NOTES_MIN_ERROR_CODE+445;
const long NOTES_ERR_VIEWENTRY_MISSING =
NOTES_MIN_ERROR_CODE+446;
const long NOTES_ERR_VIEWENTRY_OR_DOC_MISSING =
NOTES_MIN_ERROR_CODE+447;
const long NOTES_ERR_OUTLINE_MISSING =
NOTES_MIN_ERROR_CODE+448;
const long NOTES_ERR_DATETIME_MISSING =
NOTES_MIN_ERROR_CODE+449;
const long NOTES_ERR_VNAV_CAT_PARENT =
NOTES_MIN_ERROR_CODE+450;
const long NOTES_ERR_VNAV_CAT_GOTO =
NOTES_MIN_ERROR_CODE+451;
const long NOTES_ERR_INVALID_SIZE = NOTES_MIN_ERROR_CODE+452;

Chapter 10: Java Classes A–Z 1689


NotesError and NotesException classes

const long NOTES_ERR_REGSERVER_NOTSET =


NOTES_MIN_ERROR_CODE+453;
const long NOTES_ERR_NOT_ATTACHMENT =
NOTES_MIN_ERROR_CODE+454;
const long NOTES_ERR_NOT_RESOLVED =
NOTES_MIN_ERROR_CODE+455;
const long NOTES_ERR_INVALID_IOR = NOTES_MIN_ERROR_CODE+456;
const long NOTES_ERR_GETIOR_FAILED =
NOTES_MIN_ERROR_CODE+457;
const long NOTES_ERR_INVALID_DATESPEC =
NOTES_MIN_ERROR_CODE+458;
const long NOTES_ERR_INVALID_TIMESPEC =
NOTES_MIN_ERROR_CODE+459;
const long NOTES_ERR_CANTSAVE_CURRENTAGENT =
NOTES_MIN_ERROR_CODE+460;
const long NOTES_ERR_CANTDISABLE_MANUALAGENT =
NOTES_MIN_ERROR_CODE+461;
const long NOTES_ERR_BAD_ENTRYDOC =
NOTES_MIN_ERROR_CODE+462;
const long NOTES_ERR_UNINITIALIZED_THREAD =
NOTES_MIN_ERROR_CODE+463;
const long NOTES_ERR_INVALIDATED_OBJECT =
NOTES_MIN_ERROR_CODE+464;
const long NOTES_ERR_ACL_ROLE_INVALID =
NOTES_MIN_ERROR_CODE+465;
const long NOTES_ERR_ARG_DELETED = NOTES_MIN_ERROR_CODE+466;
const long NOTES_ERR_ACLENTRY_MISSING =
NOTES_MIN_ERROR_CODE+467;
const long NOTES_ERR_ADDDOC_DUP = NOTES_MIN_ERROR_CODE+469;
wstring getErrorString(in long id);
}; /* end interface */

1690 Domino Designer Programming Guide, Volume 3: JavaScript Classes


NotesFactory class

NotesFactory class
For applications making local calls, use createSession() to create a Session
object. For applications making remote (IIOP) calls, use a createSession
method with the host parameter.
The specification of the NotesFactory class is as follows:
public class NotesFactory {
/* Local session - Notes client must be installed */
static public Session createSession()
throws NotesException;
/* Remote (IIOP) session using host name */
static public Session createSession(String host)
throws NotesException;
static public Session createSession(String host,
String user, String passwd)
throws NotesException;
static public Session createSession(String host,
String args[], String user, String passwd)
throws NotesException;
/* Remote (IIOP) session using IOR */
static public Session createSessionWithIOR(String IOR)
throws NotesException;
static public Session createSessionWithIOR(String IOR,
String user, String passwd)
throws NotesException;
static public Session createSessionWithIOR(String IOR,
String args[], String user, String passwd)
throws NotesException;
/* Remote (IIOP) session for applet */
static public Session createSession(java.applet.Applet
app,
String user, String passwd)
throws NotesException;
static public Session createSession(java.applet.Applet
app,
org.omg.CORBA.ORB orb, String user, String passwd)
throws NotesException;
/* Get ORB from host */
static public String getIOR(String host) throws Exception;
}

Chapter 10: Java Classes A–Z 1691


NotesThread class

NotesThread class
The NotesThread class extends java.lang.Thread to include special
initialization and termination code for Domino. This extension to Thread is
required to run Java programs that make local calls to the Domino classes,
but is not allowed for applications that make remote calls. An application
that makes both local and remote calls must determine dynamically when
to use the static methods sinitThread and stermThread. This includes
threads invoked by AWT that access Domino objects. Applets and agents
that extend AppletBase and AgentBase do not need to code for local versus
remote calls, as this capability is provided in the base code.

The class NotesThread


The specification of the class NotesThread is as follows:
public class NotesThread extends java.lang.Thread {
public NotesThread();
public NotesThread(Runnable t);
public NotesThread(String name);
public NotesThread(Runnable t, String name);
public NotesThread(ThreadGroup group, String name);
public NotesThread(ThreadGroup group, Runnable t, String
name);
public NotesThread(ThreadGroup group, Runnable t);
public void initThread();
public void termThread();
public static void sinitThread();
public static void stermThread();
public final void run();
public void runNotes() throws NotesException;
public void finalize();
public static void load(boolean debug) throws
NotesException;
}

Executing threads through inheritance


To execute threads through inheritance, extend NotesThread instead of
Thread and include a runNotes method instead of run:
public class myClass extends NotesThread {
public void runNotes() {
// my code
}
}

1692 Domino Designer Programming Guide, Volume 3: JavaScript Classes


NotesThread class

Start a Domino thread the same as any thread:


myClass m = new myClass();
m.start();

Executing threads through the Runnable interface


To execute threads through the Runnable interface, implement Runnable
and include a run method as you would for any class using threads:
public class myClass implements Runnable {
public void run() {
// my code
}
}
You might include both run and runNotes methods so the class works
whether you specify “implements Runnable” or “extends NotesThread”:
public class myClass implements Runnable {
public void run() {
this.runNotes();
}
public void runNotes() {
// my code
}
}

Executing threads through the static methods


To execute threads through the static methods, call sinitThread() to initialize
a thread and stermThread() to terminate the thread. Call stermThread()
exactly one time for each call to sinitThread(); putting stermThread in a
finally block is recommended.
public class myClass
{
public static void main(String argv[])
{
try
{
NotesThread.sinitThread();
// my code
}
//my code

Chapter 10: Java Classes A–Z 1693


NotesThread class

finally
{
NotesThread.stermThread();
}
}
}

getURL method
The following method:
public String getURL()

Returns the Domino URL for its parent object when called in the
following classes:
Agent
Database
Document
Form
Session (returns an empty string if called locally)
View

recycle method
All lotus.domino classes contain the following method:
public void recycle()

Session contains the following method, where the vector contains the
Domino Objects to be recycled. This method effectively batches recycle
operations and is especially efficient for remote (IIOP) calls.
public void recycle(java.util.Vector objects)

The recycle method returns an object’s memory to the system and is


provided because the garbage collector is not effective in recovering
Domino resources. If you appear to have memory problems, try recycle but
adhere to the following guidelines:
Recycle an object only if it is no longer needed.
Recycle an object in the same thread in which it is created.
Recycling a parent recycles all the children.
In Session, you should call recycle only after all threads exit.

1694 Domino Designer Programming Guide, Volume 3: JavaScript Classes


NotesThread class

Loops enumerating documents or items are good candidates for recycling.


In a remote environment, recycle releases resources on the server. Although
a client-side cache exists, the Java object can no longer communicate with its
remote counterpart.
In a remote environment, recycle can be called from any thread on any
object.
Results are undefined if you attempt to use a recycled object. No error is
guaranteed.

toString method
The following lotus.domino classes override the toString method of
java.lang.Object and return values as indicated:
ACLEntry (same as getName)
Agent (same as getName)
AgentContext (same as getEffectiveUserName)
Database (same as getFilePath)
DateRange (same as getText)
DateTime (same as getLocalTime)
DbDirectory (same as getName)
Document (same as getUniversalID)
EmbeddedObject (same as getName)
Form (same as getName)
Item (same as getName)
Log (same as getProgramName)
Name (same as getCanonical)
Session (same as getUserName)
View (same as getName)
ViewColumn (same as getTitle)

Visibility interface
All lotus.domino classes implement the java.beans.Visibility interface and
are configured to be invisible. The following methods return values as
indicated:
needsGui() always returns false.
avoidingGUI() always returns true.

Chapter 10: Java Classes A–Z 1695


ACL class

ACL class
Represents the access control list (ACL) of a database.

Syntax
public class ACL extends Base

Containment
Contained by: Database
Contains: ACLEntry

Properties
InternetLevel through getInternetLevel and setInternetLevel
IsUniformAccess through isUniformAccess and setUniformAccess
Parent through getParent
Roles through getRoles

Methods
addRole
createACLEntry
deleteRole
getEntry
getFirstEntry
getNextEntry
renameRole
removeACLEntry
save

Access
Every Database object contains an ACL object representing the access
control list of that database. To get it, use getACL in Database.

Usage
The Database class has three methods you can use to access and modify an
ACL without getting an ACL object: queryAccess, grantAccess, and
revokeAccess. However, using these methods at the same time an ACL
object is in use may produce inconsistent results.

1696 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ACL class

Example: ACL class


This agent prints the name of each entry in the ACL for the current
database.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
ACL acl = db.getACL();
ACLEntry entry = acl.getFirstEntry();
do {
System.out.println(entry.getName()); }
while ((entry = acl.getNextEntry(entry)) != null);
} catch(Exception e) {
e.printStackTrace();
}
}
}

InternetLevel property
Read-write. The maximum Internet access level for this database.

Defined in
ACL

Data type
int

Syntax
public int getInternetLevel()
throws NotesException
public void setInternetLevel(int level)
throws NotesException

Legal values
ACL.LEVEL_NOACCESS
ACL.LEVEL_DEPOSITOR
ACL.LEVEL_READER
ACL.LEVEL_AUTHOR

Chapter 10: Java Classes A–Z 1697


ACL class

ACL.LEVEL_EDITOR
ACL.LEVEL_DESIGNER
ACL.LEVEL_MANAGER

Usage
You must call save if you want the modified ACL to be saved to disk.

Example: InternetLevel property


This agent prints the maximum Internet level for the current database.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
ACL acl = db.getACL();
String lev = null;
int ilev = acl.getInternetLevel();
if (ilev < ACL.LEVEL_DESIGNER)
acl.setInternetLevel(ilev + 1);
acl.save();
switch(acl.getInternetLevel()) {
case ACL.LEVEL_NOACCESS:
lev = "no"; break;
case ACL.LEVEL_DEPOSITOR:
lev = "depositor"; break;
case ACL.LEVEL_READER:
lev = "reader"; break;
case ACL.LEVEL_AUTHOR:
lev = "author"; break;
case ACL.LEVEL_EDITOR:
lev = "editor"; break;
case ACL.LEVEL_DESIGNER:
lev = "designer"; break;
case ACL.LEVEL_MANAGER:
lev = "manager"; break; }
System.out.println(
"Maximum internet access is " + lev + " access");
} catch(Exception e) {
e.printStackTrace();
}
}
}

1698 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ACL class

IsUniformAccess property
Read-write. Indicates if a consistent access control list is enforced across all
replicas of a database.

Defined in
ACL class

Data type
boolean

Syntax
public boolean isUniformAccess()
throws NotesException
public void setUniformAccess(boolean flag)
throws NotesException

Legal values
true indicates that uniform access is set
false indicates that uniform access is not set

Usage
For setUniformAccess, you must call save on the ACL if you want the
modified ACL to be saved to disk.

Example: IsUniformAccess property


The following agent toggles the IsUniformAccess property.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
ACL acl = db.getACL();
System.out.println
("Uniform access is " + acl.isUniformAccess());
if (acl.isUniformAccess())
acl.setUniformAccess(false);
else
acl.setUniformAccess(true);
acl.save();
System.out.println
("Uniform access is " + acl.isUniformAccess());

Chapter 10: Java Classes A–Z 1699


ACL class

} catch(Exception e) {
e.printStackTrace();
}
}
}

Parent property
Read-only. The database that owns an ACL.

Defined in
ACL

Data type
Database

Syntax
public Database getParent()

Example: Parent property


This agent prints the title of the parent database for the current ACL.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
ACL acl = db.getACL();
Database parent = acl.getParent();
System.out.println
("Parent database is \"" + db.getTitle() + "\"");
} catch(Exception e) {
e.printStackTrace();
}
}
}

1700 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ACL class

Roles property
Read-only. All the roles defined in an access control list.

Defined in
ACL

Data type
java.util.Vector; elements are String

Syntax
public java.util.Vector getRoles()
throws NotesException

Usage
Each element in the vector is the name of a role. Each role name is enclosed
in square brackets, for example, [Supervisor]. (Notes Release 2 “privileges”
are enclosed in parentheses.)

Example: Roles property


This agent displays the name of every role in the current database. For
example, it might display [HR Contact], [Supervisor], and [Project Leader].
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
ACL acl = db.getACL();
Vector roles = acl.getRoles();
for (int i=0; i<roles.size(); i++)
System.out.println(roles.elementAt(i));
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 1701


ACL class

addRole method
Adds a role to an ACL.

Defined in
ACL

Syntax
public void addRole(String name)
throws NotesException

Parameter
String name

The name of the new role. Do not put square brackets around the name.

Usage
You must call save on the ACL if you want the modified ACL to be saved
to disk.

Example: addRole method


This agent adds a role to the ACL of the current database. The user specifies
the role in the agent comment.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
Database db = agentContext.getCurrentDatabase();
ACL acl = db.getACL();
acl.addRole(agent.getComment());
acl.save();
} catch(Exception e) {
e.printStackTrace();
}
}
}

1702 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ACL class

createACLEntry method
Creates an entry in the ACL with the name and level that you specify.

Defined in
ACL

Syntax
public ACLEntry createACLEntry(String name, int level)
throws NotesException

Parameters
String name
The name of the person, group, or server for whom you want to create
an entry in the ACL. You must supply the complete name but
hierarchical names can be in abbreviated format. Case is not significant.
int level
The level you want to assign to this person, group, or server in the ACL.
May be any of the following:
ACL.LEVEL_NOACCESS
ACL.LEVEL_DEPOSITOR
ACL.LEVEL_READER
ACL.LEVEL_AUTHOR
ACL.LEVEL_EDITOR
ACL.LEVEL_DESIGNER
ACL.LEVEL_MANAGER

Return value
ACLEntry

The newly-created entry.

Usage
You must call save on the ACL if you want the modified ACL to be saved
to disk.

Chapter 10: Java Classes A–Z 1703


ACL class

Example: createACLEntry and save methods


This agent creates a new entry for the ACL of the current database. The user
specifies the name of the entry in the agent comment. The entry has
manager access level.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
Database db = agentContext.getCurrentDatabase();
ACL acl = db.getACL();
acl.createACLEntry(agent.getComment(),
ACL.LEVEL_MANAGER);
acl.save();
} catch(Exception e) {
e.printStackTrace();
}
}
}

deleteRole method
Deletes a role from an ACL and removes it from any ACL entries that
have it.

Defined in
ACL

Syntax
public void deleteRole(String name)
throws NotesException

Parameters
String name

The name of the role to remove. Do not put square brackets around
the name.

Usage
You must call save on the ACL if you want the modified ACL to be saved
to disk.

1704 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ACL class

Example: deleteRole method


This agent deletes a role from the ACL for the current database. The user
specifies the role in the agent comment.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
Database db = agentContext.getCurrentDatabase();
ACL acl = db.getACL();
acl.deleteRole(agent.getComment());
acl.save();
} catch(Exception e) {
e.printStackTrace();
}
}
}

getEntry method
Given a name, finds its entry in an ACL.

Defined in
ACL

Syntax
public ACLEntry getEntry(String ename)
throws NotesException

Parameter
String ename

The name whose ACL entry you want to find. You must supply the
complete name but hierarchical names can be in abbreviated format.
Case is not significant.

Return value
ACLEntry

The ACL entry that matches the name. If name is not in the ACL,
returns null.

Chapter 10: Java Classes A–Z 1705


ACL class

Usage
This method can find people, groups, or servers in an ACL. If a person is
not listed explicitly in the ACL, but is a member of a group listed in the
ACL, getEntry does not find that person’s name. If you need this capability,
use the queryAccess method in Database.

Example: getEntry method


This agent gets the ACL entry whose name is the agent comment, and
prints whether the entry can delete documents.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
Database db = agentContext.getCurrentDatabase();
ACL acl = db.getACL();
ACLEntry entry = acl.getEntry(agent.getComment());
if (entry != null) {
if (entry.isCanDeleteDocuments())
System.out.println
(entry.getName() + " can delete documents");
else
System.out.println
(entry.getName() + " cannot delete documents");}
else
System.out.println
("No entry for " + agent.getComment());
} catch(Exception e) {
e.printStackTrace();
}
}
}

1706 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ACL class

getFirstEntry method
Returns the first entry in an ACL.

Defined in
ACL

Syntax
public ACLEntry getFirstEntry()
throws NotesException

Return value
ACLEntry

The first entry in the ACL.

Usage
The first entry is typically the -Default- entry.

Example: getFirstEntry and getNextEntry methods


This agent looks for an ACL entry that matches the agent comment
disregarding case.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
if (agent.getComment() == "") {
System.out.println("Comment not specified"); }
else {
Database db = agentContext.getCurrentDatabase();
ACL acl = db.getACL();
boolean gotIt = false;
ACLEntry entry = acl.getFirstEntry();
do {
if
(entry.getNameObject().getCommon().
equalsIgnoreCase(agent.getComment())) {
gotIt = true;
break; } }

Chapter 10: Java Classes A–Z 1707


ACL class

while ((entry = acl.getNextEntry(entry)) != null);


if (gotIt)
System.out.println
(agent.getComment() + " is in the ACL");
else
System.out.println
(agent.getComment() + " is not in the ACL"); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

getNextEntry method
Returns the next ACL entry or the one following a specified entry.

Defined in
ACL

Syntax
public ACLEntry getNextEntry()
throws NotesException
public ACLEntry getNextEntry(ACLEntry entry)
throws NotesException

Parameter
ACLEntry entry

Any entry in the ACL. Cannot be null.

Return value
ACLEntry

The ACL entry following the entry specified as the parameter. Returns
null if there are no more entries.

Usage
With no parameter, this method returns the entry following the last entry
retrieved. The no-parameter method improves performance for remote
operations because ACL entries are cached locally.

1708 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ACL class

removeACLEntry method
Removes an entry from the ACL.

Defined in
ACL

Syntax
public void removeACLEntry(String name)
throws NotesException

Parameter
String name

The name of the person, group, or server whose entry you want to
remove. You must supply the complete name but hierarchical names
can be in abbreviated format. Case is not significant.

Usage
You must call save on the ACL if you want the modified ACL to be saved
to disk.

Example: removeACLEntry method


This agent removes the ACL entry that matches the agent comment
disregarding case.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
Database db = agentContext.getCurrentDatabase();
ACL acl = db.getACL();
acl.removeACLEntry(agent.getComment());
acl.save();
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 1709


ACL class

renameRole method
Changes the name of a role.

Defined in
ACL

Syntax
public void renameRole(String oldname, String newname)
throws NotesException

Parameters
String oldname

The current name of the role. Do not put square brackets around the
name.
String newname

The new name you want to give to the role. Do not specify the brackets.

Usage
You must call save on the ACL if you want the modified ACL to be saved to
disk.
When you rename a role, any entries in the ACL that had the old role get
the new role.

Example: renameRole method


This agent appends “Role” to the name of each role. For example,
[Supervisor] becomes [SupervisorRole]. The code takes into account the
brackets returned by the Roles property.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
ACL acl = db.getACL();
Vector roles = acl.getRoles();
String role;
for (int i=0; i<roles.size(); i++) {
role = (String)roles.elementAt(i);
role = role.substring(1, role.length()-1);
acl.renameRole((String)roles.elementAt(i),

1710 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ACLEntry class

"[" + role + "Role]"); }


acl.save();
} catch(Exception e) {
e.printStackTrace();
}
}
}

save method
Saves changes you’ve made to the ACL. If you don’t call save before closing
a database, the changes you’ve made to its ACL are lost.

Defined in
ACL

Syntax
public void save()
throws NotesException

ACLEntry class
Represents a single entry in an access control list. An entry may be for a
person, a group, or a server.

Syntax
public class ACLEntry extends Base

Containment
Contained by: ACL

Properties
IsAdminReaderAuthor through isAdminReaderAuthor and
setAdminReaderAuthor
IsAdminServer through isAdminServer and setAdminServer
IsCanCreateDocuments through isCanCreateDocuments and
setCanCreateDocuments
IsCanCreateLSOrJavaAgent through isCanCreateLSOrJavaAgent and
setCanCreateLSOrJavaAgent
IsCanCreatePersonalAgent through isCanCreatePersonalAgent and
setCanCreatePersonalAgent

Chapter 10: Java Classes A–Z 1711


ACLEntry class

IsCanCreatePersonalFolder through isCanCreatePersonalFolder and


setCanCreatePersonalFolder
IsCanCreateSharedlFolder through isCanCreateSharedFolder and
setCanCreateSharedFolder
IsCanDeleteDocuments through isCanDeleteDocuments and
setCanDeleteDocuments
IsGroup through isGroup and setGroup
IsPerson through isPerson and setPerson
IsServer through isServer and setServer
IsPublicReader through isPublicReader and setPublicReader
IsPublicWriter through isPublicWriter and setPublicWriter
Level through getLevel and setLevel
Name through getName and setName
NameObject through getNameObject
Parent through getParent
Roles through getRoles
UserType through getUserType and setUserType

Methods
disableRole
enableRole
isRoleEnabled
remove

Creation and access


To create a new ACLEntry object, use createACLEntry in ACL.
The ACL class provides three ways to access an existing ACLEntry:
To access an entry in an ACL when you know its name, use getEntry.
To access the first entry in the ACL, use getFirstEntry.
To access entries after the first one, use getNextEntry.
After modifying an ACL entry, you must call the save method on the ACL
if you want the modified ACL to be saved to disk.

1712 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ACLEntry class

Example: ACLEntry class


This agent enables the [Supervisor] role for the ACL entry specified as the
agent comment.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
Database db = agentContext.getCurrentDatabase();
ACL acl = db.getACL();
ACLEntry entry = acl.createACLEntry
(agent.getComment(), ACL.LEVEL_DESIGNER);
entry.enableRole("Supervisor");
acl.save();
} catch(Exception e) {
e.printStackTrace();
}
}
}

IsAdminReaderAuthor property
Read-write. Indicates if the administration server can modify reader and
author fields.

Defined in
ACLEntry

Data type
boolean

Syntax
public boolean isAdminReaderAuthor()
throws NotesException
public void setAdminReaderAuthor(boolean flag)
throws NotesException

Usage
For setAdminReaderAuthor, you must call save on the ACL if you want the
modified ACL to be saved to disk.

Chapter 10: Java Classes A–Z 1713


ACLEntry class

IsAdminServer property
Read-write. Indicates if this entry is an administration server.

Defined in
ACLEntry

Data type
boolean

Syntax
public boolean isAdminServer()
throws NotesException
public void setAdminServer(boolean flag)
throws NotesException

Usage
For setAdminServer, you must call save on the ACL if you want the
modified ACL to be saved to disk.

IsCanCreateDocuments property
Read-write. For an entry with Author access to a database, indicates if the
entry is allowed to create new documents.

Defined in
ACLEntry

Data type
boolean

Syntax
public boolean isCanCreateDocuments()
throws NotesException
public void setCanCreateDocuments(boolean flag)
throws NotesException

Legal values
true if the entry can create new documents in the database
false if the entry cannot create new documents in the database

1714 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ACLEntry class

Usage
After setting this property, you must call save on the parent ACL for the
changes to take effect.
Setting this property has no effect on an ACL entry unless the entry has
Author access to a database. If an entry has Depositor, Editor, Designer, or
Manager access, this property is always true. If an entry has Reader or No
access, this property is always false.
By default, this property is false for a new entry with Author access.

Example: IsCanCreateDocuments property


This agent creates a new ACL entry with Author access but does not it
allow to create documents.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
Database db = agentContext.getCurrentDatabase();
ACL acl = db.getACL();
ACLEntry entry = acl.createACLEntry
(agent.getComment(), ACL.LEVEL_AUTHOR);
entry.setCanCreateDocuments(false);
acl.save();
} catch(Exception e) {
e.printStackTrace();
}
}
}

IsCanCreateLSOrJavaAgent property
Read-write. For an entry with Reader access to a database, indicates if the
entry is allowed to create LotusScript or Java agents.

Defined in
ACLEntry

Data type
boolean

Chapter 10: Java Classes A–Z 1715


ACLEntry class

Syntax
public boolean isCanCreateLSOrJavaAgent()
throws NotesException
public void setCanCreateLSOrJavaAgent(boolean flag)
throws NotesException

Legal values
true if the entry can create LotusScript or Java agents in the database
false if the entry cannot create new LotusScript or Java agents in the
database

Usage
After setting this property, you must call save on the parent ACL for the
changes to take effect.
Setting this property has no effect on an ACL entry unless the entry has
Designer, Editor, Author, or Reader access to a database. If an entry has
Manager access, this property is always true. If an entry has Depositor or
No access, this property is always false.
By default, this property is false for a new entry with Designer, Editor,
Author, or Reader access.

IsCanCreatePersonalAgent property
Read-write. For an entry with Editor, Author, or Reader access, indicates if
the entry can create personal agents in a database.

Defined in
ACLEntry

Data type
boolean

Syntax
public boolean isCanCreatePersonalAgent()
throws NotesException
public void setCanCreatePersonalAgent(boolean flag)
throws NotesException

Legal values
true if the entry can create personal agents in the database
false if the entry cannot create personal agents in the database

1716 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ACLEntry class

Usage
After setting this property, you must call save on the parent ACL for the
changes to take effect.
Setting this property has no effect on an ACL entry unless the entry has
Editor, Author, or Reader access to a database. If an entry has Designer or
Manager access, this property is always true. If an entry has Depositor or
No access, this property is always false.
By default, this property is false for a new entry with Editor, Author, or
Reader access.

Example: IsCanCreatePersonalAgent and IsCanCreateLSOrJavaAgent


properties
This agent creates a new ACL entry with Author access and allows it to
create personal, LotusScript, and Java agents.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
Database db = agentContext.getCurrentDatabase();
ACL acl = db.getACL();
ACLEntry entry = acl.createACLEntry
(agent.getComment(), ACL.LEVEL_AUTHOR);
entry.setCanCreatePersonalAgent(true);
entry.setCanCreateLSOrJavaAgent(true);
acl.save();
} catch(Exception e) {
e.printStackTrace();
}
}
}

IsCanCreatePersonalFolder property
Read-write. For an entry with Editor, Author, or Reader access, indicates if
the entry can create personal folders in a database.

Defined in
ACLEntry

Chapter 10: Java Classes A–Z 1717


ACLEntry class

Data type
boolean

Syntax
public boolean isCanCreatePersonalFolder()
throws NotesException
public void setCanCreatePersonalFolder(boolean flag)
throws NotesException

Legal values
true if the entry can create personal folders in the database
false if the entry cannot create personal folders in the database

Usage
After setting this property, you must call save on the parent ACL for the
changes to take effect.
Setting this property has no effect on an ACL entry unless the entry has
Editor, Author, or Reader access to a database. If an entry has Designer or
Manager access, this property is always true. If an entry has Depositor or
No access, this property is always false.
By default, this property is false for a new entry with Editor, Author, or
Reader access.

Example: IsCanCreatePersonalFolder and IsCanCreateSharedFolder


properties
This agent creates a new ACL entry with Editor access and allows it to
create personal folders.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
Database db = agentContext.getCurrentDatabase();
ACL acl = db.getACL();
ACLEntry entry = acl.createACLEntry
(agent.getComment(), ACL.LEVEL_AUTHOR);
entry.setCanCreatePersonalFolder(true);
acl.save();
} catch(Exception e) {
e.printStackTrace();
}

1718 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ACLEntry class

}
}

IsCanCreateSharedFolder property
Read-write. For an entry with Editor access to a database, indicates if the
entry can create shared folders in the database.

Defined in
ACLEntry

Data type
boolean

Syntax
public boolean isCanCreateSharedFolder()
throws NotesException
public void setCanCreateSharedFolder(boolean flag)
throws NotesException

Legal values
true if the entry can create shared folders in the database
false if the entry cannot create shared folders in the database

Usage
After setting this property, you must call save on the parent ACL for the
changes to take effect.
Setting this property has no effect on an ACL entry unless the entry has
Editor access to a database. If an entry has Manager or Designer access, this
property is always true. If an entry has Author, Reader, Depositor, or No
access, this property is always false.
By default, this property is false for a new entry with Editor access.

IsCanDeleteDocuments property
Read-write. For an entry with Author access or above, indicates if the entry
can delete documents from a database.

Defined in
ACLEntry

Chapter 10: Java Classes A–Z 1719


ACLEntry class

Data type
boolean

Syntax
public boolean isCanDeleteDocuments()
throws NotesException
public void setCanDeleteDocuments(boolean flag)
throws NotesException

Legal values
true if the entry can delete documents in the database
false if the entry cannot delete documents in the database

Usage
After setting this property, you must call save on the parent ACL for the
changes to take effect.
Setting this property has no effect on an ACL entry unless the entry has
Manager, Designer, Editor, or Author access to a database. If an entry has
Reader, Depositor, or No access, this property is always false.
By default, this property is false for a new entry with Manager, Designer,
Editor, or Author access.

Example: IsCanDeleteDocuments property


This agent creates a new ACL entry with Author access but does not allow
it to delete documents.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
Database db = agentContext.getCurrentDatabase();
ACL acl = db.getACL();
ACLEntry entry = acl.createACLEntry
(agent.getComment(), ACL.LEVEL_AUTHOR);
entry.setCanDeleteDocuments(false);
acl.save();
} catch(Exception e) {
e.printStackTrace();
}
}
}

1720 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ACLEntry class

IsGroup property
Read-write. Indicates if this is a group ACL entry.

Defined in
ACLEntry

Data type
boolean

Syntax
public boolean isGroup()
throws NotesException
public void setGroup(boolean flag)
throws NotesException

Usage
IsGroup is true if UserType is TYPE_MIXED_GROUP,
TYPE_PERSON_GROUP, or TYPE_SERVER_GROUP.
For setGroup, you must call save on the ACL if you want the modified ACL
to be saved to disk.

IsPerson property
Read-write. Indicates if this is a person ACL entry.

Defined in
ACLEntry

Data type
boolean

Syntax
public boolean isPerson()
throws NotesException
public void setPerson(boolean flag)
throws NotesException

Usage
IsPerson is true if UserType is TYPE_PERSON, TYPE_MIXED_GROUP, or
TYPE_PERSON_GROUP.
For setPerson, you must call save on the ACL if you want the modified ACL
to be saved to disk.

Chapter 10: Java Classes A–Z 1721


ACLEntry class

IsPublicReader property
Read-write. For an entry with Depositor or No access, indicates if the entry
is a public reader of the database.

Defined in
ACLEntry class

Data type
boolean

Syntax
public boolean isPublicReader()
throws NotesException
public void setPublicReader(boolean flag)
throws NotesException

Legal values
true if the current entry is a public reader
false if the current entry is not a public reader

Usage
Setting this property has no effect on an ACL entry unless the entry has
Depositor or No access to a database. If an entry has Manager, Designer,
Editor, Author, or Reader access, this property is always true.
By default, this property is false for a new entry with Depositor or No
access.

Example: IsPublicReader property


This agent creates a new ACL entry with Depositor access and makes it a
public reader.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
Database db = agentContext.getCurrentDatabase();
ACL acl = db.getACL();
ACLEntry entry = acl.createACLEntry
(agent.getComment(), ACL.LEVEL_DEPOSITOR);
entry.setPublicReader(true);

1722 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ACLEntry class

entry.setPublicWriter(true);
acl.save();
} catch(Exception e) {
e.printStackTrace();
}
}
}

IsPublicWriter property
Read-write. For an entry with Author, Reader, Depositor, or No access,
indicates if the entry is a public writer of the database.

Defined in
ACLEntry class

Data type
boolean

Syntax
public boolean isPublicWriter()
throws NotesException
public void setPublicWriter(boolean flag)
throws NotesException

Legal values
true if the current entry is a public writer
false if the current entry is not a public writer

Usage
Setting this property has no effect on an ACL entry unless the entry has
Author, Reader, Depositor, or No access to a database. If an entry has
Manager, Designer, or Editor access, this property is always true.
By default, this property is false for a new entry with Author, Reader,
Depositor, or No access.

IsServer property
Read-write. Indicates if this is a server ACL entry.

Defined in
ACLEntry

Chapter 10: Java Classes A–Z 1723


ACLEntry class

Data type
boolean

Syntax
public boolean isServer()
throws NotesException
public void setServer(boolean flag)
throws NotesException

Usage
IsServer is true if UserType is TYPE_SERVER, TYPE_MIXED_GROUP, or
TYPE_SERVER_GROUP.
For setServer, you must call save on the ACL if you want the modified ACL
to be saved to disk.

Level property
Read-write. The access level this entry has for this database.

Defined in
ACLEntry

Data type
int

Syntax
public int getLevel()
throws NotesException
public void setLevel(int level)
throws NotesException

Legal values
ACL.LEVEL_NOACCESS
ACL.LEVEL_DEPOSITOR
ACL.LEVEL_READER
ACL.LEVEL_AUTHOR
ACL.LEVEL_EDITOR
ACL.LEVEL_DESIGNER
ACL.LEVEL_MANAGER

1724 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ACLEntry class

Usage
For setLevel, you must call save on the ACL if you want the modified ACL
to be saved to disk.

Example: Level property


This agent prints the access level for the each entry in the ACL of the
current database.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
ACL acl = db.getACL();
String lev = null;
ACLEntry entry = acl.getFirstEntry();
do {
switch(entry.getLevel()) {
case ACL.LEVEL_NOACCESS:
lev = "no"; break;
case ACL.LEVEL_DEPOSITOR:
lev = "depositor"; break;
case ACL.LEVEL_READER:
lev = "reader"; break;
case ACL.LEVEL_AUTHOR:
lev = "author"; break;
case ACL.LEVEL_EDITOR:
lev = "editor"; break;
case ACL.LEVEL_DESIGNER:
lev = "designer"; break;
case ACL.LEVEL_MANAGER:
lev = "manager"; break; }
System.out.println
(entry.getName() + " has " + lev + " access"); }
while ((entry = acl.getNextEntry(entry)) != null);
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 1725


ACLEntry class

Name property
Read-write. The name of an ACL entry.

Defined in
ACLEntry

Data type
String Name

Syntax
public String getName()
throws NotesException
public void setName(String name)
throws NotesException
public void setName(Name n)
throws NotesException

Usage
Hierarchical names are returned in canonical format. However, you can
enter a hierarchical name as a String in abbreviated format.
For setName, you must call save on the ACL if you want the modified ACL
to be saved to disk.
If you change the name of an entry, the other properties of the entry (such
as Level) are preserved.
The Name object for setName cannot be null.

Example: Name property


This agent prints the name of every ACL entry with Manager access.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
ACL acl = db.getACL();
System.out.println
("Managers for \"" + db.getTitle() + "\"");
ACLEntry entry = acl.getFirstEntry();
do {
if (entry.getLevel() == ACL.LEVEL_MANAGER)

1726 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ACLEntry class

System.out.println(" " +
entry.getName()); }
while ((entry = acl.getNextEntry(entry)) != null);
} catch(Exception e) {
e.printStackTrace();
}
}
}

NameObject property
Read-only. The name of an entry.

Defined in
ACLEntry

Data type
Name

Syntax
public Name getNameObject()
throws NotesException

Example: NameObject property


This agent prints the name of every ACL entry with Manager access.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
ACL acl = db.getACL();
System.out.println
("Managers for \"" + db.getTitle() + "\"");
ACLEntry entry = acl.getFirstEntry();
Name n;
do {
if (entry.getLevel() == ACL.LEVEL_MANAGER) {
n = entry.getNameObject();
System.out.println(" " +
n.getCommon()); }}
while ((entry = acl.getNextEntry(entry)) != null);
} catch(Exception e) {

Chapter 10: Java Classes A–Z 1727


ACLEntry class

e.printStackTrace();
}
}
}

Parent property
Read-only. The access control list that contains an entry.

Defined in
ACLEntry

Data type
ACL

Syntax
public ACL getParent()
throws NotesException

Example: Parent property


This agent prints the title of every database in the local Notes directory that
contains the ACL entry specified as the agent comment.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
ACL acl;
ACLEntry entry;
String n;
DbDirectory dir = session.getDbDirectory(null);
Database db =
dir.getFirstDatabase(DbDirectory.DATABASE);
while (db != null) {
db.open();
acl = db.getACL();
if (acl != null) {
entry = acl.getFirstEntry();
while (entry != null) {
n = entry.getNameObject().getCommon();
if (n.equals(agent.getComment()))
System.out.println

1728 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ACLEntry class

(n + " is in the database \"" +


entry.getParent().getParent().getTitle() +
"\"");
entry = acl.getNextEntry(entry); }}
db = dir.getNextDatabase(); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

Roles property
Read-only. The roles that are enabled for an entry.

Defined in
ACLEntry

Data type
Vector; elements are String

Syntax
public java.util.Vector getRoles()
throws NotesException

Usage
Each role name is surrounded by brackets, for example, [Project Leader].

Example: Roles property


This agent prints the roles for the ACL entry specified as the agent
comment.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
Database db = agentContext.getCurrentDatabase();
ACL acl = db.getACL();
ACLEntry entry = acl.getEntry(agent.getComment());
if (entry != null) {
Vector roles = acl.getRoles();

Chapter 10: Java Classes A–Z 1729


ACLEntry class

if (roles.size() == 0)
System.out.println(entry.getName() +
" has no roles");
else {
System.out.println(entry.getName() +
" has the following role(s):");
for (int i=0; i<roles.size(); i++)
System.out.println(" " +
roles.elementAt(i)); }}
} catch(Exception e) {
e.printStackTrace();
}
}
}

UserType property
Read-write. The user type this entry has for this database.

Defined in
ACLEntry

Data type
int

Syntax
public int getUserType()
throws NotesException
public void setUserType(int tp)
throws NotesException

Legal values
ACLEntry.TYPE_MIXED_GROUP
ACLEntry.TYPE_PERSON
ACLEntry.TYPE_PERSON_GROUP
ACLEntry.TYPE_SERVER
ACLEntry.TYPE_SERVER_GROUP
ACLEntry.TYPE_UNSPECIFIED

Usage
For setUserType, you must call save on the ACL if you want the modified
ACL to be saved to disk.

1730 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ACLEntry class

Example: UserType property


This agent prints the user type of the ACL entry specified in the agent
comment, and prints whether the entry is for a person, server, and group.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
Database db = agentContext.getCurrentDatabase();
ACL acl = db.getACL();
ACLEntry entry = acl.getEntry(agent.getComment());
if (entry != null) {
String ut = null;
switch (entry.getUserType()) {
case ACLEntry.TYPE_MIXED_GROUP :
ut = "mixed group"; break;
case ACLEntry.TYPE_PERSON :
ut = "person"; break;
case ACLEntry.TYPE_PERSON_GROUP :
ut = "person group"; break;
case ACLEntry.TYPE_SERVER :
ut = "server"; break;
case ACLEntry.TYPE_SERVER_GROUP :
ut = "server group"; break;
case ACLEntry.TYPE_UNSPECIFIED :
ut = "unspecified"; break; }
System.out.println("User type is " + ut);
if (entry.isPerson())
System.out.println("Is a person");
if (entry.isServer())
System.out.println("Is a server");
if (entry.isGroup())
System.out.println("Is a group"); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 1731


ACLEntry class

disableRole method
Disables a role for an entry.

Defined in
ACLEntry

Syntax
public void disableRole(String role)
throws NotesException

Parameter
String role

The name of the role to disable. Do not specify the brackets.

Usage
You must call save on the ACL if you want the modified ACL to be saved
to disk.
The role must exist in the ACL. If the role exists, but is already disabled for
the entry, this method does nothing.

Example: disableRole method


This agent disables, for all ACL entries, the role specified in the agent
comment.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
Database db = agentContext.getCurrentDatabase();
ACL acl = db.getACL();
ACLEntry entry = acl.getFirstEntry();
do {
if (!entry.isRoleEnabled(agent.getComment()))
System.out.println
(agent.getComment() +
" is already disabled for " + entry.getName());
else {
entry.disableRole(agent.getComment());
System.out.println
(agent.getComment() +
" disabled for " + entry.getName()); }}
while ((entry = acl.getNextEntry(entry)) != null);
acl.save();

1732 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ACLEntry class

} catch(Exception e) {
e.printStackTrace();
}
}
}

enableRole method
Enables a role for an entry.

Defined in
ACLEntry

Syntax
public void enableRole(String role)
throws NotesException

Parameter
String role

The name of the role to enable. Do not specify the brackets.

Usage
You must call save on the ACL if you want the modified ACL to be saved
to disk.
The role must exist in the ACL. If the role exists, but is already enabled for
the entry, this method does nothing.

Example: enableRole method


This agent enables, for all ACL entries, the role specified in the agent
comment.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
Database db = agentContext.getCurrentDatabase();
ACL acl = db.getACL();
ACLEntry entry = acl.getFirstEntry();
do {
if (entry.isRoleEnabled(agent.getComment()))
System.out.println
(agent.getComment() +
" is already enabled for " + entry.getName());

Chapter 10: Java Classes A–Z 1733


ACLEntry class

else {
entry.enableRole(agent.getComment());
System.out.println
(agent.getComment() +
" enabled for " + entry.getName()); }}
while ((entry = acl.getNextEntry(entry)) != null);
acl.save();
} catch(Exception e) {
e.printStackTrace();
}
}
}

isRoleEnabled method
Indicates if a role is enabled for an entry.

Defined in
ACLEntry

Syntax
public boolean isRoleEnabled(String role)
throws NotesException

Parameter
String role

The name of the role.

Return value
boolean

true if the role is enabled for this entry


false if the role is not enabled for this entry

Usage
The role must exist in the ACL.

Example: isRoleEnabled method


This agent prints a message for each ACL entry saying whether the role
specified as the agent comment is enabled.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();

1734 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ACLEntry class

// (Your code goes here)


Agent agent = agentContext.getCurrentAgent();
Database db = agentContext.getCurrentDatabase();
ACL acl = db.getACL();
ACLEntry entry = acl.getFirstEntry();
do {
if (entry.isRoleEnabled(agent.getComment()))
System.out.println
(agent.getComment() +
" is enabled for " + entry.getName());
else {
System.out.println
(agent.getComment() +
" is disabled for " + entry.getName()); }}
while ((entry = acl.getNextEntry(entry)) != null);
} catch(Exception e) {
e.printStackTrace();
}
}
}

remove method
Removes an entry from an access control list.

Defined in
ACLEntry

Syntax
public void remove()
throws NotesException

Usage
You must call save on the ACL if you want the modified ACL to be saved
to disk.

Example: remove method


This agent removes the ACL entry specified as the agent comment.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)

Chapter 10: Java Classes A–Z 1735


Agent class

Agent agent = agentContext.getCurrentAgent();


Database db = agentContext.getCurrentDatabase();
ACL acl = db.getACL();
ACLEntry entry = acl.getEntry(agent.getComment());
if (entry != null) entry.remove();
acl.save();
} catch(Exception e) {
e.printStackTrace();
}
}
}

Agent class
Represents an agent.

Syntax
public class Agent extends Base

Containment
Contained by: AgentContext and Database
Contains: Database and DateTime

Properties
Comment through getComment
CommonOwner through getCommonOwner
IsEnabled through isEnabled and setEnabled
IsNotesAgent through isNotesAgent
IsPublic through isPublic
IsWebAgent through isWebAgent
LastRun through getLastRun
Name through getName
Owner through getOwner
Parent through getParent
Query through getQuery
ServerName through getServerName and setServerName
Target through getTarget
Trigger through getTrigger

1736 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Agent class

Method
remove
run
runOnServer
save

Access
There are two ways to access an agent.
To access the agent that’s currently running, use getCurrentAgent in
AgentContext.
To access all the agents in a database, use getAgents in Database.

Examples: Agent class


1. This agent prints the name of the current agent.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
System.out.println
("Current agent is \"" +
agent.getName() + "\"");
} catch(Exception e) {
e.printStackTrace();
}
}
}
2. This agent prints the names of all agents in the current databaset.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Vector agents = db.getAgents();
System.out.println("Agents in database:");

Chapter 10: Java Classes A–Z 1737


Agent class

for (int i=0; i<agents.size(); i++)


{
Agent agent = (Agent)agents.elementAt(i);
System.out.println(" " + agent.getName());
}
} catch(Exception e) {
e.printStackTrace();
}
}
}

Comment property
Read-only. The comment that describes an agent, as entered by the agent’s
designer.

Defined in
Agent

Data type
String

Syntax
public String getComment()
throws NotesException

Example: Comment property


This agent prints the name and comment of the current agent.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
System.out.println
("Current agent is \"" + agent.getName() +
"\"");
System.out.println
("Comment: " + agent.getComment());
} catch(Exception e) {
e.printStackTrace();
}
}
}

1738 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Agent class

CommonOwner property
Read-only. The common name of the person who last modified and saved
an agent.

Defined in
Agent

Data type
String

Syntax
public String getCommonOwner()
throws NotesException

Usage
If the owner’s name is flat (non-hierarchical), the CommonOwner name is
the same as the Owner name.

Example: CommonOwner property


This agent prints the common owner name of the current agent.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
System.out.println
("Current agent is \"" + agent.getName() +
"\"");
System.out.println
("Common owner: " + agent.getCommonOwner());
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 1739


Agent class

IsEnabled property
Read-write. Indicates if an agent is able to run or not.

Defined in
Agent

Data type
boolean

Syntax
public boolean isEnabled()
throws NotesException
public void setEnabled(boolean value)
throws NotesException

Legal values
true if the agent can be run
false if the agent is disabled

Usage
This property is intended for use with scheduled agents, which can be
enabled and disabled. This property always returns true for hidden agents
and agents that are run from a menu.
You must call Save to make any change effective.
If the agent is open in the UI, a change is not immediately reflected. The
agent must be closed and reopened.

Examples: IsEnabled property


1. This agent prints the status for each agent in the current database:
enabled or disabled.
import lotus.domino.*;
import java.util.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Vector agents = db.getAgents();
System.out.println("Agents in database:");
Enumeration e = db.getAgents().elements();
while (e.hasMoreElements()) {

1740 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Agent class

Agent agent = (Agent)e.nextElement();


String an = agent.getName();
if (agent.isEnabled())
System.out.println(an + " is enabled");
else
System.out.println(an + " is disabled");
}
} catch(Exception e) {
e.printStackTrace();
}
}
}
2. This agent enables the agent named “Agent To Enable” if it exists in the
current database.
import lotus.domino.*;
import java.util.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Vector agents = db.getAgents();
Enumeration e = db.getAgents().elements();
String msg = "Agent not found";
while (e.hasMoreElements()) {
Agent agent = (Agent)e.nextElement();
String name = agent.getName();
if (name.compareTo("Agent To Enable") == 0){
agent.setEnabled(true);
agent.save();
msg = "Agent found and enabled";
break;
}
}
System.out.println(msg);
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 1741


Agent class

IsNotesAgent property
Read-only. Indicates if an agent can run in the Notes client environment.

Defined in
Agent

Data type
boolean

Syntax
public boolean isNotesAgent()
throws NotesException

Legal values
true if the agent can run in the Notes client environment
false if the agent cannot run in the Notes client environment

Example: IsNotesAgent and IsWebAgent properties


This agent prints whether each agent in a database is a Notes agent and a
Web agent.
import lotus.domino.*;
import java.util.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Vector agents = db.getAgents();
System.out.println("Agents in database:");
Enumeration e = db.getAgents().elements();
while (e.hasMoreElements()) {
Agent agent = (Agent)e.nextElement();
System.out.println(agent.getName());
if (agent.isNotesAgent())
System.out.println(" is a Notes agent");
else
System.out.println(" is not a Notes agent");
if (agent.isWebAgent())
System.out.println(" is a Web agent");
else
System.out.println(" is not a Web agent");
}

1742 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Agent class

} catch(Exception e) {
e.printStackTrace();
}
}
}

IsPublic property
Read-only. Indicates if an agent is public or personal.
A public agent is accessible to all users of a database and is stored in the
database.
A personal agent is accessible only to its owner and is stored in the
owner’s desktop file.

Defined in
Agent

Data type
boolean

Syntax
public boolean isPublic()
throws NotesException

Legal values
true if the agent is public
false if the agent is personal

Example: IsPublic property


This agent counts the number of public and personal agents in the current
database.
import lotus.domino.*;
import java.util.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Vector agents = db.getAgents();
Enumeration e = db.getAgents().elements();
int publicAgents = 0, personalAgents = 0;
while (e.hasMoreElements()) {

Chapter 10: Java Classes A–Z 1743


Agent class

Agent agent = (Agent)e.nextElement();


String an = agent.getName();
if (agent.isPublic())
publicAgents++;
else
personalAgents++;
}
System.out.println(publicAgents +
" agents are public");
System.out.println(personalAgents +
" agents are public");
} catch(Exception e) {
e.printStackTrace();
}
}
}

IsWebAgent property
Read-only. Indicates if an agent can run in a Web browser environment.

Defined in
Agent

Data type
boolean

Syntax
public boolean isWebAgent()
throws NotesException

Legal values
true if the agent can run in a Web browser environment
false if the agent cannot run in a Web browser environment

LastRun property
Read-only. The date that an agent last ran.

Defined in
Agent

Data type
DateTime

1744 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Agent class

Syntax
public DateTime getLastRun()
throws NotesException

Usage
If the script has never been run before, this property returns null.

Example: LastRun property


For each agent in the current database, this agent prints its name and the
last time it ran.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Vector agents = db.getAgents();
for (int i=0; i<agents.size(); i++)
{
Agent agent = (Agent)agents.elementAt(i);
DateTime date = agent.getLastRun();
if (date.getDateOnly() != null)
System.out.println("Agent " + agent.getName() +
" last ran on " + date.getDateOnly() +
" at " + date.getTimeOnly());
else
System.out.println("Agent " + agent.getName() +
" hasn't run yet");
}
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 1745


Agent class

Name property
Read-only. The name of an agent. Within a database, the name of an agent
may not be unique.

Defined in
Agent

Data type
String

Syntax
public String getName()
throws NotesException

Owner property
Read-only. The name of the person who last modified and saved an agent.

Defined in
Agent

Data type
Name

Syntax
public String getOwner()
throws NotesException

Usage
If the owner’s name is hierarchical, this property returns the fully
distinguished name.
Saving the agent changes the owner immediately. However, if you
subsequently call Agent.owner within the same Session, the previous
owner’s name will be returned. The ownership change is not reflected in
properties until the next time a Session is obtained.

Example: Owner property


This agent prints the name and common owner of all the agents in the
current database.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {

1746 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Agent class

Session session = getSession();


AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
System.out.println
("Current agent is \"" + agent.getName() +
"\"");
System.out.println
("Common owner: " + agent.getOwner());
} catch(Exception e) {
e.printStackTrace();
}
}
}

Parent property
Read-only. The database that contains an agent.

Defined in
Agent

Data type
Database

Syntax
public Database getParent()
throws NotesException

Example: Parent property


This agent prints the name of the database on which the agent is running.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
Database db = agent.getParent();
System.out.println
("Database on which this agent is running is '" +
db.getTitle() + "'");

Chapter 10: Java Classes A–Z 1747


Agent class

} catch(Exception e) {
e.printStackTrace();
}
}
}

Query property
Read-only. The text of the query used by an agent to select documents. In
the Agent Builder, a query is defined by the searches added to the agent
using the Add Search button.
If no query is defined with the Add Search button, the Query property
returns an empty string, even if the agent runs a formula that has its own
SELECT statement or a script that selects specific documents.

Defined in
Agent

Data type
String

Syntax
public String getQuery()
throws NotesException

Usage
Some sample results:
If an agent searches for documents that contain the word “tulip,”
Query returns:
("tulip")

If an agent searches for documents that contain the word tulip and
were created on September 19, 1996, Query returns:
("tulip") AND ([_CreationDate] = 09/19/96)

If an agent searches for documents that use the Response form,


Query returns:
(([Form]="Response"))

If an agent searches for documents that use the Response form and
contain the phrase “mustard greens” in the Subject field, Query returns:
(([Form]="Response")) AND ([Subject] CONTAINS (mustard
greens))

1748 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Agent class

Example: Query property


This agent prints the name and query of every agent in the current
database.
import lotus.domino.*;
import java.util.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Vector agents = db.getAgents();
Enumeration e = db.getAgents().elements();
while (e.hasMoreElements()) {
Agent agent = (Agent)e.nextElement();
String an = agent.getName();
String aq = agent.getQuery();
if (aq.equals("")) aq = "None";
System.out.println(an + " - " + aq);
}
} catch(Exception e) {
e.printStackTrace();
}
}
}

ServerName property
Read-write. The name of the server on which an agent runs.

Defined in
Agent

Data type
String

Syntax
public String getServerName()
throws NotesException
public void setServerName(String serverName)
throws NotesException

Chapter 10: Java Classes A–Z 1749


Agent class

Usage
The value returned by getServerName depends upon whether the agent
is scheduled:
If the agent is scheduled, the property returns the name of the server
that the scheduled agent runs on. Since scheduled agents can only run
on a single replica of a database, you designate a server name for the
agent under Schedule in the Agent Builder. Therefore, the ServerName
property may represent the parent database’s server, or it may
represent a replica’s server.
If the agent is not scheduled, this property returns the name of the
parent database’s server. If the parent database is on a workstation, this
property returns an empty string.
You can set ServerName to the asterisk (*) to indicate that the agent can
run on any server.
A null ServerName means the local workstation.
You must call Save to make any change effective.

Examples: ServerName property


1. This agent prints the name and server name of the current agent.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
String u = session.getServerName();
System.out.println("Server name = " + u);
} catch(Exception e) {
e.printStackTrace();
}
}
}
2. This agent sets the server name of the agent named “Agent To Run” to
the asterisk (*), indicating that the agent can run on any server.
import lotus.domino.*;
import java.util.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();

1750 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Agent class

// (Your code goes here)


Database db = agentContext.getCurrentDatabase();
Vector agents = db.getAgents();
Enumeration e = db.getAgents().elements();
String msg = "Agent not found";
while (e.hasMoreElements()) {
Agent agent = (Agent)e.nextElement();
String name = agent.getName();
if (name.compareTo("Agent To Run") == 0) {
agent.setServerName("*");
agent.save();
msg = "Agent server name set to *";
break;
}
}
System.out.println(msg);
} catch(Exception e) {
e.printStackTrace();
}
}
}

Target property
Read-only. Indicates which documents this agent acts on.

Defined in
Agent

Data type
boolean

Syntax
public int getTarget()
throws NotesException

Legal values
Agent.TARGET_ALL_DOCS
Agent.TARGET_ALL_DOCS_IN_VIEW
Agent.TARGET_NEW_DOCS
Agent.TARGET_NEW_OR_MODIFIED_DOCS
Agent.TARGET_NONE
Agent.TARGET_SELECTED_DOCS
Agent.TARGET_UNREAD_DOCS_IN_VIEW

Chapter 10: Java Classes A–Z 1751


Agent class

Example: Target and Trigger properties


This agent prints the target and trigger of each agent in the current
database.
import lotus.domino.*;
import java.util.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Enumeration agents = db.getAgents().elements();
while (agents.hasMoreElements())
{
Agent agent = (Agent)agents.nextElement();
String target="", trigger="";
switch (agent.getTarget()) {
case Agent.TARGET_ALL_DOCS:
target = "all documents";
case Agent.TARGET_ALL_DOCS_IN_VIEW:
target = "all documents in view";
case Agent.TARGET_NEW_DOCS:
target = "all new documents";
case Agent.TARGET_NEW_OR_MODIFIED_DOCS:
target = "all new or modified documents";
case Agent.TARGET_NONE:
target = "none";
case Agent.TARGET_SELECTED_DOCS:
target = "selected documents";
case Agent.TARGET_UNREAD_DOCS_IN_VIEW:
target = "unread documents in view"; }
switch (agent.getTrigger()) {
case Agent.TRIGGER_AFTER_MAIL_DELIVERY:
trigger = "after mail delivery";
case Agent.TRIGGER_BEFORE_MAIL_DELIVERY:
trigger = "before new mail";
case Agent.TRIGGER_DOC_PASTED:
trigger = "document pasted";
case Agent.TRIGGER_DOC_UPDATE:
trigger = "document updated";
case Agent.TRIGGER_MANUAL:
trigger = "manual";
case Agent.TRIGGER_NONE:
trigger = "none";
case Agent.TRIGGER_SCHEDULED:
trigger = "scheduled"; }

1752 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Agent class

System.out.println(agent.getName() +
": target is " + target +
"; trigger is " + trigger);
} } catch(Exception e) {
e.printStackTrace();
}
}
}

Trigger property
Read-only. Indicates when this agent runs.

Defined in
Agent

Data type
boolean

Syntax
public int getTrigger()
throws NotesException

Legal values
Agent.TRIGGER_AFTER_MAIL_DELIVERY
Agent.TRIGGER_BEFORE_MAIL_DELIVERY
Agent.TRIGGER_DOC_PASTED
Agent.TRIGGER_DOC_UPDATE
Agent.TRIGGER_MANUAL
Agent.TRIGGER_NONE
Agent.TRIGGER_SCHEDULED

remove method
Permanently deletes an agent from a database.

Defined in
Agent

Syntax
public void remove()
throws NotesException

Chapter 10: Java Classes A–Z 1753


Agent class

Usage
Once you call this method, the Agent object is null and you can no longer
use its methods or properties.
It is possible to use this method to delete the agent that’s currently running.
Use this feature with care. You must refresh the Agents view in the user
interface to see that the agent has been removed.

Example: remove method


This agent removes the agent in the current database named “Agent To
Delete.”
import lotus.domino.*;
import java.util.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Vector agents = db.getAgents();
Enumeration e = db.getAgents().elements();
String msg = "Agent not found";
while (e.hasMoreElements()) {
Agent agent = (Agent)e.nextElement();
String name = agent.getName();
if (name.compareTo("Agent To Delete") == 0){
agent.remove();
msg = "Agent found and deleted";
break;
}
}
System.out.println(msg);
} catch(Exception e) {
e.printStackTrace();
}
}
}

1754 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Agent class

run method
Runs the agent.

Defined in
Agent

Syntax
public void run()
throws NotesException

Usage
You cannot run an agent recursively (cannot call it from itself).
The user cannot interact directly with a called agent. User output goes to
the Domino log.
For local operations, the agent runs the computer running the current
program. See runOnServer to do otherwise.
For remote (IIOP) operations, the agent runs on the server handling the
remote calls.

Example: run method


This agent runs the agent in the current database named “Agent To Run.”
import lotus.domino.*;
import java.util.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Vector agents = db.getAgents();
Enumeration e = db.getAgents().elements();
String msg = "Agent not found";
while (e.hasMoreElements()) {
Agent agent = (Agent)e.nextElement();
String name = agent.getName();
if (name.compareTo("Agent To Run") == 0){
agent.run();
msg = "Agent has been run";
break;
}
}
System.out.println(msg);

Chapter 10: Java Classes A–Z 1755


Agent class

} catch(Exception e) {
e.printStackTrace();
}
}
}

runOnServer method
Runs an agent that is in a server database on the computer containing the
database.

Defined in
Agent

Syntax
public int runOnServer()
throws NotesException

Return value
int

Status of the operation where 0 indicates success.

Usage
The server cannot be on the computer on which the program is running.
Use run to run agents that reside on the current computer.
For remote (IIOP) operations, the agent runs the server handling the remote
calls the same as run and the return value is always 0.

Example: runOnServer method


This example runs an agent on a specified server.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db =
session.getDatabase("NotesUA1", "DbExamples");
Agent agent = db.getAgent("SendMailTest");
if (agent.runOnServer() == 0)
System.out.println("Agent ran OK");
else
System.out.println("Agent did not run OK");

1756 Domino Designer Programming Guide, Volume 3: JavaScript Classes


AgentContext class

} catch(Exception e) {
e.printStackTrace();
}
}
}

save method
Saves changes made to the agent.

Defined in
Agent

Syntax
public void save()
throws NotesException

Usage
Saving the agent changes the owner immediately. However, if you
subsequently call Agent.owner within the same Session, the previous
owner’s name will be returned. The ownership change is not reflected in
properties until the next time a Session is obtained.
You must call Save after setServerName and setEnabled, or the new value
is lost.

AgentContext class
Represents the agent environment of the current program, if an agent is
running it.

Syntax
public class AgentContext extends Base

Containment
Contained by: Session
Contains: Agent, Database, DateTime, Document, DocumentCollection,
Name

Properties
CurrentAgent through getCurrentAgent
CurrentDatabase through getCurrentDatabase
DocumentContext through getDocumentContext

Chapter 10: Java Classes A–Z 1757


AgentContext class

EffectiveUserName through getEffectiveUserName


LastExitStatus through getLastExitStatus
LastRun through getLastRun
SavedData through getSavedData
UnprocessedDocuments through getUnprocessedDocuments

Methods
unprocessedFTSearch
unprocessedSearch
updateProcessedDoc

Creation and access


Use getAgentContext in Session to get the AgentContext object for the
current agent.

Usage
You can create a Java agent by importing files or by writing and compiling
the code in Domino Designer. In the latter case, Domino Designer provides
template code that creates a Session object named session and an
AgentContext object named agentContext. The complete template code
appears as follows:
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
} catch(Exception e) {
e.printStackTrace();
}
}
}

Example: AgentContext class


This agent gets the context for the current agent, then gets the agent itself
and prints the agent name and comment.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();

1758 Domino Designer Programming Guide, Volume 3: JavaScript Classes


AgentContext class

AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
String name = agent.getName();
String comment = agent.getComment();
if (comment == "") comment = "No comment";
System.out.println
("Current agent: \"" + name + "\"");
System.out.println
("Comment: \"" + comment + "\"");
} catch(Exception e) {
e.printStackTrace();
}
}
}

CurrentAgent property
Read-only. The agent that’s currently running.

Defined in
AgentContext

Data type
Agent

Syntax
public Agent getCurrentAgent()
throws NotesException

Example: CurrentAgent property


This agent prints the name of the current agent.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
String name = agent.getName();
System.out.println
("Current agent is \"" + name + "\"");

Chapter 10: Java Classes A–Z 1759


AgentContext class

} catch(Exception e) {
e.printStackTrace();
}
}
}

CurrentDatabase property
Read-only. The database in which the current agent resides.

Defined in
AgentContext

Data type
Database

Syntax
public Database getCurrentDatabase()
throws NotesException

Usage
This property allows you to access a database without having to specify its
server and file name. Using getCurrentDatabase can make programs more
portable from one database to another.

Example: CurrentDatabase property


This agent example prints the title of the current database.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
String title = db.getTitle();
System.out.println
("Current database is \"" + title + "\"");
} catch(Exception e) {
e.printStackTrace();
}
}
}

1760 Domino Designer Programming Guide, Volume 3: JavaScript Classes


AgentContext class

DocumentContext property
Read-only. The in-memory document when an agent starts.

Defined in
AgentContext

Data type
Document

Syntax
public Document getDocumentContext()
throws NotesException

Usage
Through the C or C++ API, an external program can create an in-memory
document, then run an agent. The agent can use this property to access the
in-memory document.
For an agent activated in a view through the UI, the in-memory document
is the document highlighted in the view.

Example: DocumentContext property


This agent prints the value of the Subject field of the in-memory document.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Document doc = agentContext.getDocumentContext();
if (doc != null)
{
Vector v = doc.getItemValue("Subject");
System.out.println
("Value of 'Subject' in document is "
+ v.toString());
}
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 1761


AgentContext class

EffectiveUserName property
Read-only. The user name that is in effect for the current agent.
For an agent running on a workstation, this is the name of the current
user.
For an agent running on a server, this is the name of the agent’s owner
(the person who last saved the agent).

Defined in
AgentContext

Data type
Name

Syntax
public String getEffectiveUserName()
throws NotesException

Usage
In general, getEffectiveUserName and getUserName return the same value
for a given program. The exceptions are agents that run on a server, where
getEffectiveUserName is the name of the script’s owner and getUserName
is the name of the server on which the script is running.
If the user name is hierarchical, this property returns the fully distinguished
name.

Example: EffectiveUserName property


This example prints the current effective user name.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
String name = agentContext.getEffectiveUserName();
System.out.println
("Effective user name is " + name);
} catch(Exception e) {
e.printStackTrace();
}
}
}

1762 Domino Designer Programming Guide, Volume 3: JavaScript Classes


AgentContext class

LastExitStatus property
Read-only. The exit status code returned by the Agent Manager the last
time the current agent ran.

Defined in
AgentContext

Data type
int

Syntax
public int getLastExitStatus()
throws NotesException

Usage
This property returns 0 if the agent ran without errors.

Example: LastExitStatus property


This agent prints the last exit status of the current agent.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
int status = agentContext.getLastExitStatus();
System.out.println(
"Last exit status was " + status);
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 1763


AgentContext class

LastRun property
Read-only. The date and time when the current agent was last executed.

Defined in
AgentContext

Data type
DateTime

Syntax
public DateTime getLastRun()
throws NotesException

Usage
If the agent never ran before, this property returns null.

Example: LastRun property


This agent prints the date and time that the agent last ran.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
DateTime date = agentContext.getLastRun();
if (date.getDateOnly() == "")
System.out.println("Agent was not run before");
else
System.out.println
("Agent was last run on " + date.getDateOnly() +
" at " + date.getTimeOnly());
} catch(Exception e) {
e.printStackTrace();
}
}
}

1764 Domino Designer Programming Guide, Volume 3: JavaScript Classes


AgentContext class

SavedData property
Read-only. A document that an agent uses to store information between
invocations. The agent can use the information in this document the next
time the agent runs.

Defined in
AgentContext

Data type
Document

Syntax
public Document getSavedData()
throws NotesException

Usage
The getSavedData document is created when you save an agent, and it is
stored in the same database as the agent. The document replicates, but is
not displayed in views.
Each time you edit and re-save an agent, its getSavedData document is
deleted and a new, blank one is created. When you delete an agent, its
getSavedData document is deleted.

Example: SavedData property


This agent uses the save data record to find the maximum weekly sales.The
data records have Weeky_Sales and Name fields. The saved data record has
MaxSales and MaxSales_Salesperson fields. The data record fields replace
the agent record fields whenever Weekly_Sales is greater than MaxSales.
import lotus.domino.*;
import java.util.Vector;
import java.lang.Float;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Document agentDoc = agentContext.getSavedData();
Database db = agentContext.getCurrentDatabase();
View view = db.getView("Weekly Sales");
Document doc = view.getFirstDocument();
if (!agentDoc.hasItem("MaxSales"))
{
agentDoc.replaceItemValue("MaxSales", "0");

Chapter 10: Java Classes A–Z 1765


AgentContext class

agentDoc.save(true, true);
agentDoc = agentContext.getSavedData();
}
while (doc != null)
{
Vector mvalue = agentDoc.getItemValue("MaxSales");
Vector wvalue = doc.getItemValue("Weekly_Sales");
Float maxSales =
new Float((String)mvalue.firstElement());
Float weeklySales = new
Float((String)wvalue.firstElement());
if (weeklySales.floatValue() >
maxSales.floatValue())
{
agentDoc.replaceItemValue
("MaxSales", doc.getItemValue("Weekly_Sales"));
agentDoc.replaceItemValue
("MaxSales_Salesperson", doc.getItemValue("Name"));
}
agentDoc.save(true, true);
System.out.println("Best salesperson to date is " +
agentDoc.getItemValue("MaxSales_Salesperson") +
" who sold $" + agentDoc.getItemValue("MaxSales"));
}
} catch(Exception e) {
e.printStackTrace();
}
}
}

UnprocessedDocuments property
Read-only. The documents in a database that the current agent considers to
be “unprocessed.” The type of agent determines which documents are
considered unprocessed.

Defined in
AgentContext

Data type
DocumentCollection

Syntax
public DocumentCollection getUnprocessedDocuments()
throws NotesException

1766 Domino Designer Programming Guide, Volume 3: JavaScript Classes


AgentContext class

Usage
This method is valid only for agents.

What documents are returned?


The following table describes the documents that are returned by
getUnprocessedDocuments.
Agent runs on: UnprocessedDocuments returns documents that meet all of
these requirements:
All documents in Meet the search criteria specified in Agent Builder
database
All new and modified Not processed by this agent with updateProcessedDoc
documents since last run Just created or modified
Meet the search criteria specified in Agent Builder
All unread documents Are unread and in the view
in view Meet the search criteria specified in Agent Builder
All documents in view Are in the view
Meet the search criteria specified in Agent Builder
Selected documents Are selected in the view
Meet the search criteria specified in Agent Builder
Run once Is the current document

Using UpdateProcessedDoc
For agents that run on new and modified documents, you must use
updateProcessedDoc in Session to mark each document as “processed,”
which ensures that a document gets processed by the agent only once
(unless it’s modified again). If you do not call this method for each
document, the agent processes the same documents the next time it runs.
The updateProcessedDoc method marks a document as processed only for
the particular agent from which it is called. Using updateProcessedDoc in
one agent has no effect on the documents that another agent processes.

Example: UnprocessedDocuments property


If this agent runs on selected documents, getUnprocessedDocuments
returns the selected documents.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();

Chapter 10: Java Classes A–Z 1767


AgentContext class

// (Your code goes here)


DocumentCollection dc =
agentContext.getUnprocessedDocuments();
System.out.println("Count = " + dc.getCount());
Document doc = dc.getFirstDocument();
while (doc != null) {
System.out.println(
doc.getItemValueString("Subject"));
doc = dc.getNextDocument();
}
} catch(Exception e) {
e.printStackTrace();
}
}
}

unprocessedFTSearch method
Given a full-text query, returns documents in a database that:
The current agent considers to be unprocessed
And match the query

Defined in
AgentContext

Syntax
public DocumentCollection unprocessedFTSearch(String query,
int maxdocs)
throws NotesException
public DocumentCollection unprocessedFTSearch(String query,
int maxdocs, int sortopt, int otheropt)
throws NotesException

Parameters
String query

The full-text query.


int maxdocs

The maximum number of documents you want returned; 0 means all


matching documents.

1768 Domino Designer Programming Guide, Volume 3: JavaScript Classes


AgentContext class

int sortopt

Use one of these to specify a sorting option:


Database.FT_SCORES (default) sorts by relevance score with highest
relevance first.
Database.FT_DATE_DES sorts by document creation date in
descending order.
Database.FT_DATE_ASC sorts by document creation date in
ascending order.
otheropt

Integer. Use the following constants to specify additional search


options. To specify more than one option, use a logical or operation.
Database.FT_DATABASE includes Domino databases in the
search scope.
Database.FT_FILESYSTEM includes files other than Domino
databases in the search scope.
Database.FT_FUZZY specifies a fuzzy search.
Database.FT_STEMS uses stem words as the basis of the search.

Return Value
DocumentCollection

A sorted collection of documents that are not yet processed and match
the query.

Usage
This method is valid only for agents.

How does it work?


This method works in two parts:
First, it finds a collection of documents that the agent considers to be
“unprocessed.” The type of agent determines which documents are
considered to be unprocessed. This document collection is identical to
that returned by getUnprocessedDocuments.
Second, it conducts a full-text search on the unprocessed documents
and returns a collection of those documents that match the query.
For example, in an agent that runs on all selected documents in a view,
getUnprocessedFTSearch searches only the selected documents and returns
those that match the query. In an agent that runs on all new and modified
documents since the last run, getUnprocessedFTSearch searches only the
documents that were not marked by updateProcessedDoc, and returns
those that match the query.

Chapter 10: Java Classes A–Z 1769


AgentContext class

What documents are returned?


The following table describes the documents that are returned by
unprocessedFTSearch.
Agent runs on: unprocessedFTSearch returns documents that meet all of
these requirements:
All documents Meet the search criteria specified in Agent Builder
in database Meet the full-text search critieria specified in this method
All new and modified Not processed by this agent with updateProcessedDoc
documents since last run Just created or modified
Meet the search criteria specified in Agent Builder
Meet the full-text search critieria specified in this method
All unread documents Are unread and in the view
in view Meet the search criteria specified in Agent Builder
Meet the full-text search criteria specified in this method
All documents in view Are in the view
Meet the search criteria specified in Agent Builder
Meet the full-text search criteria specified in this method
Selected documents Are selected in the view
Meet the search criteria specified in Agent Builder
Meet the full-text search criteria specified in this method
Run once Is the current document

Using updateProcessedDoc
For agents that run on new and modified documents, you must use
updateProcessedDoc to mark each document as “processed,” which ensures
that a document gets processed by the agent only once (unless it’s modified
again). If you do not call this method for each document, the agent
processes the same documents the next time it runs.
The updateProcessedDoc method marks a document as processed only for
the particular agent from which it is called. Using updateProcessedDoc in
one agent has no effect on the documents that another agent processes.

Full-text indexes
If the database is not full-text indexed, this method works, but less
efficiently. To test for an index, use isFTIndexed. To create an index on a
local database, use updateFTIndex.

1770 Domino Designer Programming Guide, Volume 3: JavaScript Classes


AgentContext class

Query syntax
To search for a word or phrase, enter the word or phrase as is, except that
search keywords must be enclosed in quotes. Remember to escape quotes if
you are inside a literal.
Wildcards, operators, and other syntax are permitted. For the complete
syntax rules, see search operators in client help.

Example: unprocessedFTSearch method


This agent runs on all or selected documents. It puts all documents that
contain the word “botany” in the folder “Botanist’s Delight.”
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
DocumentCollection dc =
agentContext.unprocessedFTSearch
("botany", 0, Database.FT_SCORES,
Database.FT_STEMS);
System.out.println("Count = " + dc.getCount());
Document doc = dc.getFirstDocument();
while (doc != null)
{
doc.putInFolder("Botanist's Delight");
System.out.println(
doc.getItemValueString("Subject"));
doc = dc.getNextDocument();
}
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 1771


AgentContext class

unprocessedSearch method
Given selection criteria, returns documents in a database that:
The current agent considers to be unprocessed
Meet the selection criteria
Were created or modified since the cutoff date

Defined in
AgentContext

Syntax
public DocumentCollection unprocessedSearch(String formula,
DateTime limit, int maxdocs)
throws NotesException

Parameters
String formula

A Domino formula that defines the selection criteria.


DateTime limit

A cutoff date.
int maxdocs

The maximum number of documents you want returned; 0 means all


matching documents.

Return value
DocumentCollection

A collection of documents that are not yet processed, match the


selection criteria, and were created or modified after the cutoff date.
The collection is sorted by relevance with highest relevance first.

Usage
This method is valid only for agents.

How does it work?


This method works in two parts:
First, it finds a collection of documents that the agent considers to be
“unprocessed.” The type of agent determines which documents are
considered to be unprocessed. This document collection is identical to
that returned by getUnprocessedDocuments.
Second, it conducts a search on the unprocessed documents, and
returns a collection of those documents that match the selection criteria
and were created or modified since the cutoff date.

1772 Domino Designer Programming Guide, Volume 3: JavaScript Classes


AgentContext class

For example, in an agent that runs on all selected documents in the view,
unprocessedSearch searches only the selected documents and returns those
that match the selection criteria. In an agent that runs on all new and
modified documents since the last run, unprocessedSearch searches only
the documents that were not marked by updateProcessedDoc, and returns
those that match the selection criteria.

What documents are returned?


The following table describes the documents that are returned by
unprocessedSearch.
Agent runs on: unprocessedSearch returns documents that meet all of
these requirements:
All documents Meet the search criteria specified in Agent Builder
in database Meet the formula search critieria specified in this
method
Meet the cutoff date specified in this method
All new and modified Not processed by this agent with updateProcessedDoc
documents since last run Just created or modified
Meet the search criteria specified in Agent Builder
Meet the formula search critieria specified in this
method
Meet the cutoff date specified in this method
All unread documents Are unread and in the view
in view Meet the search criteria specified in Agent Builder
Meet the formula search criteria specified in this
method
Meet the cutoff date specified in this method
All documents in view Are in the view
Meet the search criteria specified in Agent Builder
Meet the formula search criteria specified in this
method
Meet the cutoff date specified in this method
Selected documents Are selected in the view
Meet the search criteria specified in Agent Builder
Meet the formula search criteria specified in this
method
Meet the cutoff date specified in this method
Run once Is the current document

Chapter 10: Java Classes A–Z 1773


AgentContext class

Using updateProcessedDoc
For agents that run on new and modified documents, you must use
updateProcessedDoc to mark each document as “processed,” which ensures
that a document gets processed by the agent only once (unless it’s modified
again). If you do not call this method for each document, the agent
processes the same documents the next time it runs.
The updateProcessedDoc method marks a document as processed only for
the particular agent from which it is called. Using updateProcessedDoc in
one agent has no effect on the documents that another agent processes.

Example: unprocessedSearch method


This agent searches all or selected documents for documents created after
January 1, 1999 that contain “botany” in the Subject field, and places them
in the “Botanist’s Delight” folder.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
DateTime date = session.createDateTime("01/01/99");
DocumentCollection dc =
agentContext.unprocessedSearch
("@Contains(Subject; \"botany\")", date, 0);
Document doc = dc.getFirstDocument();
while (doc != null) {
doc.putInFolder("Botanist's Delight");
agentContext.updateProcessedDoc(doc);
System.out.println(
doc.getItemValueString("Subject"));
doc = dc.getNextDocument();
}
} catch(Exception e) {
e.printStackTrace();
}
}
}

1774 Domino Designer Programming Guide, Volume 3: JavaScript Classes


AgentContext class

updateProcessedDoc method
Marks a document as processed by an agent.

Defined in
AgentContext

Syntax
public void updateProcessedDoc(Document doc)
throws NotesException

Parameter
Document doc

The document to be marked as processed. Cannot be null.

Usage
Use this method in conjunction with getUnprocessedDocuments,
unprocessedFTSearch, and unprocessedSearch. This method is intended for
agents that run on all new and modified documents since the last run. In
other programs, this method has no effect.

What does it do?


This method ensures that a document gets processed by an agent only once.
When an agent runs a program to process all new and modified documents
since the last run, the program can use getUnprocessedDocuments,
unprocessedFTSearch, or unprocessedSearch to get the newly created and
newly modified documents, but must use updateProcessedDoc to mark the
documents that it processes.
Without updateProcessedDoc, getUnprocessedDocuments returns all the
documents in the database, and unprocessedFTSearch and
unprocessedSearch return all the documents in the database that meet their
respective criteria, regardless of whether the documents have already been
searched in a previous invocation of the agent.
This method marks a document as processed only for the particular agent
from which it is called. Using UpdateProcessedDoc in one agent has no
effect on the documents that another agent processes.

Example: updateProcessedDoc method


This program is for an agent that runs on newly created and modified
documents since the last run. The program gets the unprocessed
documents, prints each Subject item, and marks each document as
processed. The first time the agent runs, getUnprocessedDocuments returns
all of the documents in the database. Thereafter, getUnprocessedDocuments
returns those documents that updateProcessedDoc has not touched.

Chapter 10: Java Classes A–Z 1775


Database class

import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
DocumentCollection dc =
agentContext.getUnprocessedDocuments();
Document doc = dc.getFirstDocument();
while (doc != null) {
System.out.println(
doc.getItemValueString("Subject"));
agentContext.updateProcessedDoc(doc);
doc = dc.getNextDocument();
}
} catch(Exception e) {
e.printStackTrace();
}
}
}

Database class
Represents a Notes database.

Syntax
public class Database extends Base

Containment
Contained by: AgentContext, DbDirectory, and Session
Can contain: ACL, Agent, DateTime, Document, DocumentCollection,
Form, Replication, View

Properties
ACL through getACL
Agents through getAgents
AllDocuments through getAllDocuments
Categories through getCategories and setCategories
Created through getCreated
CurrentAccessLevel through getCurrentAccessLevel

1776 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Database class

DesignTemplateName through getDesignTemplateName


FileName through getFileName
FilePath through getFilePath
FolderReferencesEnabled through getFolderReferences and
setFolderReferences
Forms through getForms
IsDelayUpdates through isDelayUpdates and setDelayUpdates
IsFTIndexed through isFTIndexed
IsMultiDbSearch through isMultiDbSearch
IsOpen through isOpen
IsPrivateAddressBook through isPrivateAddressBook
IsPublicAddressBook through isPublicAddressBook
LastFTIndexed through getLastFTIndexed
LastModified through getLastModified
Managers through getManagers
MaxSize through getMaxSize
Parent through getParent
PercentUsed through getPercentUsed
ReplicaID through getReplicaID
ReplicationInfo through getReplicationInfo
Server through getServer
Size through getSize
SizeQuota through getSizeQuota and setSizeQuota
TemplateName through getTemplateName
Title through getTitle and setTitle
Views through getViews

Methods
compact
createCopy
createDocument

Chapter 10: Java Classes A–Z 1777


Database class

createFromTemplate
createOutline
createReplica
enableFolder
FTDomainSearch
FTSearch
getAgent
getDocumentByID
getDocumentByUNID
getDocumentByURL
getForm
getOutline
getProfileDocCollection
getProfileDocument
getURLHeaderInfo
getView
grantAccess
open
queryAccess
remove
replicate
revokeAccess
search
updateFTIndex

Creation and access


There are several ways you can use the Database class to access existing
databases and to create new ones.
To access the current database if you are running as an agent, use
getCurrentDatabase in AgentContext.
To access an existing database when you know its server and file name,
use getDatabase in Session.

1778 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Database class

To access an existing database when you know its server and replica ID,
use openByReplicaID in DbDirectory.
To locate an existing database when you know its server but not its file
name, use the DbDirectory class.
To access the current user’s mail database, use openMail in
DbDirectory.
To open the default Web Navigator database, use openURLDatabase
in Session.
To access the available Domino Directories and Personal Address
Books, use getAddressBooks in Session.
To test for the existence of a database with a specific server and file
name before accessing it, use openDatabase or openDatabaseIfModified
in DbDirectory.
To create a new database from an existing database, use createCopy,
createFromTemplate, or createReplica.
To create a new database from scratch, use createDatabase in
DbDirectory.
To access a database when you have a contained object such as View,
Document, DocumentCollection, ACL, or Agent, use the appropriate
Parent (or ParentDatabase) property.

Usage
A database must be open before you can use all the properties and methods
in the corresponding Database object. In most cases, the class library
automatically opens a database for you. But see isOpen for the exceptions.

Access levels
Notes throws an exception when you attempt to perform an operation for
which the user does not have appropriate access. The properties and
methods that you can successfully use on a Database object are determined
by these factors:
The user’s access level to the database, as determined by the database
access control list. The ACL determines if the user can open a database,
add documents to it, remove documents from it, modify the ACL, and
so on.
The user’s access level to the server on which the database resides, as
determined by the Server document in the Domino Directory.

Chapter 10: Java Classes A–Z 1779


Database class

Examples: Database class


1. This agent creates a Database object called db and assigns a database to
it. The database is names.nsf located at the top level of the data
directory on server doc. If the database exists, getDatabase
automatically opens it.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db =
session.getDatabase("doc", "names");
System.out.println(db.getTitle());
} catch(Exception e) {
e.printStackTrace();
}
}
}
2. This agent uses isOpen to test if the database quack.nsf exists locally. If
not, the agent uses the create method to create a new database on disk.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db, template;
db = session.getDatabase(null, "quack");
if (db.isOpen())
System.out.println(db.getTitle());
else {
System.out.println("Database does not exist");
System.out.println("Creating new database ...");
template = session.getDatabase(null,
"discsw50.ntf");
if (template.isOpen()) {
db = template.createFromTemplate
(null, "quack", true);
db.setTitle("Ducks of North America");
System.out.println(db.getTitle()); }
else
System.out.println

1780 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Database class

("Template discsw50.ntf does not exist"); }


} catch(Exception e) {
e.printStackTrace();
}
}
}
3. This agent is the same as the last except that the database is in a
subdirectory of the data directory. Notice that two backslashes must be
used because the backslash is an escape character in Java.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db, template;
db = session.getDatabase(null, "quack");
if (db.isOpen())
System.out.println(db.getTitle());
else {
System.out.println(
"Database does not exist");
System.out.println(
"Creating new database ...");
template = session.getDatabase(null,
"discsw50.ntf");
if (template.isOpen()) {
db = template.createFromTemplate
(null, "birds\\quack", true);
db.setTitle("Ducks of North America");
System.out.println(db.getTitle()); }
else
System.out.println
("Template discsw50.ntf does not exist"); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

4. This agent gives Brian Flokka Editor access to the current database.
Using the CurrentDatabase property avoids having to use file names in
agents and makes agents easily portable from one database to another.
import lotus.domino.*;
public class JavaAgent extends AgentBase {

Chapter 10: Java Classes A–Z 1781


Database class

public void NotesMain() {


try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
db.grantAccess("Brian Flokka", ACL.LEVEL_EDITOR);
} catch(Exception e) {
e.printStackTrace();
}
}
}

5. This agent shows how you can use the openIfModified method to open
a database only if it’s been modified after a certain date. The agent
checks if quack.nsf on the current server was modified since yesterday;
if so, the agent opens the database and compacts it.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
DbDirectory dir = session.getDbDirectory(null);
DateTime dt = session.createDateTime("");
dt.setNow();
dt.adjustDay(-1);
Database db = dir.openDatabaseIfModified
("quack", dt);
if (db != null) {
System.out.println("Compacting database");
db.compact(); }
else
System.out.println(
"Database not modified in past
day");
} catch(Exception e) {
e.printStackTrace();
}
}
}

1782 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Database class

ACL property
Read-only. The access control list for a database.

Defined in
Database

Data type
ACL

Syntax
public ACL getACL()
throws NotesException

Example: ACL property


This agent prints the name of every entry in the ACL of the current
database.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
ACL acl = db.getACL();
ACLEntry acle = acl.getFirstEntry();
do {
System.out.println(acle.getName());
} while ((acle = acl.getNextEntry(acle)) != null);
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 1783


Database class

Agents property
Read-only. All of the agents in a database.

Defined in
Database

Data type
java.util.Vector; elements are Agent

Syntax
public java.util.Vector getAgents()
throws NotesException

Usage
If the program runs on a workstation or is remote (IIOP), the return vector
includes public agents and personal agents that belong to the current user.
If the program runs on a server, the return vector includes only public
agents.

Example: Agents property


This agent prints the name of each agent in the current database.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Vector agents = db.getAgents();
System.out.println("Agents in database:");
for (int i=0; i<agents.size(); i++) {
Agent agent = (Agent)agents.elementAt(i);
System.out.println(" " + agent.getName()); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

1784 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Database class

AllDocuments property
Read-only. An unsorted collection containing all the documents in a
database.

Defined in
Database

Data type
DocumentCollection

Syntax
public DocumentCollection getAllDocuments()
throws NotesException

Usage
The FTSearch and search methods return smaller collections of documents
that meet specific criteria.
Using the AllDocuments property is more efficient than using the search
method with an @All formula.

Example: AllDocuments property


This agent prints the number of documents in the current database, then
prints the value of the Subject item for each document.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
String title = db.getTitle();
DocumentCollection dc = db.getAllDocuments();
System.out.println("Database \"" +
title + "\" has " + dc.getCount() + " documents");
Document doc;

Chapter 10: Java Classes A–Z 1785


Database class

for (int i=1; i<=dc.getCount(); i++) {


doc = dc.getNthDocument(i);
System.out.println
("Document #" + (i+1) + ": " +
doc.getItemValue("Subject")); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

Categories property
Read-write. The categories under which a database appears in the Database
Library. Multiple categories are separated by a comma or semicolon.

Defined in
Database

Data type
String

Syntax
public String getCategories()
throws NotesException
public void setCategories(String categories)
throws NotesException

Usage
A database retrieved through getFirstDatabase or getNextDatabase in
DbDirectory does not have to be open for getCategories. Otherwise, the
database must be open.

Examples: Categories property


1. This agent prints the categories of the current database.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
String title = db.getTitle();

1786 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Database class

String cat = db.getCategories();


if (cat != "")
System.out.println("Database \"" +
title + "\" has the categories: " + cat);
else
System.out.println("Database \"" +
title + "\" has no categories");
} catch(Exception e) {
e.printStackTrace();
}
}
}
2. This agent sets the Categories property of the current database to
“Examples database.”
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
db.setCategories("Examples database");
} catch(Exception e) {
e.printStackTrace();
}
}
}

Created property
Read-only. The date a database was created.

Defined in
Database

Data type
DateTime

Syntax
public DateTime getCreated()
throws NotesException

Chapter 10: Java Classes A–Z 1787


Database class

Example: Created property


This agent prints the creation date of the current database.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
String created = db.getCreated().getLocalTime();
String title = db.getTitle();
System.out.println("Database \"" + title +
"\" was created on " + created);
} catch(Exception e) {
e.printStackTrace();
}
}
}

CurrentAccessLevel property
Read-only. The current user’s access level to a database.

Defined in
Database

Data type
int

Syntax
public int getCurrentAccessLevel
throws NotesException

Legal values
ACL.LEVEL_AUTHOR
ACL.LEVEL_DEPOSITOR
ACL.LEVEL_DESIGNER
ACL.LEVEL_EDITOR
ACL.LEVEL_MANAGER
ACL.LEVEL_NOACCESS
ACL.LEVEL_READER

1788 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Database class

Usage
If a program runs on a workstation or is remote (IIOP),
CurrentAccessLevel is determined by the access level of the
current user.
If a program runs on a server, CurrentAccessLevel is determined by the
access level of the person who last saved the program (the owner).

Example: CurrentAccessLevel property


This example prints a message indicating the current user’s access level to
the current database.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
String title = db.getTitle();
int level = db.getCurrentAccessLevel();
System.out.print("For database \"" + title +
"\" you have ");
switch(level) {
case(ACL.LEVEL_NOACCESS) :
System.out.print("No access"); break;
case(ACL.LEVEL_DEPOSITOR) :
System.out.print("Depositor access"); break;
case(ACL.LEVEL_READER) :
System.out.print("Reader access"); break;
case(ACL.LEVEL_AUTHOR) :
System.out.print("Author access"); break;
case(ACL.LEVEL_EDITOR) :
System.out.print("Editor access"); break;
case(ACL.LEVEL_DESIGNER) :
System.out.print("Designer access"); break;
case(ACL.LEVEL_MANAGER) :
System.out.print("Manager access"); break;
default:
System.out.print("Unknown access"); break; }
System.out.print("\n");
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 1789


Database class

DesignTemplateName property
Read-only. The name of the design template from which a database inherits
its design. If the database does not inherit its design from a design template,
returns an empty string.

Defined in
Database

Data type
String

Syntax
public String getDesignTemplateName()
throws NotesException

Usage
If a database inherits a specific design element (such as a form) but not its
entire design from a template, this property returns an empty string.

Example: DesignTemplateName property


This agent prints the design template name for the current database if one
exists.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
String title = db.getTitle();
String template = db.getDesignTemplateName();
if (template != "")
System.out.println("Database \"" + title +
"\" inherits its design from " + template);
else
System.out.println("Database \"" + title +
"\" did not inherit its design from a template");
} catch(Exception e) {
e.printStackTrace();
}
}
}

1790 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Database class

FileName property
Read-only. The file name of a database, excluding the path.

Defined in
Database

Data type
String

Syntax
public String getFileName()
throws NotesException

Example: FileName property


This agent prints the title and name of the current database.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
String title = db.getTitle();
String name = db.getFileName();
System.out.println("Database \"" + title +
"\" has the file name " + name);
} catch(Exception e) {
e.printStackTrace();
}
}
}

FilePath property
Read-only. The path and file name of a database.

Defined in
Database

Data type
String

Chapter 10: Java Classes A–Z 1791


Database class

Syntax
public String getFilePath()
throws NotesException

Usage
If the database is on a Notes workstation, FilePath returns the complete
path (for example, C:\Notes\data\sub\db.nsf). If the database is on a
Domino server, FilePath returns the path relative to the data directory (for
example, sub\db.nsf).

Example: FilePath property


This agent prints the title and path of the current database.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
String title = db.getTitle();
String path = db.getFilePath();
System.out.println("Database \"" + title +
"\" has the file path " + path);
} catch(Exception e) {
e.printStackTrace();
}
}
}

FolderReferencesEnabled property
Read-write. Indicates whether this database maintains folder references for
documents.

Defined in
Database

Data type
boolean

1792 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Database class

Syntax
public boolean getFolderReferencesEnabled()
throws NotesException
public void setFolderReferencesEnabled(boolean bEnable)
throws NotesException

Legal Values
true maintains folder references
false (default) does not maintain folder references

Usage
Maintaining folder references impacts performance.

Example: FolderReferencesEnabled property


This agent toggles the FolderReferencesEnabled property.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
String msg;
if (db.getFolderReferencesEnabled()) {
db.setFolderReferencesEnabled(false);
msg = "Folder references disabled"; }
else {
db.setFolderReferencesEnabled(true);
msg = "Folder references enabled"; }
System.out.println(msg);
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 1793


Database class

Forms property
Read-only. All the forms in a database.
Database

Data type
java.util.Vector; elements are Form

Syntax
public java.util.Vector getForms()
throws NotesException

Example: Forms property


This example displays the names of all the forms in the current database
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
String title = db.getTitle();
Vector forms = db.getForms();
System.out.println("Agents in database:");
for (int i=0; i<forms.size(); i++) {
String name = ((Form)forms.elementAt(i)).getName();
System.out.println("Form #" + (i+1) + ": " + name); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

IsDelayUpdates property
Read-write. Indicates whether updates to a server are delayed (batched) for
better performance.

Defined in
Database

Data type
boolean

1794 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Database class

Syntax
public boolean isDelayUpdates()
throws NotesException
public void setDelayUpdates(boolean delay)
throws NotesException

Legal Values
true delays server updates
false posts server updates immediately

Usage
If DelayUpdates is false, the program waits for updates to the server to be
posted. If you set DelayUpdates to true, server updates are cached and the
program proceeds immediately. At a convenient time, the cached updates
are posted. This makes for better performance but risks losing the cached
updates in the event of a crash. This method applies to save and remove
operations on documents.
Set this property each time you open a database. The property is not saved.

Example: IsDelayUpdates property


This agent enables delayed updates for the current database if the comment
for the current agent is “DelayUpdates.”
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
Database db = agentContext.getCurrentDatabase();
if (agent.getComment() == "DelayUpdates")
db.setDelayUpdates(true);
else
db.setDelayUpdates(false);
System.out.println
("Delay updates is " + db.isDelayUpdates());
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 1795


Database class

IsFTIndexed property
Read-only. Indicates whether or not a database has a full-text index.

Defined in
Database

Data type
boolean

Syntax
public boolean isFTIndexed()
throws NotesException

Legal values
true if the database has a full-text index
false if the database does not have a full-text index

Example: IsFTIndexed property


This agent prints a message saying whether the current database has a
full-text index.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
String title = db.getTitle();
if (db.isFTIndexed())
System.out.println("Database \"" + title +
"\" is full-text indexed");
else
System.out.println("Database \"" + title +
"\" is not full-text indexed");
} catch(Exception e) {
e.printStackTrace();
}
}
}

1796 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Database class

IsMultiDbSearch property
Read-only. Indicates whether a database represents a multi-database search
index.

Defined in
Database

Data type
boolean

Syntax
public boolean isMultiDbSearch()
throws NotesException

Legal values
true if the database represents a multi-database search index
false if the database does not represent a multi-database search index

Example: IsMultiDbSearch property


This agent prints whether the current database represents a multi-database
search index.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
String title = db.getTitle();
if (db.isMultiDbSearch())
System.out.println("Database \"" + title +
"\" is a multi-database search index");
else
System.out.println("Database \"" + title +
"\" is not a multi-database search index");
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 1797


Database class

IsOpen property
Read-only. Indicates whether a database is open.

Defined in
Database

Data type
boolean

Syntax
public boolean isOpen()
throws NotesException

Legal values
true if the database is open
false if the database is not open

Usage
A database must be open to use the Database methods except:
getCategories, getDelayUpdates, getDesignTemplateName, getFileName,
getFilePath, isOpen, isPrivateAddressBook, isPublicAddressBook,
getParent, getReplicaID, getServer, getSizeQuota, getTemplateName, and
getTitle.
The following methods do not open a database:
DbDirectory.getFirstDatabase, DbDirectory.getNextDatabase, and
Session.getAddressBooks. You must explicitly call Database.open.

Example: IsOpen property


This agent prints the result of isOpen before and after opening a database.
import lotus.domino.*;
public class JavaAgent extends AgentBase {

public void isitopen(Database db) throws NotesException {


if (db.isOpen())
System.out.println("\"" + db.getTitle() +
"\" is open");
else
System.out.println("\"" + db.getTitle() +
"\" is not open"); }
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
DbDirectory Dir = session.getDbDirectory(null);

1798 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Database class

Database db =
Dir.getFirstDatabase(DbDirectory.DATABASE);
isitopen(db);
db.open();
isitopen(db);
} catch(Exception e) {
e.printStackTrace();
}
}
}

IsPrivateAddressBook property
Read-only. Indicates if a database is a Personal Address Book.

Defined in
Database

Data type
boolean

Syntax
public boolean isPrivateAddressBook()
throws NotesException

Legal values
true if the database is a Personal Address Book
false if the database is not a Personal Address Book

Usage
This property is available for Database objects retrieved by
getAddressBooks in Session. For other Database objects, this property has
no value and evaluates to false.

Example: IsPrivateAddressBook property


This agent uses getAddressBooks in Session to retrieve the user Domino
Directories and Personal Address Books, and prints a message for each one
that is a Personal Address Book.
import lotus.domino.*;
import java.util.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();

Chapter 10: Java Classes A–Z 1799


Database class

// (Your code goes here)


System.out.println("Personal address books:\n");
Vector books = session.getAddressBooks();
Enumeration e = books.elements();
Database db;
while (e.hasMoreElements()) {
db = (Database)e.nextElement();
if (db.isPrivateAddressBook()) {
String msg = " " + db.getFilePath();
if (db.getServer() != "")
msg = msg + " on " + db.getServer();
System.out.println(msg); }}
} catch(Exception e) {
e.printStackTrace();
}
}
}

IsPublicAddressBook property
Read-only. Indicates if a database is a Domino Directory.

Defined in
Database

Data type
boolean

Syntax
public boolean isPublicAddressBook()
throws NotesException

Legal values
true if the database is a Domino Directory
false if the database is not a Domino Directory

Usage
This property is available for Database objects retrieved from
getAddressBooks in Session. For other Database objects, this property has
no value and evaluates to false.

1800 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Database class

Example: IsPublicAddressBook property


This agent retrieves the current user Domino Directories and Personal
Address Books, and prints a message for each one that is a Domino
Directory.
import lotus.domino.*;
import java.util.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
System.out.println("Domino Directories:\n");
Vector books = session.getAddressBooks();
Enumeration e = books.elements();
Database db;
while (e.hasMoreElements()) {
db = (Database)e.nextElement();
if (db.isPublicAddressBook()) {
String msg = " " + db.getFilePath();
if (db.getServer() != "")
msg = msg + " on " + db.getServer();
System.out.println(msg); }}
} catch(Exception e) {
e.printStackTrace();
}
}
}

LastFTIndexed property
Read-only. The date that a database’s full-text index was last updated.

Defined in
Database

Data type
DateTime

Syntax
public DateTime getLastFTIndexed()
throws NotesException

Chapter 10: Java Classes A–Z 1801


Database class

Usage
If the database does not have a full-text index, this property returns null.

Example: LastFTIndexed property


This agent prints the last update date of the full-text index for the current
database if it has an index.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
String title = db.getTitle();
if (db.isFTIndexed()) {
DateTime dt = db.getLastFTIndexed();
System.out.println("Database \"" + title +
"\" last full-text indexed on " +
dt.getDateOnly()); }
else
System.out.println("Database \"" + title +
"\" is not full-text indexed");
} catch(Exception e) {
e.printStackTrace();
}
}
}

LastModified property
Read-only. The date that a database was last modified.

Defined in
Database

Data type
DateTime

Syntax
public DateTime getLastModified()
throws NotesException

1802 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Database class

Example: LastModified property


This agent prints the date and time that the current database was last
modified.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
String lastMod = db.getLastModified().getLocalTime();
String title = db.getTitle();
System.out.println("Database \"" + title +
"\" was last modified on " + lastMod);
} catch(Exception e) {
e.printStackTrace();
}
}
}

Managers property
Read-only. People, servers, and groups that have Manager access to a
database.

Defined in
Database

Data type
java.util.Vector; elements are String

Syntax
public java.util.Vector getManagers()
throws NotesException

Usage
Each element in the vector is the name of a person, server, or group with
Manager access to the database.

Chapter 10: Java Classes A–Z 1803


Database class

Example: Managers property


This agent displays the number of managers in the current database and the
name of each.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
String title = db.getTitle();
Vector managers = db.getManagers();
int size = managers.size();
if (size == 1) {
System.out.println("Database \"" +
title + "\" has 1 manager"); }
else {
System.out.println("Database \"" +
title + "\" has " + size + " managers"); }
for (int i=0; i<size; i++) {
String name = (String)managers.elementAt(i);
System.out.println
("Manager # " + (i+1) + ": " + name); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

MaxSize property
Read-only. The maximum size of a database in kilobytes.

Defined in
Database

Data type
long

Syntax
public long getMaxSize()
throws NotesException

1804 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Database class

Parent property
Read-only. The Notes session that contains a database.

Defined in
Database

Data type
Session

Syntax
public Session getParent()

Example: Parent property


This agent prints the user name of the parent session for the current
database.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = session.getDatabase("doc", "names");
session = db.getParent();
System.out.println(session.getUserName());
} catch(Exception e) {
e.printStackTrace();
}
}
}

PercentUsed property
Read-only. The percent of a database’s total size that is occupied by real
data (and not empty space).

Defined in
Database

Data type
double

Chapter 10: Java Classes A–Z 1805


Database class

Syntax
public double getPercentUsed()
throws NotesException

Usage
Compacting a database removes empty space in the database file.

Example: PercentUsed property


This agent prints the percentage of the current database that contains data.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
String title = db.getTitle();
double percent = db.getPercentUsed();
System.out.println("Database \"" + title +
"\" is " + percent + " percent used.");
} catch(Exception e) {
e.printStackTrace();
}
}
}

ReplicaID property
Read-only. A 16-digit hexadecimal number that represents the replica ID of
a Notes database. Databases with the same replica ID are replicas of one
another.

Defined in
Database

Data type
String

Syntax
public String getReplicaID()
throws NotesException

1806 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Database class

Example: ReplicaID property


This agent prints the replica ID of the current database.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
String title = db.getTitle();
String repid = db.getReplicaID();
System.out.println("Database \"" + title +
"\" has the replica ID " + repid);
} catch(Exception e) {
e.printStackTrace();
}
}
}

ReplicationInfo property
Read-only. The replication object associated with this database.

Defined in
Database

Data type
Replication

Syntax
public Replication getReplicationInfo()
throws NotesException

Usage
See the Replication class for information and examples.

Chapter 10: Java Classes A–Z 1807


Database class

Server property
Read-only. The name of the server where a database resides.

Defined in
Database

Data type
String

Syntax
public String getServer()
throws NotesException

Usage
If the database is on a workstation, the property returns an empty string.

Example: Server property


This agent prints the name of the server for the current database.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
String title = db.getTitle();
String server = db.getServer();
if (server != "")
System.out.println("Database \"" + title +
"\" resides on server " + server);
else
System.out.println("Database \"" + title +
"\" is local");
} catch(Exception e) {
e.printStackTrace();
}
}
}

1808 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Database class

Size property
Read-only. The size of a database, in bytes.

Defined in
Database

Data type
double

Syntax
public double getSize()
throws NotesException

Example: MaxSize and Size properties


This agent prints the size of the current database.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
String title = db.getTitle();
double size = db.getSize();
System.out.println
("The size of database \"" + title +
"\" is" + (int)size + " bytes");
long maxsize = db.getMaxSize();
System.out.println
("The maximum size of database \"" + title +
"\" is" + maxsize + " kilobytes");
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 1809


Database class

SizeQuota property
Read-write. The size quota of a database, in kilobytes.

Defined in
Database

Data type
int

Syntax
public int getSizeQuota()
throws NotesException
public void setSizeQuota(int quota)
throws NotesException

Usage
The size quota for a database specifies the amount of disk space that the
server administrator is willing to provide for the database. Therefore, the
SizeQuota property can only be set by a program that has administrator
access to the server on which the database resides. The size quota is not the
same as the size limit that a user specifies when creating a new database.
If the database has no size quota, this property returns 0.

Example: SizeQuota property


This agent changes the size quota of the current database, and prints the old
and new size quotas.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
String title = db.getTitle();
int oldq = db.getSizeQuota();
db.setSizeQuota(5000);
System.out.println
("The size quota of database \"" + title +
"\" is changed from " + oldq + " to 5000KB");

1810 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Database class

} catch(Exception e) {
e.printStackTrace();
}
}
}

TemplateName property
Read-only. The template name of a database, if the database is a template. If
the database is not a template, returns an empty string.

Defined in
Database

Data type
String

Syntax
public String getTemplateName()
throws NotesException

Example: TemplateName property


This agent gets the template name of discuss4.ntf in the local Notes
directory.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
String title = db.getTitle();
String template = db.getTemplateName();
if (template != "")
System.out.println("Database \"" + title +
"\" has the template name " + template);
else
System.out.println("Database \"" + title +
"\" is not a template");
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 1811


Database class

Title property
Read-write. The title of a database.

Defined in
Database

Data type
String

Syntax
public String getTitle()
throws NotesException
public void setTitle(String title)
throws NotesException

Usage
A program cannot change the title of the database in which the program is
currently running.

Example: Title property


This agent appends “(Marketing)” to the title of the current database.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
String title = db.getTitle();
if (title.endsWith("(Marketing)"));
else {
title = title + " (Marketing)";
db.setTitle(title); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

1812 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Database class

Views property
Read-only. The views and folders in a database.

Defined in
Database

Data type
java.util.Vector; elements are View

Syntax
public java.util.Vector getViews()
throws NotesException

Usage
Each element of the vector represents a public view or folder in the
database. If the database is local, personal folders are also included.

Example: Views property


This agent displays the names of all the views and folders in the current
database.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
String title = db.getTitle();
Vector views = db.getViews();
int size = views.size();
System.out.println("Database \"" + title +
"\" has " + size + " views");
for (int i = 0; i<size; i++) {
String name =
((View)views.elementAt(i)).getName();
System.out.println
("View #" + (i+1) + ": " + name); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 1813


Database class

compact method
Compacts a local database.

Defined in
Database

Syntax
public int compact()
throws NotesException

Return value
int

The difference in bytes between the size of the database before and
after compacting.

Usage
This method throws an exception if the database is not local.

Example: compact method


This agent compacts a database if less than 75% of its disk space is occupied
by real data. The user supplies the database name as the agent’s comment.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
String dbName = agent.getComment();
Database db = session.getDatabase(null, dbName);
String title = db.getTitle();
double percentUsed = db.getPercentUsed();
if (percentUsed < 75) {
int saved = db.compact();
System.out.println("Compacting database \"" +
title + "\""); }
System.out.println
("Database \"" + title + "\" is " +
(int)percentUsed + " percent used");
} catch(Exception e) {

1814 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Database class

e.printStackTrace();
}
}
}

createCopy method
Creates an empty copy of the current database. The copy contains the
design elements of the current database, an identical access control list, and
an identical title. The copy does not contain any documents and is not a
replica.

Defined in
Database

Syntax
public Database createCopy(String server, String dbfile)
throws NotesException

Parameters
String server

The name of the server where the new database resides. Specify null or
an empty string (“”) to create a local copy.
String dbfile

The file name of the new copy.

Return value
Database

The new copy.

Usage
If a database with the specified file name already exists, an exception
is thrown.
Programs running on a server or using remote (IIOP) calls to a server can’t
create or access databases on other servers. In these cases, the server
parameter must correspond to the server the program is running on. There
are two ways to do this:
Use null or an empty string (“”) to indicate the current computer. This
is the safer method.
Make sure the name of the server that the program runs on matches the
name of server.

Chapter 10: Java Classes A–Z 1815


Database class

Programs running on a workstation can access several different servers in a


single program.
The ACL of the original database gets copied to the new database, but you
may want to modify the copy’s ACL. For example, you may want Manager
access to the copy for yourself even if you’re not a manager of the original.
Use the methods grantAccess and revokeAccess to modify the copy’s ACL.

Example: createCopy method


This agent makes a local copy of the local database names.nsf.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = session.getDatabase(null, "names");
String title = db.getTitle();
Database db2 = db.createCopy(null, "names2");
db2.setTitle("Copy of names");
System.out.println
("Database \"" + title + "\" copied locally");
} catch(Exception e) {
e.printStackTrace();
}
}
}

createDocument method
Creates a document in a database and returns a Document object that
represents the new document.

Defined in
Database

Syntax
public Document createDocument()
throws NotesException

Return value
Document

The new document.

1816 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Database class

Usage
You must call save if you want the new document to be saved.

Example: createDocument method


This agent creates a new document in the current database, sets values for
its Form, Subject, Categories, and Body items, and saves it.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Document doc = db.createDocument();
doc.appendItemValue("Form", "Main Topic");
doc.appendItemValue("Subject", "Test Document");
doc.appendItemValue("Categories", "Test Documents");
RichTextItem rti = doc.createRichTextItem("Body");
rti.appendText("This is the first sentence of text.");
rti.appendText(" This is the second sentence of text.");
if (doc.save())
System.out.println("Document has been saved");
else
System.out.println("Unable to save document");
} catch(Exception e) {
e.printStackTrace();
}
}
}

createFromTemplate method
If the current database is a template, creates a new database from the
template. The new database has the design features and documents of the
template.

Defined in
Database

Syntax
public Database createFromTemplate(String server, String
dbfile, boolean inherit)
throws NotesException

Chapter 10: Java Classes A–Z 1817


Database class

Parameters
String server

The name of the server where the new database resides. Specify null or
an empty string (“”) to create a database on the current computer.
String dbfile

The file name of the new database.


boolean inherit

Specify true if you want the new database to inherit future design
changes from the template; otherwise, specify false.

Return value
Database

The new database, which contains the forms, subforms, fields, views,
folders, navigators, agents, and documents of the template.

Usage
If a database with the specified file name already exists, an exception is
thrown.
Programs running on a server or making remote (IIOP) calls to a server
can’t create or access databases on other servers. In these cases, the server
parameter must correspond to the server the program is running on. There
are two ways to do this:
Use null or an empty string (“”) to indicate the current computer. This
is the safer method.
Make sure the name of the server that the program runs on matches the
name of the server parameter.
Programs running on a workstation can access several different servers in a
single program.
If the current database is not a template, the createFromTemplate method
creates a new, blank database without any forms or views (equivalent to the
create method).

Example: createFromTemplate method


This agent creates a new database from the discussion template.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();

1818 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Database class

// (Your code goes here)


Database template = session.getDatabase(null,
"discsw50.ntf");
Database newdb = template.createFromTemplate
(null, "suggest", true);
newdb.setTitle("Suggestions for Giving Campaign");
System.out.println("\"Suggestions for Giving
Campagn\" created");
} catch(Exception e) {
e.printStackTrace();
}
}
}

createOutline method
Creates an outline.

Defined in
Database

Syntax
public Outline createOutline(String name)
throws NotesException
public Outline createOutline(String name, boolean
defaultOutline)
throws NotesException

Parameters
String outline

A name for the outline.


boolean defaultOutline

True to generate a default outline. Default is to create an empty outline.

Return value
Outline

The new outline.

Chapter 10: Java Classes A–Z 1819


Database class

createReplica method
Creates a replica of the current database at a new location. The new replica
has an identical access control list.

Defined in
Database

Syntax
public Database createReplica(String server, String dbfile)
throws NotesException

Parameters
String server

The name of the server where the replica will reside. Specify null or an
empty string (“”) to create a replica on the current computer.
String dbfile

The file name of the replica.

Return value
Database

The new replica.

Usage
If a database with the specified file name already exists, an exception is
thrown.
Programs running on a server or making remote (IIOP) calls to a server
can’t create or access databases on other servers. In these cases, the server
parameter must correspond to the server the program is running on. There
are two ways to do this:
Use null or an empty string (“”) to indicate the current computer. This
is the safer method.
Make sure the name of the server that the program runs on matches the
name of the server parameter.
Programs running on a workstation can access several different servers in a
single program.

1820 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Database class

Example: createReplica method


This agent creates a replica of the Domlog.nsf from notesua1 on the
current computer.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db =
session.getDatabase("notesua1", "Domlog");
String title = db.getTitle();
Database replica = db.createReplica(null, "Domlog");
System.out.println
("Database \"" + title + "\" has a new local replica");
} catch(Exception e) {
e.printStackTrace();
}
}
}

enableFolder method
Ensures that a folder exists, creating it if necessary.

Defined in
Database

Syntax
public void enableFolder(String folder)
throws NotesException

Parameters
String folder

The name of the folder.

Usage
If the folder exists, this method does nothing. If the folder does not exist,
this method creates it.

Chapter 10: Java Classes A–Z 1821


Database class

FTDomainSearch method
Conducts a Domain Search, that is, a full-text search of all databases listed
in a Domain Catalog and marked as included for multi-database indexing.

Defined in
Database

Syntax
public Document FTDomainSearch(String query, int max, int
sortopt, int otheropt, int start, int count, String entryForm)
throws NotesException

Parameters
String query

The full-text query. See below for the syntax.


int max

The maximum number of documents you want returned from the


query. Set this parameter to 0 to receive all matching documents.
int sortopt

Integer. Use one of the following constants to specify a sorting option:


Database.FT_SCORES (default) sorts by relevance score. When the
collection is sorted by relevance, the highest relevance appears first.
To access the relevance score of each document in the collection, use
the FTSearchScore property in Document.
Database.FT_DATE_DES sorts by document creation date in
descending order.
Database.FT_DATE_ASC sorts by document creation date in
ascending order.
otheropt

Integer. Use the following constants to specify additional search


options. To specify more than one option, use a logical or operation.
Database.FT_DATABASE includes Domino databases in the search
scope.
Database.FT_FILESYSTEM includes files other than Domino
databases in the search scope.
Database.FT_FUZZY specifies a fuzzy search.
Database.FT_STEMS uses stem words as the basis of the search.

1822 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Database class

int start

The starting page to return.


int count

The number of pages to return.


String entryForm

The name of the search form in the domain catalog, for example,
“Domain Search.”

Return value
Document

A document that contains the results of the full-text query.

Usage
The current Database object must represent a Domain Catalog.
If you don’t specify any sort options, you get the documents sorted by
relevance score. If you ask for a sort by date, you don’t get relevance scores.

Query syntax
To search for a word or phrase, enter the word or phrase as is, except that
search keywords must be enclosed in quotes. Remember to escape quotes if
you are inside a literal.
Wildcards, operators, and other syntax are permitted. For the complete
syntax rules, see “To use operators to refine a search” in Notes 5 Help.

FTSearch method
Conducts a full-text search of all the documents in a database.

Defined in
Database

Syntax
public DocumentCollection FTSearch(String query)
throws NotesException
public DocumentCollection FTSearch(String query, int max)
throws NotesException
public DocumentCollection FTSearch(String query, int max, int
sortopt, int otheropt)
throws NotesException

Chapter 10: Java Classes A–Z 1823


Database class

Parameters
String query

The full-text query. See below for the syntax.


int max

The maximum number of documents you want returned from the


query. Set this parameter to 0 to receive all matching documents.
sortopt

Integer. Use one of the following constants to specify a sorting option:


Database.FT_SCORES (default) sorts by relevance score. When the
collection is sorted by relevance, the highest relevance appears first.
To access the relevance score of each document in the collection, use
the FTSearchScore property in Document.
Database.FT_DATE_DES sorts by document creation date in
descending order.
Database.FT_DATE_ASC sorts by document creation date in
ascending order.
otheropt

Integer. Use the following constants to specify additional search


options. To specify more than one option, use a logical or operation.
Database.FT_DATABASE includes Domino databases in the search
scope.
Database.FT_FILESYSTEM includes files other than Domino
databases in the search scope.
Database.FT_FUZZY specifies a fuzzy search.
Database.FT_STEMS uses stem words as the basis of the search.

Return value
DocumentCollection

A collection of documents that match the full-text query, sorted by the


selected option. If no matches are found, the collection has a count of 0.

Usage
If the database is not full-text indexed, this method works, but less
efficiently. To test for an index, use the IsFTIndexed property. To create an
index on a local database, use the updateFTIndex method.
This method searches all documents in a database. To search only
documents found in a particular view, use the FTSearch method in View.
To search only documents found in a particular document collection, use
the FTSearch method in DocumentCollection.

1824 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Database class

If you don’t specify any sort options, you get the documents sorted by
relevance score. If you ask for a sort by date, you don’t get relevance scores.
A Newsletter object formats its doclink report with either the document
creation date or the relevance score, depending on the sort options you use
in the document collection.
If the database has a multi-database index, you get a multi-database search.
Navigation through the resulting document collection may be slow, but you
can create a newsletter from the collection.

Query syntax
To search for a word or phrase, enter the word or phrase as is, except that
search keywords must be enclosed in quotes. Remember to escape quotes if
you are inside a literal.
Wildcards, operators, and other syntax are permitted. For the complete
syntax rules, see “To use operators to refine a search” in Notes 5 Help.

Examples: FTSearch method


1. This agent searches the current database for the phrase specified in the
agent’s comment if the database is full-text indexed. Every document,
up to a maximum 100 documents, containing the phrase is placed into a
document collection.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
Database db = agentContext.getCurrentDatabase();
String title = db.getTitle();
if (db.isFTIndexed()) {
DocumentCollection dc = db.FTSearch
(agent.getComment(), 100);
int matches = dc.getCount();
System.out.println
("FTSearch of \"" + title + "\" found " +
matches + " document(s) with " +
agent.getComment()); }
else
System.out.println
("Database \"" + title +
"\" is not full-text indexed");

Chapter 10: Java Classes A–Z 1825


Database class

} catch(Exception e) {
e.printStackTrace();
}
}
}
2. This code fragment collects all documents containing both the words
“red” and “blue.”
DocumentCollection dc = db.FTSearch("red & blue", 100);

3. This code fragment collects all documents containing either the word
“red” or “blue” in descending order by creation date.
DocumentCollection dc = db.FTSearch("red | blue", 100,
Database.FT_DATE_DES, 0);

4. This code fragment collects all documents that do not contain the word
“red” or “blue” in descending order by creation date.
DocumentCollection dc = db.FTSearch("not (red | blue)",
100,Database.FT_DATE_DES, 0);

getAgent method
Finds an agent in a database, given the agent name.

Defined in
Database

Syntax
public Agent getAgent(String name)
throws NotesException

Parameter
String name

The name of the agent.

Return value
Agent

The agent whose name matches the parameter.

Usage
The return value is null if the current user (as obtained by
Session.getUserName) is not the owner of the private agent.

1826 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Database class

Example: getAgent method


This agent prints the owner, last run date, and query for the agent named
“Update Thread Maps.”
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Agent agent = db.getAgent("My Agent");
System.out.println("Agent:\t" + agent.getName());
System.out.println("Owner:\t" + agent.getOwner());
System.out.println(
"Last run:\t" + agent.getLastRun());
System.out.println("Query:\t" + agent.getQuery());
} catch(Exception e) {
e.printStackTrace();
}
}
}

getDocumentByID method
Finds a document in a database, given the document note ID.

Defined in
Database

Syntax
public Document getDocumentByID(String noteid)
throws NotesException

Parameters
String noteid

The note ID of a document.

Return value
Document

The document whose note ID matches the parameter.

Chapter 10: Java Classes A–Z 1827


Database class

Usage
For an explanation of note IDs, see the NoteID property in Document.
If you get a note ID from @NoteID, delete the “NT” prefix.

Example: getDocumentByID method


This agent gets the document in the current database whose note ID is the
agent comment, if such a document exists, and prints the value of the
Subject item.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
Agent agent = agentContext.getCurrentAgent();
Database db = agentContext.getCurrentDatabase();
Document doc = db.getDocumentByID
(agent.getComment());
System.out.println
("Document " + agent.getComment() +
" has the subject: " +
doc.getItemValueString("Subject"));
// (Your code goes here)
} catch(Exception e) {
e.printStackTrace();
}
}
}

getDocumentByUNID method
Finds a document in a database, given the document universal ID (UNID).

Defined in
Database

Syntax
public Document getDocumentByUNID(String unid)
throws NotesException

Parameters
String unid

The universal ID of a document.

1828 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Database class

Return Values
Document

The document whose universal ID matches the parameter.

Usage
For an explanation of universal IDs, see the UniversalID property in
Document. You can obtain the universal ID from the UniversalID property
or ParentDocumentUNID property of a document.

Example: getDocumentByUNID method


This agent gets the parents of all the response documents in the current
database.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
Document doc, pdoc;
String docSubj, pdocSubj;
for (int i=0; i<dc.getCount(); i++) {
doc = dc.getNthDocument(i+1);
if (doc.isResponse()) {
pdoc = db.getDocumentByUNID
(doc.getParentDocumentUNID());
docSubj =
doc.getItemValueString("Subject");
pdocSubj =
pdoc.getItemValueString("Subject");
System.out.println("\"" + pdocSubj +
"\" has the response \"" + docSubj + "\""); }}
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 1829


Database class

getDocumentByURL method
Finds a document in the Web Navigator database. You can use this method
for either the Server Web Navigator or Personal Web Navigator database.

Defined in
Database

Syntax
public Document getDocumentByURL(String url, boolean reload)
throws NotesException
public Document getDocumentByURL(String url, boolean reload,
boolean relifmod, boolean urllist, String charset, String
webuser, String webpasswd, String proxyuser, String
proxypasswd, boolean nowait)
throws NotesException

Parameters
String url

The desired uniform resource locator (URL), for example,


http://www.acme.com. Specify the entire URL starting with http.
You can enter a maximum string length of 15K.
boolean reload

True to reload the page from its Internet server. False to load the
page from the Internet only if it is not already in the Web
Navigator database.
boolean relifmod

(Defaults to the specification for the second parameter.) True to reload


the page only if it has been modified on its Internet server. False to
load the page from the Internet only if it is not already in the Web
Navigator database.
boolean urllist

(Defaults to false.) Web pages can contain URL links to other Web
pages. You can specify whether to save the URLs in a field called
URLLinksn in the Notes document. (The Web Navigator creates a
new URLLinksn field each time the field size reaches 64K. For
example, the first URLLinks field is URLLinks1, the second is
URLLinks2, and so on.)

1830 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Database class

Specify true if you want to save the URLs in the URLLinksn field(s).
Specify false if you do not want to save the URLs in the URLLinksn
field(s). If you save the URLs, you can use them in agents. For example,
you can create an agent that opens Web pages in the Web Navigator
database and then loads all the Web pages saved in each of the
URLLinksn field(s).
Caution Saving URLs in the URLLinksn field(s) may affect
performance.
String charset

(Defaults to null.) Enter the MIME character set (for example,


ISO-2022-JP for Japanese or ISO-8859-1 for United States) that you want
the Web Navigator to use when processing the Web page.
String webuser

(Defaults to null.) Some Internet servers require you to obtain a


username before you can access their pages. This parameter allows you
to enter the username that you previously obtained from the Full-text
server.
String webpasswd

(Defaults to null.) Some Full-text servers require you to obtain a


password before you can access their pages. This parameter allows you
to enter the password that you previously obtained from the Internet
server.
String proxyuser

(Defaults to null.) Some proxy servers require that you specify a


username in order to connect through them. This parameter allows you
to enter the username for the proxy server. See your administrator for
the username required by the proxy.
String proxypasswd

(Defaults to null.) Some proxy servers require that you specify a


password in order to connect through them. This parameter allows you
to enter the password for the proxy server. See your administrator for
the password required by the proxy.
boolean nowait

(Defaults to false.) Specify true to return immediately and not wait for
completion of the retrieval. If you specify true, getDocumentByURL
does not return the Document object representing the URL document.
This parameter is useful for offline storage purposes; in this case, you
do not need the Document object and do not have to wait for
completion of the operation.

Chapter 10: Java Classes A–Z 1831


Database class

Return value
Document

The Notes document that represents the URL document you specified.

Example: getDocumentByURL method


This agent prints the value of the Subject item for the Lotus home page.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Document doc = db.getDocumentByURL
("http://www.lotus.com", false);
System.out.println(
doc.getItemValueString("Subject"));
} catch(Exception e) {
e.printStackTrace();
}
}
}

getForm method
Finds a form in a database, given the form name.

Defined in
Database

Syntax
public Form getForm(String name)
throws NotesException

Parameters
String name

The name or an alias of the form.

Return value
Form

The form whose name or alias matches the parameter.

1832 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Database class

Example: getForm method


This agent prints the names and aliases of the form named “Author
Profile.”
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Form form = db.getForm("Author Profile");
System.out.println(form.getName());
Vector aliases = form.getAliases();
for (int i=0; i<aliases.size(); i++) {
String alias = (String)aliases.elementAt(i);
System.out.println
("Alias #" + (i+1) + ": " + alias); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

getOutline method
Creates an outline.

Defined in
Database

Syntax
public Outline getOutline(String name)
throws NotesException

Parameters
String outline

The name of the outline.

Return value
Outline

The outline.

Chapter 10: Java Classes A–Z 1833


Database class

getProfileDocCollection
Retrieves the profile documents associated with a profile form.

Defined in
Database

Syntax
public DocumentCollection getProfileDocCollection(String
profileName)
throws NotesException

Parameters
String profileName

The name or an alias of the profile form.

Return value
DocumentCollection

The profile documents. No profile documents results in an


empty collection.

Example: getProfileDocCollection method


This agent gets all the profile documents for the form “Author Profile.”
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc =
db.getProfileDocCollection("Author Profile");
Document doc = dc.getFirstDocument();
while (doc != null) {
System.out.println(doc.getItemValueString("Who"));
doc = dc.getNextDocument(); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

1834 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Database class

getProfileDocument method
Retrieves or creates a profile document.

Defined in
Database

Syntax
public Document getProfileDocument(String profile, String
profileuser)
throws NotesException

Parameters
String profile

The name or an alias of the profile form.


String profileuser

The user name (key) attached to the profile document.

Return value
Document

The profile document for the specified key, or a new profile document
if the document with the key does not exist.

Example: getProfileDocument method


This agent gets the profile document for the current user based on the
“Author Profile” form.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Document doc = db.getProfileDocument
("Author Profile", session.getUserName());
String who = doc.getItemValueString("Who");
String email = doc.getItemValueString("Email");
String phone = doc.getItemValueString("Phone");
System.out.println("Who: " + who);
System.out.println("Email: " + email);

Chapter 10: Java Classes A–Z 1835


Database class

System.out.println("Phone: " + phone);


} catch(Exception e) {
e.printStackTrace();
}
}
}

getURLHeaderInfo method
Gets the specific Hypertext Transfer Protocol (HTTP) header information
from the Uniform Resource Locator (URL). A URL is a text string used for
identifying and addressing a Web resource.

Defined in
Database

Syntax
public String getURLHeaderInfo(String url, String header,
String webuser, String webpasswd, String proxyuser, String
proxypasswd)
throws NotesException

Parameters
String url

The URL for the Web page you want information on, for example,
http://www.acme.com/. Specify the entire URL starting with http. You
can enter a maximum string length of 15K.
String header

Enter a header string of the URL header value you want returned. The
acceptable header strings are documented in the HTTP specification
(available at various locations on the Internet, such as
http://www.w3.org/) and are subject to change based on updated
versions of the specification.
webuser

String. Some Internet servers require you to obtain a username before


you can access their pages. This parameter allows you to enter the
username that you previously obtained from the Internet server.
Specify null if you don’t need this parameter.

1836 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Database class

webpasswd

String. Some Internet servers require you to obtain a password before


you can access their pages. This parameter allows you to enter the
password that you previously obtained from the Internet server.
Specify null if you don’t need this parameter.
proxyuser

String. Some proxy servers require that you specify a username in order
to connect through them. This parameter allows you to enter the
username for the proxy server. See your administrator for the username
required by the proxy. Specify null if you don’t need this parameter.
proxypasswd

String. Some proxy servers require that you specify a password in order
to connect through them. This parameter allows you to enter the
password for the proxy server. See your administrator for the password
required by the proxy. Specify null if you don’t need this parameter.

Return value
String

The requested header, or null if the URL or the requested header value
is not found. Any dashes are converted to underscores.

Example: getURLHeaderInfo method


This agent gets the “Last-modified” header string for the URL specified in
the agent comment.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
String hinfo = db.getURLHeaderInfo
("http://www.lotus.com",
"Last-modified", null, null, null, null);
System.out.println
("www.lotus.com was last modified on " + hinfo);
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 1837


Database class

getView method
Finds a view or folder in a database, given the name or alias of the view
or folder.

Defined in
Database

Syntax
public View getView(String name)
throws NotesException

Parameter
String name

The case-insensitive name of a view or folder in a database. Use either


the entire name of the view or folder (including backslashes for
cascading views and folders), or an alias.

Return Values
View

The view or folder whose name or synonym matches the parameter.

Usage
If the database is local, getView returns both public and personal views and
folders. If the database is on a server, getView returns only public views
and folders.
When specifying the parameter, do not combine the view name and an
alias. For example, specifying “By Author|AuthorView” does not work.
Use either the view name (“By Author”) or its alias (“AuthorView”).
When the view or folder name contains underscores to indicate menu
accelerators, you have the option of including or excluding the underscores.
The method works more efficiently, however, if you include the
underscores.

Example: getView method


This agent gets the view named “(Default View)” in the current database
and prints the number of columns in the view.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();

1838 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Database class

// (Your code goes here)


Database db = agentContext.getCurrentDatabase();
View view = db.getView("($All)");
System.out.println("($All) has " +
view.getColumns().size() + " columns");
} catch(Exception e) {
e.printStackTrace();
}
}
}

grantAccess method
Modifies a database access control list to provide a specified level of access
to a person, group, or server.
Note Using this method at the same time an ACL object is in use may
produce inconsistent results.

Defined in
Database

Syntax
public void grantAccess(String name, int level)
throws NotesException

Parameters
String name

The name of the person, group, or server whose access level you want
to provide or change. For a hierarchical name, the full name must be
specified but can be in abbreviated format.
int level

The level of access you’re granting. Specify one of the following


constants:
ACL.LEVEL_AUTHOR
ACL.LEVEL_DEPOSITOR
ACL.LEVEL_DESIGNER
ACL.LEVEL_EDITOR
ACL.LEVEL_MANAGER
ACL.LEVEL_NOACCESS
ACL.LEVEL_READER

Chapter 10: Java Classes A–Z 1839


Database class

Usage
If the name already exists in the ACL, this method updates it with the
access. Otherwise, the name is added to the ACL with the level.
You can also use this method to deny access to a person, group, or server by
assigning LEVEL_NOACCESS.
This method sets ACL roles to their default values.

Example: grantAccess method


This agent grants manager access to the user specified in the agent
comment.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
Database db = agentContext.getCurrentDatabase();
db.grantAccess(agent.getComment(),
ACL.LEVEL_MANAGER);
System.out.println(agent.getComment() +
" has been granted manager access");
} catch(Exception e) {
e.printStackTrace();
}
}
}

open method
Opens a database.

Defined in
Database

Syntax
public boolean open()
throws NotesException

1840 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Database class

Return value
boolean

true if the database exists and is opened


false if no database with this name exists

Usage
A database must be open to use the Database properties and methods with
some exceptions. Most methods that access a database open it, but some do
not. See isOpen for details.

Errors
An error is returned if the user does not have access rights to the database
or server.

queryAccess method
Returns a person’s, group’s, or server’s current access level to a database.
Note Using this method at the same time an ACL object is in use may
produce inconsistent results.

Defined in
Database

Syntax
public int queryAccess(String name)
throws NotesException

Parameters
String name

The name of the person, group, or server. For a hierarchical name, the
full name must be specified but can be in abbreviated format.

Return Value
int

The current access level, which is one of the following:


ACL.LEVEL_AUTHOR
ACL.LEVEL_DEPOSITOR
ACL.LEVEL_DESIGNER
ACL.LEVEL_EDITOR

Chapter 10: Java Classes A–Z 1841


Database class

ACL.LEVEL_MANAGER
ACL.LEVEL_NOACCESS
ACL.LEVEL_READER

Usage
If the name you specify is not listed explicitly in the ACL, queryAccess
does the following:
If the name is a member of a group defined in the Domino Directory
and that group name is listed in the ACL, queryAccess returns the
access level of the group name.
If the name is a member of several groups listed in the ACL,
queryAccess returns the highest access level granted to any of
the groups.
If the name is not a member of any group, queryAccess returns the
default access level.
If the name you specify is listed explicitly in the ACL and is also a member
of one or more groups listed in the ACL, queryAccess returns whichever
access level is higher.
To see if a name is a member of a group, queryAccess uses the Domino
Directories and Personal Address Books known to the computer on which
the program is running. If the program is running on a workstation,
queryAccess checks the Personal Address Book on the local computer.
If the program is running on a server, queryAccess checks the Domino
Directory on that server.

Example: queryAccess method


This agent prints the access level for the current user.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
String title = db.getTitle();
int accLevel =
db.queryAccess(session.getUserName());
System.out.print
("For database \"" + title + "\" you have ");
switch (accLevel) {
case(ACL.LEVEL_NOACCESS) :

1842 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Database class

System.out.println("no access");
break;
case(ACL.LEVEL_DEPOSITOR) :
System.out.println("depositor access");
break;
case(ACL.LEVEL_READER) :
System.out.println("reader access");
break;
case(ACL.LEVEL_AUTHOR) :
System.out.println("author access");
break;
case(ACL.LEVEL_EDITOR) :
System.out.println("editor access");
break;
case(ACL.LEVEL_DESIGNER) :
System.out.println("designer access");
break;
case(ACL.LEVEL_MANAGER) :
System.out.println("manager access");
break;
default:
System.out.println("unknown access");
break; }

} catch(Exception e) {
e.printStackTrace();
}
}
}

remove method
Permanently deletes a database.

Defined in
Database

Syntax
public void remove()
throws NotesException

Chapter 10: Java Classes A–Z 1843


Database class

Example: remove method


This agent removes the local database whose name is in the agent’s
comment.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
Database db =
session.getDatabase(null,
agent.getComment());
db.remove();
System.out.println("Database " +
agent.getComment() + " has been removed");
} catch(Exception e) {
e.printStackTrace();
}
}
}

replicate method
Replicates a local database with its replica(s) on a server.

Defined in
Database

Syntax
public boolean replicate(String server)
throws NotesException

Parameter
String server

The name of the server with which you want to replicate. Any replica of
the source database that exists on the server will replicate.

Return value
boolean

true if the database replicates without errors


false if replication errors occur

1844 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Database class

Usage
The source database must be local or an exception is thrown.

Example: replicate method


This agent replicates the local database dbexamples.nsf with its replica on
notesua1.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db =
session.getDatabase(null, "dbexamples");
if (db.isOpen()) {
String title = db.getTitle();
if (db.replicate("notesua1"))
System.out.println
("\"" + title + "\" has replicated");
else
System.out.println
("Error replicating \"" + title + "\""); }
else
System.out.println("No such database");
} catch(Exception e) {
e.printStackTrace();
}
}
}

revokeAccess method
Removes a person, group, or server from a database access control list. This
resets the access level for that person, group, or server to the Default setting
for the database.
Note Using this method at the same time an ACL object is in use may
produce inconsistent results.

Defined in
Database

Chapter 10: Java Classes A–Z 1845


Database class

Syntax
public void revokeAccess(String name)
throws NotesException

Parameter
String name

The name of the person, group, or server whose access you want to
revoke. For a hierarchical name, the full name must be specified but can
be in abbreviated format.

Usage
Revoking access is different than assigning No Access (which you can do
with the grantAccess method). When you revoke access, you remove the
name from the ACL, but the person, group, or server can still access the
database at the level specified for Default. When you use the grantAccess
method to assign No Access, the name remains in the ACL, and the
person, group, or server cannot access the database, regardless of the
Default setting.

Errors
The name must be explicitly listed in the database ACL. If it isn’t,
revokeAccess throws an exception, even if the name is a member of a
group that is listed in the ACL.

Example: revokeAccess method


This agent revokes access to the current database for the user whose name
is the agent comment.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
Database db = agentContext.getCurrentDatabase();
db.revokeAccess(agent.getComment());
System.out.println
(agent.getComment() + "'s access is revoked");
} catch(Exception e) {
e.printStackTrace();
}
}
}

1846 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Database class

search method
Given selection criteria for a document, returns all documents in a database
that meet the criteria.

Defined in
Database

Syntax
public DocumentCollection search(String formula)
throws NotesException
public DocumentCollection search(String formula, DateTime dt)
throws NotesException
public DocumentCollection search(String formula, DateTime dt,
int max)
throws NotesException

Parameters
String formula

A Notes @function formula that specifies the selection criteria.


DateTime dt

A cutoff date. The method searches only documents created or


modified since the cutoff date. Can be null to indicate no cutoff date.
int max

The maximum number of documents you want returned. Specify 0 to


receive all matching documents.

Return value
DocumentCollection

An unsorted collection of documents that match the selection criteria.

Example: search method


This agent searches the current database for all documents whose Subject
field equals the value of the agent’s comment.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();

Chapter 10: Java Classes A–Z 1847


Database class

Database db = agentContext.getCurrentDatabase();
String title = db.getTitle();
DocumentCollection dc = db.search
("Subject = \"" + agent.getComment() + "\"");
int matches = dc.getCount();
System.out.println
("Search of \"" + title + "\" found " +
matches + " document(s) with Subject = \"" +
agent.getComment() + "\"");
} catch(Exception e) {
e.printStackTrace();
}
}
}

updateFTIndex method
Updates the full-text index of a database.

Defined in
Database

Syntax
public void updateFTIndex(boolean create)
throws NotesException

Parameter
boolean create

Specify true if you want to create an index if none exists (valid only for
local databases). Otherwise, specify false.

Usage
An exception is thrown if you attempt to create a full-text index on a
database that is not local.

Example: updateFTIndex method


This agent updates the full-text index of the current database if the index
has not been updated in the last two days.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();

1848 Domino Designer Programming Guide, Volume 3: JavaScript Classes


DateRange class

// (Your code goes here)


Database db = agentContext.getCurrentDatabase();
String title = db.getTitle();
DateTime lastDT = db.getLastFTIndexed();
DateTime nowDT = session.createDateTime("");
nowDT.setNow();
int daysSince =
nowDT.timeDifference(lastDT) / 86400;
if (daysSince > 2) {
System.out.println("Database \"" + title +
"\" was last full-text indexed " +
daysSince + " days ago");
System.out.println("Updating");
db.updateFTIndex(true); }
else
System.out.println("Database \"" + title +
"\" was full-text indexed less
than two days ago");

} catch(Exception e) {
e.printStackTrace();
}
}
}

DateRange class
Represents a range of dates and times.

Syntax
public class DateRange extends Base

Containment
Contained by: Session
Contains: DateTime

Properties
EndDateTime through getEndDateTime and setEndDateTime
Parent through getParent
StartDateTime through getStartDateTime and setStartDateTime
Text through getText and setText

Chapter 10: Java Classes A–Z 1849


DateRange class

Creation
To create a new DateRange object, use createDateRange in Session. To
initialize the object, you can do one of the following:
Assign values to the createDateRange parameters.
Assign to StartDateTime and EndDateTime DateTime values.
Assign to Text a string value that represents a date range. This consists
of two string representations of Domino-formatted date-time values
separated by a hyphen (for example, “01/01/97 - 01/02/97”).

Usage
When you assign StartDateTime or EndDateTime, its value replaces the
corresponding value in Text, and vice versa.

Examples: DateRange class


1. This example sets the StartDateTime and EndDateTime properties of a
DateRange object through the createDateRange parameters, then
displays the value of the Text property.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DateTime dtdb = db.getCreated();
DateTime dtnow = session.createDateTime("Today");
dtnow.setNow();
DateRange dr = session.createDateRange(dtdb, dtnow);
System.out.println("Creation date - now:");
System.out.println(" " + dr.getText());
} catch(Exception e) {
e.printStackTrace();
}
}
}
2. This example sets the StartDateTime and EndDateTime properties of a
DateRange object through the property methods, then displays the
value of the Text property.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();

1850 Domino Designer Programming Guide, Volume 3: JavaScript Classes


DateRange class

AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DateTime dtdb = db.getCreated();
DateTime dtnow = session.createDateTime("Today");
dtnow.setNow();
DateRange dr = session.createDateRange();
dr.setStartDateTime(dtdb);
dr.setEndDateTime(dtnow);
System.out.println("Creation date - now:");
System.out.println(" " + dr.getText());
} catch(Exception e) {
e.printStackTrace();
}
}
}
3. This example writes a value to the Text property, then displays the
LocalTime property of the StartDateTime and EndDateTime properties
(which are DateTime objects).
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DateTime dtdb = db.getCreated();
DateTime dtnow = session.createDateTime("Today");
dtnow.setNow();
DateRange dr = session.createDateRange();
dr.setText
(dtdb.getLocalTime() + " - " +
dtnow.getLocalTime());
System.out.println("Start date = " +
dr.getStartDateTime().getLocalTime());
System.out.println("End date = " +
dr.getEndDateTime().getLocalTime());
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 1851


DateRange class

4. This example sets a value for a DateRange object, then changes the
DateTime object that the EndDateTime property is based on. This
implicitly changes the EndDateTime property.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DateTime dtdb = db.getCreated();
DateTime dtplus = session.createDateTime("Today");
dtplus.setNow();
DateRange dr = session.createDateRange(dtdb,
dtplus);
dtplus.adjustMonth(2);
System.out.println
("Creation date - 2 months from now:");
System.out.println
(" " + dr.getText());
} catch(Exception e) {
e.printStackTrace();
}
}
}

EndDateTime property
Read-write. The ending date-time of a range.

Defined in
DateRange

Data type
DateTime

Syntax
public DateTime getEndDateTime()
public void setEndDateTime(DateTime end)

1852 Domino Designer Programming Guide, Volume 3: JavaScript Classes


DateRange class

Usage
Modifying the DateTime object that EndDateTime is based on implicitly
modifies EndDateTime. This does not apply if EndDateTime is based on a
java.util.Date object.
The DateTime object in setEndDateTime cannot be null.

Parent property
Read-only. The session that contains a DateRange object.

Defined in
DateRange

Data type
Session

Syntax
public Session getParent()

StartDateTime property
Read-write. The starting date-time of a range.

Defined in
DateRange

Data type
DateTime

Syntax
public DateTime getStartDateTime()
public setStartDateTime(DateTime start)

Usage
Modifying the DateTime object that StartDateTime is based on implicitly
modifies StartDateTime. This does not apply if StartDateTime is based on a
java.util.Date object.
The DateTime object in setStartDateTime cannot be null.

Chapter 10: Java Classes A–Z 1853


DateTime class

Text property
Read-write. The text associated with a range formatted as Domino
date-time text.

Defined in
DateRange

Data type
Object of type java.lang.String

Syntax
public String getText()
throws NotesException
public void setText(String text)
throws NotesException

DateTime class
Represents a date and time.

Syntax
public class DateTime extends Base

Containment
Contained by: AgentContext, Database, DateRange, DateTime, Document,
Session, and View

Properties
DateOnly through getDateOnly
GMTTime through getGMTTime
IsDST through isDST
LocalTime through getLocalTime, setLocalTime, and setLocalDate
Parent through getParent
TimeOnly through getTimeOnly
TimeZone through getTimeZone
ZoneTime through getZoneTime

1854 Domino Designer Programming Guide, Volume 3: JavaScript Classes


DateTime class

Methods
adjustDay
adjustHour
adjustMinute
adjustMonth
adjustSecond
adjustYear
convertToZone
setAnyDate
setAnyTime
setNow
timeDifference
toJavaDate

Creation
To create a new DateTime object, use createDateTime in Session.

Usage
After creating a DateTime object with createDateTime, you can reset the
date and time with setLocalTime and setLocalDate. The createDateTime
method takes a String or java.util.Date parameter. One form of
setLocalTime takes a String parameter; another form takes a java.util.Date
parameter. Other forms of setLocalTime and setLocalDate take multiple int
parameters.
The String form of the date parameter is a date, followed by a space,
followed by a time. You can specify a date without a time, and a time
without a date.
The date component of a String parameter can be in any of the following
formats, where “/” represents the operating system date separator:
MM/DD/YY
For example, “04/16/97” represents April 16, 1997. Use this format to
specify a year in the 20th century (MM is 50 or greater) or the 21st
century (MM is less than 50).
MM/DD/YYYY
For example, “04/16/1997” represents April 16, 1997 and
“04/16/2097” represents April 16, 2097. Use this format to specify a
year in any century.

Chapter 10: Java Classes A–Z 1855


DateTime class

MM/DD
For example, “08/18” represents August 18, 1996, if 1996 is the current
year. When you use this format, Domino appends the current year.
MM/YY
For example, “08-96” represents August 1, 1996. When you use this
format, Domino stores it as the first day of the month. Use this format to
specify a year in the 20th century (MM is 50 or greater) or the 21st
century (MM is less than 50).
MM/YYYY or MM-YYYY
For example, “08-2096” represents August 1, 2096. When you use this
format, Domino stores it as the first day of the month. Use this format to
specify a year in any century.
“Today” or “Yesterday”
The time component of a String parameter can be in any of the following
formats, where “:” represents the operating system time separator. The
seconds component, SS, is optional. “AM” and “PM” are ignored if you are
using 24-hour time.
HH:MM:SS PM. For example, “09:12:33 PM.”
HH:MM:SS AM. For example, “09:12:33 AM.”
HH:MM:SS. For example, “09:12:33.” If you do not specify AM or PM,
the time is treated as 24-hour time; therefore “09:12:33” is stored as
09:12:33 AM, while “21:12:33” is stored as 09:12:33 PM.

Time zones
When you create a new DateTime object, its TimeZone property is
determined by the time zone setting in the operating system. For example, if
the program runs on a computer whose time zone is set to US Eastern
Standard Time, the TimeZone property of any new DateTime object is
automatically set to 5. If you do not specify a time zone in the date String,
the time zone setting in the operating system is used to calculate the
GMTime property.

Today and Yesterday


When you create a new DateTime object using an expression such as
“Today” or “Yesterday,” the value of the date is determined using the
current date setting in Domino. These expressions have no effect on the
time component of a DateTime object. To set a DateTime to the current date
and time, use setNow.
To access a date-time value stored in an item in a Domino document, use
getDateTimeValue in Item.
You can get the operating system date and time separators, and time zone
settings through the International class.

1856 Domino Designer Programming Guide, Volume 3: JavaScript Classes


DateTime class

Examples: DateTime class


1. This agent creates a new DateTime object and prints it in local time and
GMT.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
DateTime dt = session.createDateTime("12/12/97
04:30:00 PM");
System.out.println(dt.getLocalTime());
System.out.println(dt.getGMTTime());
} catch(Exception e) {
e.printStackTrace();
}
}
}

2. This script creates a new DateTime object that represents today’s date
and then prints it in local time. The time component of the DateTime
object is not set.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
DateTime dt = session.createDateTime("Today");
System.out.println(dt.getLocalTime());
} catch(Exception e) {
e.printStackTrace();
}
}
}
3. This script creates two new DateTime objects. The first represents
January 15, 1900; the second represents January 15, 2000.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =

Chapter 10: Java Classes A–Z 1857


DateTime class

session.getAgentContext();
// (Your code goes here)
DateTime dt1 = session.createDateTime("01/15/1900");
DateTime dt2 = session.createDateTime("01/15/00");
System.out.println(dt1.getLocalTime());
System.out.println(dt2.getLocalTime());
} catch(Exception e) {
e.printStackTrace();
}
}
}

DateOnly property
Read-only. A string representation of the date part of the time-date.

Defined in
DateTime

Data type
String

Syntax
public String getDateOnly()
throws NotesException

Example: DateOnly property


This agent prints the creation date of the current database.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DateTime createdDateTime = db.getCreated();
String sCreatedDate = createdDateTime.getDateOnly();
System.out.println
("Database \"" + db.getTitle() +
"\" was created on " + sCreatedDate + ".");
} catch(Exception e) {
e.printStackTrace();
}
}
}

1858 Domino Designer Programming Guide, Volume 3: JavaScript Classes


DateTime class

GMTTime property
Read-only. A string representing a date-time, converted to Greenwich Mean
Time (timezone 0).

Defined in
DateTime

Data type
String

Syntax
public String getGMTTime()
throws NotesException

Usage
The GMT time for a date created from a string is determined using the
operating system time zone setting, unless the date string specifies a time
zone.

Example: GMTTime property


This agent prints the creation date and time of the current database in GMT.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DateTime createdDateTime = db.getCreated();
String sGMTTime = createdDateTime.getGMTTime();
System.out.println
("Database \"" + db.getTitle() +
"\" was created on " + sGMTTime + ".");
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 1859


DateTime class

IsDST property
Read-only. Indicates if the time reflects daylight savings time.

Defined in
DateTime

Data type
boolean

Syntax
public boolean isDST()
throws NotesException

Legal values
true if the current computer is set to observe daylight-saving time, and
daylight savings time is currently in effect (for example, from mid-April
to mid-October)
false if the current computer is set to observe daylight-saving time, but
daylight-saving time is not currently in effect (for example, from
mid-October to mid-April); the current computer is not set to observe
daylight-saving time; the DateTime object has no date component; or
the DateTime object has no time component

Usage
For remote (IIOP) operations, the current computer is the Domino server.
For local operations, the current computer is the computer on which the
program is running.
The convertToZone method may modify the value of this property.

Example: IsDST property


This agent prints one message or another depending on whether
daylight-saving time is in effect.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
DateTime dt = session.createDateTime("Today");
dt.setNow();
if (dt.isDST())
System.out.println("Enjoy the long days");
else

1860 Domino Designer Programming Guide, Volume 3: JavaScript Classes


DateTime class

System.out.println("Endure the darkness");


} catch(Exception e) {
e.printStackTrace();
}
}
}

LocalTime property
Read-write. A string representing a date-time in the local time zone.
Additional methods let you set the local time with Date, integer, and
Boolean values.

Defined in
DateTime

Data type
String

Syntax
public String getLocalTime()
throws NotesException
public void setLocalTime(String dt)
throws NotesException
public void setLocalTime(java.util.Date dt)
throws NotesException
public void setLocalDate(int year, int month, int day)
throws NotesException
public void setLocalDate(int year, int month, int day, boolean
preserveLocalTime)
throws NotesException
public void setLocalTime(int hour, int minute, int second, int
hundredth)
throws NotesException

Usage
When you set this property, it changes the value of the date-time that the
object represents, and, therefore, affects the GMTTime property.
The dt, year, month, day, hour, minute, second, and hundredth parameters
specify the new time. The preserveLocalTime parameter affects adjustments
from the existing date that cross a daylight savings boundary. Specify true

Chapter 10: Java Classes A–Z 1861


DateTime class

to increment or decrement the GMT time by one hour so that a 24-hour


adjustment yields the same local time in the new day. If this parameter is
false or omitted, GMT time remains as adjusted and local time gains or
loses an hour.

Examples: LocalTime property


1. This agent prints the creation date and time of the current database in
local time.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DateTime createdDateTime = db.getCreated();
String sLocalTime = createdDateTime.getLocalTime();
System.out.println
("Database \"" + db.getTitle() +
"\" was created on " + sLocalTime + ".");
} catch(Exception e) {
e.printStackTrace();
}
}
}
2. This agent sets the local date and time, then prints the date and time in
local time and GMT.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
DateTime dt = session.createDateTime("Today");
dt.setLocalTime("12/12/97 04:30:00 PM");
System.out.println(dt.getLocalTime());
System.out.println(dt.getGMTTime());
} catch(Exception e) {
e.printStackTrace();
}
}
}

1862 Domino Designer Programming Guide, Volume 3: JavaScript Classes


DateTime class

3. This agent is the same as above but passes the date and time as integer
values to setLocalDate and setLocalTime rather than as a string to
setLocalTime.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
DateTime dt = session.createDateTime("Today");
dt.setLocalDate(1997, 12, 12, true);
dt.setLocalTime(1, 30, 0, 0);
System.out.println(dt.getLocalTime());
System.out.println(dt.getGMTTime());
} catch(Exception e) {
e.printStackTrace();
}
}
}

Parent property
Read-only. The Notes session that contains a DateTime object.

Defined in
DateTime

Data type
Session

Syntax
public Session getParent()
throws NotesException

TimeOnly property
Read-only. A string representation of the time part of the date-time.

Defined in
DateTime

Data type
String

Chapter 10: Java Classes A–Z 1863


DateTime class

Syntax
public String getTimeOnly()
throws NotesException

Example: TimeOnly property


This agent prints the creation time of the current database.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DateTime createdDateTime = db.getCreated();
String sCreatedTime = createdDateTime.getTimeOnly();
System.out.println
("Database \"" + db.getTitle() +
"\" was created at " + sCreatedTime + ".");
} catch(Exception e) {
e.printStackTrace();
}
}
}

TimeZone property
Read-only. An integer representing the time zone of a date-time. This
integer indicates the number of hours that must be added to the time to get
Greenwich Mean Time when daylight-saving time is not in effect. May be
positive or negative.

Defined in
DateTime

Data type
Integer

Syntax
public int getTimeZone()
throws NotesException

1864 Domino Designer Programming Guide, Volume 3: JavaScript Classes


DateTime class

Usage
When you create a new DateTime object, this property is set according to
the time zone setting of the computer on which the program runs or, for
remote (IIOP) operations, the Domino server.
When you access a date-time value from an item in a document using the
DateTimeValue property in Item, this property is set according to the time
zone stored in the item.
The convertToZone method may modify the value of this property.

Example: TimeZone property


This agent prints the time zone in the CreationDateSaved item of each
document in the current database.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
Document doc;
for (int j=0; j<dc.getCount(); j++) {
doc = dc.getNthDocument(j+1);
Vector dtv = doc.getItemValue("CreationDateSaved");
DateTime cds = (DateTime)dtv.firstElement();
int zone = cds.getTimeZone();
System.out.println
(doc.getItemValue("Subject") +
" was created in time zone " + zone); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 1865


DateTime class

ZoneTime property
Read-only. A string representation of the time adjusted for the TimeZone
and IsDST properties.

Defined in
DateTime

Data type
String

Syntax
public String getZoneTime()
throws NotesException

Usage
Initially ZoneTime is the same as LocalTime. If you use the convertToZone
method, changes to TimeZone and IsDST are reflected in ZoneTime, but
LocalTime stays the same.

adjustDay method
Increments a date-time by the number of days you specify.

Defined in
DateTime

Syntax
public void adjustDay(int n)
throws NotesException
public void adjustDay(int n, boolean preserveLocalTime)
throws NotesException

Parameter
int n

The number of days by which to increment the date-time. Can be


positive or negative.
boolean preserveLocalTime

Affects adjustments that cross a daylight savings boundary. Specify


true to increment or decrement the GMT time by one hour such that a
24-hour adjustment yields the same local time in the new day. If this
parameter is false or omitted, GMT time remains as adjusted and local
time gains or loses an hour.

1866 Domino Designer Programming Guide, Volume 3: JavaScript Classes


DateTime class

Usage
If the DateTime object consists of only a time component, this method has
no effect.
The number of days by which you increment a DateTime object can cause
the month to be incremented.

Example: adjustDay method


This agent decrements the date by 10 days.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
DateTime dt = session.createDateTime("Today");
dt.setNow();
System.out.println("Today: " + dt.getLocalTime());
dt.adjustDay(-10, true);
System.out.println("Ten days ago: " +
dt.getLocalTime());
} catch(Exception e) {
e.printStackTrace();
}
}
}

adjustHour method
Increments a date-time by the number of hours you specify.

Defined in
DateTime

Syntax
public void adjustHour(int n)
throws NotesException
public void adjustHour(int n, boolean preservelocaltime)
throws NotesException

Chapter 10: Java Classes A–Z 1867


DateTime class

Parameter
int n

The number of hours by which to increment the date-time. Can be


positive or negative.
boolean preservelocaltime

Affects adjustments that cross a daylight savings boundary. Specify


true to increment or decrement the GMT time by one hour such that a
24-hour adjustment yields the same local time in the new day. If this
parameter is false or omitted, GMT time remains as adjusted and local
time gains or loses an hour.

Usage
If the DateTime object consists of only a date component, this method has
no effect.
The number of hours by which you increment a DateTime object can cause
the date component to be adjusted, too. For example, if the adjustment is
+24, the date component changes to the next calendar day.

Example: adjustHour method


This agent decrements the time by 10 hours..
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
DateTime dt = session.createDateTime("Today");
dt.setNow();
System.out.println("Now: " + dt.getLocalTime());
dt.adjustHour(-10, true);
System.out.println("Ten hours ago: " +
dt.getLocalTime());
} catch(Exception e) {
e.printStackTrace();
}
}
}

1868 Domino Designer Programming Guide, Volume 3: JavaScript Classes


DateTime class

adjustMinute method
Increments a date-time by the number of minutes you specify.

Defined in
DateTime

Syntax
public void adjustMinute(int n)
throws NotesException
public void adjustMinute(int n, boolean preservelocaltime)
throws NotesException

Parameter
int n

The number of minutes by which to increment the date-time. Can be


positive or negative.
boolean preservelocaltime

Affects adjustments that cross a daylight-saving time boundary. Specify


true to increment or decrement the GMT time by one hour such that a
24-hour adjustment yields the same local time in the new day. If this
parameter is false or omitted, GMT time remains as adjusted and local
time gains or loses an hour.

Usage
If the DateTime object consists of only a date component, this method has
no effect.
The number of minutes by which you increment a DateTime object can
cause the date component to be adjusted, too. For example, if the
adjustment is +1440, the date component changes to the next calendar day.

Example: adjustMinute method


This agent decrements the time by 10 minutes.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
DateTime dt = session.createDateTime("Today");
dt.setNow();
System.out.println("Now: " + dt.getLocalTime());
dt.adjustMinute(-10, true);

Chapter 10: Java Classes A–Z 1869


DateTime class

System.out.println("Ten minutes ago: " +


dt.getLocalTime());
} catch(Exception e) {
e.printStackTrace();
}
}
}

adjustMonth method
Increments a date-time by the number of months you specify.

Defined in
DateTime

Syntax
public void adjustMonth(int n)
throws NotesException
public void adjustMonth(int n, boolean preservelocaltime)
throws NotesException

Parameter
int n

The number of months by which to increment the date-time. Can be


positive or negative.
boolean preservelocaltime

Affects adjustments that cross a daylight-saving time boundary. Specify


true to increment or decrement the GMT time by one hour such that a
24-hour adjustment yields the same local time in the new day. If this
parameter is false or omitted, GMT time remains as adjusted and local
time gains or loses an hour.

Usage
If the DateTime object consists of only a time component, this method has
no effect.
The number of months by which you increment a DateTime object can
cause the year to be incremented. For example, if the adjustment is +12, the
date component changes to the next calendar year.

1870 Domino Designer Programming Guide, Volume 3: JavaScript Classes


DateTime class

Example: adjustMonth method


This agent decrements the date by 10 months.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
DateTime dt = session.createDateTime("Today");
dt.setNow();
System.out.println("Today: " + dt.getLocalTime());
dt.adjustMonth(-10, true);
System.out.println("Ten months ago: " +
dt.getLocalTime());
} catch(Exception e) {
e.printStackTrace();
}
}
}

adjustSecond method
Increments a date-time by the number of seconds you specify.

Defined in
DateTime

Syntax
public void adjustSecond(int n)
throws NotesException
public void adjustSecond(int n, boolean preservelocaltime)
throws NotesException

Parameter
int n

The number of seconds by which to increment the date-time. Can be


positive or negative.
boolean preservelocaltime

Affects adjustments that cross a daylight savings boundary. Specify


true to increment or decrement the GMT time by one hour such that a
24-hour adjustment yields the same local time in the new day. If this
parameter is false or omitted, GMT time remains as adjusted and local
time gains or loses an hour.

Chapter 10: Java Classes A–Z 1871


DateTime class

Usage
If the DateTime object consists of only a date component, this method has
no effect.

Example: adjustSecond method


This agent decrements the time by 10 seconds.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
DateTime dt = session.createDateTime("Today");
dt.setNow();
System.out.println("Now: " + dt.getLocalTime());
dt.adjustSecond(-10, true);
System.out.println("Ten seconds ago: " +
dt.getLocalTime());
} catch(Exception e) {
e.printStackTrace();
}
}
}

adjustYear method
Increments a date-time by the number of years you specify.

Defined in
DateTime

Syntax
public void adjustYear(int n)
throws NotesException
public void adjustYear(int n, boolean preservelocaltime)
throws NotesException

Parameter
int n

The number of years by which to increment the date-time. Can be


positive or negative.

1872 Domino Designer Programming Guide, Volume 3: JavaScript Classes


DateTime class

boolean preservelocaltime

Affects adjustments that cross a daylight savings boundary. Specify


true to increment or decrement the GMT time by one hour such that a
24-hour adjustment yields the same local time in the new day. If this
parameter is false or omitted, GMT time remains as adjusted and local
time gains or loses an hour.

Usage
If the DateTime object consists of only a time component, this method has
no effect.
The number of years by which you increment a DateTime object can cause
the century to change. If this happens, the year is represented as a string
with four digits instead of two, such as 08/18/2001.

Example: adjustYear method


This agent decrements the date by 10 years.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
DateTime dt = session.createDateTime("Today");
dt.setNow();
System.out.println("Today: " + dt.getLocalTime());
dt.adjustYear(-10, true);
System.out.println("Ten years ago: " +
dt.getLocalTime());
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 1873


DateTime class

convertToZone method
Changes the TimeZone and IsDST properties as specified.

Defined in
DateTime

Syntax
public void convertToZone(int zone, boolean isDST)
throws NotesException

Parameters
int zone

A time zone -12 through 12.


boolean isDST

Indicates whether daylight savings is in effect (true) or not (false).

Usage
These changes also affect the ZoneTime property.
These changes do not affect the GMTTime and the LocalTime properties.

Example: convertToZone method and ZoneTime property


This agent converts the current time to zone 15 time.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
DateTime dt = session.createDateTime("Today");
dt.setNow();
System.out.println("Here and now: " + dt.getZoneTime());
dt.convertToZone(8, true);
System.out.println("ZoneTime: " + dt.getZoneTime());
System.out.println("TimeZone: " + dt.getTimeZone());
System.out.println("IsDST: " + dt.isDST());
} catch(Exception e) {
e.printStackTrace();
}
}
}

1874 Domino Designer Programming Guide, Volume 3: JavaScript Classes


DateTime class

setAnyDate method
Sets the date component to a wildcard value, which means it matches any
date. The time component is unaffected.

Defined in
DateTime

Syntax
public void setAnyDate()
throws NotesException

Usage
This method is useful when passing the object as an argument to other
methods.
A DateTime object for which you have invoked this method may not be
convertible to string format.

Example: setAnyDate and setAnyTime methods


This agent sets the date component to any date, then the time component to
any time.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
DateTime dt = session.createDateTime("Today");
dt.setNow();
dt.setAnyDate(); // Set date part to any date
System.out.println("Time = " + dt.getLocalTime());
dt.setNow();
dt.setAnyTime(); // Sets time part to any time
System.out.println("Date = " + dt.getLocalTime());
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 1875


DateTime class

setAnyTime method
Sets the time component to a wildcard value, which means it matches any
time. The date component is unaffected.

Defined in
DateTime

Syntax
public void setAnyTime()
throws NotesException

Usage
This method is useful when passing the object as an argument to other
methods.
A date-time object for which you have invoked this method may not be
convertible to string format.

setNow method
Sets the value of a date-time to now (today’s date and current time).

Defined in
DateTime

Syntax
public void setNow()
throws NotesException

Usage
For remote (IIOP) operations, the date-time value is based on the Domino
server. For local operations, the date-time value is based on the computer
on which the program is running.
This method works by taking a snapshot of the current date-time at the
moment that the method is executed. After the method executes, the value
of the DateTime object does not update itself to always reflect the current
date-time. Its value only changes if you change it explicitly.

1876 Domino Designer Programming Guide, Volume 3: JavaScript Classes


DateTime class

Example: setNow method


This agent increments the current time by 2 months and appends this value
to the PurgeDate item.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Document doc = db.createDocument();
DateTime dt = session.createDateTime("Today");
dt.setNow();
dt.adjustMonth(2, true);
doc.appendItemValue("Form", "Main Topic");
doc.appendItemValue("Subject", "2-month document");
doc.appendItemValue("PurgeDate", dt);
doc.save(true, true);
} catch(Exception e) {
e.printStackTrace();
}
}
}

timeDifference method
Finds the difference in seconds between one date-time and another.

Defined in
DateTime

Syntax
public int timeDifference(DateTime dt)
throws NotesException
public double timeDifferenceDouble(DateTime dt)
throws NotesException

Parameter
DateTime dt

Any date-time value.

Chapter 10: Java Classes A–Z 1877


DateTime class

Return value
int

The date-time of the object minus the date-time of the parameter,


in seconds.
double

The date-time of the object minus the date-time of the parameter,


in seconds.

Example: timeDifference method


This agent calculates the number of days since a document was created.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DateTime createdDateTime = db.getCreated();
DateTime nowDateTime = session.createDateTime("Today");
nowDateTime.setNow();
int daysSinceCreated =
nowDateTime.timeDifference(createdDateTime) / 86400;
System.out.println
("Database \"" + db.getTitle() +
"\" was created " + daysSinceCreated + " days ago.");
} catch(Exception e) {
e.printStackTrace();
}
}
}

toJavaDate method
Converts a Notes date and time into a java.util.Date object.

Defined in
DateTime

Syntax
public java.util.Date toJavaDate()
throws NotesException

Return value
java.util.Date

The date-time of the object in Java format.

1878 Domino Designer Programming Guide, Volume 3: JavaScript Classes


DbDirectory class

DbDirectory class
Represents the Domino databases on a server or the local computer.

Syntax
public class DbDirectory extends Base

Containment
Contained by: Session
Contains: Database and DateTime

Properties
Name through getName
Parent through getParent

Methods
createDatabase
getFirstDatabase
getNextDatabase
openDatabase
openDatabaseByReplicaID
openDatabaseIfModified
openMailDatabase

Creation
You create a new DbDirectory object with getDbDirectory in Session.

Example: DbDirectory class


This agent prints the file name and title of every database in the local
directory.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
DbDirectory dir = session.getDbDirectory(null);
String server = dir.getName();
if (server == null) server = "Local";
System.out.println ("Database directory list on server "
+ server + "\n");

Chapter 10: Java Classes A–Z 1879


DbDirectory class

Database db =
dir.getFirstDatabase(DbDirectory.DATABASE);
while (db != null) {
String fn = db.getFileName();
String title = db.getTitle();
System.out.println(fn.toUpperCase() + " - " + title);
db = dir.getNextDatabase(); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

Name property
Read-only. The name of the server whose database directory you are
searching.

Defined in
DbDirectory

Data type
String

Syntax
public String getName()
throws NotesException

Usage
This property returns null for DbDirectory objects that represent the local
directory.

Example: Name property


This agent prints the file name and title of every template (.nsf file) on the
server specified in the agent comment.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
DbDirectory dir = session.getDbDirectory
(agent.getComment());
String server = dir.getName();

1880 Domino Designer Programming Guide, Volume 3: JavaScript Classes


DbDirectory class

if (server == null) server = "Local";


System.out.println("Templates on " + server + "\n");
Database db = dir.getFirstDatabase
(DbDirectory.TEMPLATE);
while (db != null) {
System.out.println(db.getTemplateName());
db.open();
System.out.println("Last modified: " +
db.getLastModified().getLocalTime());
db = dir.getNextDatabase(); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

Parent property
Read only. The Domino session that contains a DbDirectory object.

Defined in
DateTime

Data type
Session

Syntax
public Session getParent()

createDatabase method
Creates a new database, using the server and file name that you specify.
Because the new database is not based on a template, it is blank and does
not contain any forms or views.

Defined in
DbDirectory

Syntax
public Database createDatabase(String dbfile)
throws NotesException
public Database createDatabase(String dbfile, boolean open)
throws NotesException

Chapter 10: Java Classes A–Z 1881


DbDirectory class

Parameters
String dbfile

The file name of the new database.


boolean open

Indicates if you want to open the database. Specify true if you want to
open the database and false if you do not

Usage
If you do not open the database, only a subset of its methods are available.
See isOpen in Database.

Example: createDatabase method


This agent creates a local database named newdb.nsf unless a database by
that name already exists.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
DbDirectory dir = session.getDbDirectory(null);
boolean found = false;
Database db =
dir.getFirstDatabase(DbDirectory.DATABASE);
while (db != null) {
String fn = db.getFileName();
if (fn.equalsIgnoreCase("newdb.nsf")) found = true;
db = dir.getNextDatabase(); }
if (!found) {
System.out.println("Not found, creating newdb.nsf");
dir.createDatabase("newdb.nsf"); }
else
System.out.println("found, not creating newdb.nsf");
} catch(Exception e) {
e.printStackTrace();
}
}
}

1882 Domino Designer Programming Guide, Volume 3: JavaScript Classes


DbDirectory class

getFirstDatabase method
Returns the first database from a server or the local directory, using the file
type you specify.

Defined in
DbDirectory

Syntax
public Database getFirstDatabase(int type)
throws NotesException

Parameter
int type

Indicates the kind of database file you want to retrieve:


DbDirectory.DATABASE means any database (.nsf, .nsg, or .nsh file)
DbDirectory.TEMPLATE means any template (.ntf file)
DbDirectory.REPLICA_CANDIDATE means any database or
template not disabled for replication
DbDirectory.TEMPLATE_CANDIDATE means any database or
template

Return value
Database

The first database of the specified file type located in the directory, or
null if the directory contains no databases of the specified type.

Usage
The returned database is closed. If you do not open the database, only a
subset of its methods are available. See isOpen in Database.
Each time you call this method, the database directory is reset and a new
search is conducted. If you are searching for template files, for example, a
new call to getFirstDatabase with the parameter DATABASE starts
searching the directory from the beginning, this time for database files.

Example: getFirstDatabase and getNextDatabase methods


This agent prints the last modified date for each template in the local
directory.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();

Chapter 10: Java Classes A–Z 1883


DbDirectory class

AgentContext agentContext = session.getAgentContext();


// (Your code goes here)
DbDirectory dir = session.getDbDirectory(null);
System.out.println("Local templates\n");
Database db = dir.getFirstDatabase
(DbDirectory.TEMPLATE);
while (db != null) {
System.out.println(db.getTemplateName());
db.open();
System.out.println("Last modified: " +
db.getLastModified().getLocalTime());
db = dir.getNextDatabase(); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

getNextDatabase method
Returns the next database from a server or the local directory, using the file
type specified in the preceding getFirstDatabase method.

Defined in
DbDirectory

Syntax
public Database getNextDatabase()
throws NotesException

Return value
Database

The next database located in the directory, or null if there are no more.

Usage
The returned database is closed. If you do not open the database, only a
subset of its methods are available. See isOpen in Database.
This method must be preceded in the code by getFirstDatabase.

1884 Domino Designer Programming Guide, Volume 3: JavaScript Classes


DbDirectory class

openDatabase method
Opens a database.

Defined in
DbDirectory

Syntax
public Database openDatabase(String dbfile)
throws NotesException
public Database openDatabase(String dbfile, boolean failover)
throws NotesException

Parameters
String dbfile

The file name of the database to open.


boolean failover

If true and the database cannot be opened on the current server, an


attempt is made to open it on another server in the cluster (if there is a
cluster). The object’s Server and FilePath properties reflect the server
that the database is opened on. For remote (IIOP) access, failover is
always false.

Return value
Database

The opened database, or null if the database is not opened.

Example: openDatabase method


This agent opens names.nsf in the local directory and prints its title.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
DbDirectory dir = session.getDbDirectory(null);
Database db = dir.openDatabase("names");
System.out.println(db.getTitle());
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 1885


DbDirectory class

openDatabaseByReplicaID method
Opens the database with a specified replica ID.

Defined in
DbDirectory

Syntax
public Database openDatabaseByReplicaID(String rid)
throws NotesException

Parameters
String rid

The replica ID of the database that you want to open.

Return value
Database

The opened database, or null if the database is not opened.

Example: openDatabaseByReplicaID method


This agent attempts to open the help database, which is know to have the
specified replica ID.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
DbDirectory dir = session.getDbDirectory(null);
String rid = "852565D2000B5144";
Database db = dir.openDatabaseByReplicaID(rid);
if (db != null)
System.out.println("help located and opened");
else
System.out.println("help not found");
} catch(Exception e) {
e.printStackTrace();
}
}
}

1886 Domino Designer Programming Guide, Volume 3: JavaScript Classes


DbDirectory class

openDatabaseIfModified method
Opens a database if it has been modified since a specified date.

Defined in
DbDirectory

Syntax
public Database openDatabaseIfModified(String dbfile, DateTime
date)
throws NotesException

Parameters
String dbfile

The file name of the database.


DateTime date

A cutoff date. If one or more documents in the database were modified


since this date, the database is opened; if not, it is not opened. Cannot
be null.

Return value
Database

The opened database, or null if the database is not opened.

Example: openDatabaseIfModified method


This agent opens name.nsf in the local directory if the database was
modified in the past three hours.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
DbDirectory dir = session.getDbDirectory(null);
DateTime dt = session.createDateTime("Today");
dt.setNow();
dt.adjustHour(-3);
Database db = dir.openDatabaseIfModified("names", dt);
if (db != null)
System.out.println("Database opened");
else

Chapter 10: Java Classes A–Z 1887


DbDirectory class

System.out.println(
"Database not modified in past 3 hours");
} catch(Exception e) {
e.printStackTrace();
}
}
}

openMailDatabase method
Opens the current user’s mail database.

Defined in
DbDirectory

Syntax
public Database openMailDatabase()
throws NotesException

Return value
Database

The opened database, or null if the database is not opened.

Usage
For a program to use this method, it must run either on a workstation or on
the agent owner’s mail server. Otherwise, an error occurs since programs
running on servers cannot access databases on other servers.
If the program runs on a workstation, openMailDatabase finds the
current user’s mail server and database in the notes.ini file.
If the program runs on a server, the current user is considered to be the
last person who modified the agent (the agent’s owner), and
openMailDatabase finds the user’s mail server and database in the
Domino Directory on the server.
If the program is making remote (IIOP) calls to a server, the current
user is the user who created the session, openMailDatabase finds the
user’s mail server and database in the Domino Directory on the server.

Example: openMailDatabase method


This agent opens the current user’s mail database and prints its title, size,
and number of documents.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {

1888 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Document class

Session session = getSession();


AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
DbDirectory dir = session.getDbDirectory(null);
Database db = dir.openMailDatabase();
DocumentCollection dc = db.getAllDocuments();
System.out.println("Mail database : " +
db.getTitle() + " is " +
((int)(db.getSize()/1024)) + "KB long and has " +
dc.getCount() + " documents");
} catch(Exception e) {
e.printStackTrace();
}
}
}

Document class
Represents a document in a database.

Syntax
public class Document extends Base

Containment
Contained by: Database, DocumentCollection, Newsletter, View
Contains: DateTime, EmbeddedObject, Item, RichTextItem

Properties
Authors through getAuthors
ColumnValues through getColumnValues
Created through getCreated
EmbeddedObjects through getEmbeddedObjects
EncryptionKeys through getEncryptionKeys and setEncryptionKeys
FolderReferences through getFolderRefs
FTSearchScore through getFTSearchScore
HasEmbedded through hasEmbedded
IsDeleted through isDeleted
IsEncryptOnSend through isEncryptOnSend and setEncryptOnSend
IsNewNote through isNewNote

Chapter 10: Java Classes A–Z 1889


Document class

IsProfile through isProfile


IsResponse through isResponse
IsSaveMessageOnSend through isSaveMessageOnSend and
setSaveMessageOnSend
IsSentByAgent through isSentByAgent
IsSigned through isSigned
IsSignOnSend through isSignOnSend and setSignOnSend
IsValid through isValid
Items through getItems
Key through getKey
LastAccessed through getLastAccessed
LastModified through getLastModified
NameOfProfile through getNameOfProfile
NoteID through getNoteID
ParentDatabase through getParentDatabase
ParentDocumentUNID through getParentDocumentUNID
ParentView through getParentView
Responses through getResponses
Signer through getSigner
Size through getSize
UniversalID through getUniversalID and setUniversalID
Verifier through getVerifier

Methods
appendItemValue
computeWithForm
copyAllItems
copyItem
copyToDatabase
createReplyMessage
createRichTextItem

1890 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Document class

encrypt
getAttachment
getFirstItem
getItemValue
getItemValueDouble
getItemValueInteger
getItemValueString
hasItem
makeResponse
putInFolder
remove
removeFromFolder
removeItem
renderToRTItem
replaceItemValue
save
send
sign

Creation
To create a new Document object, use createDocument in Database.

Access
To access existing documents:
To get all the documents in a database, use getAllDocuments
in Database.
To get a document based on its position in a view, use a View object.
To get a document based on its position in a response hierarchy, use a
View object. To get all documents that are responses to a particular
document, use getResponses in Document. To get a response
document’s parent document, use getParentDocumentUNID in
Document followed by getDocumentByUNID in Database.
To get all the documents that match a full text search query, use
FTSearch in Database or FTSearch in View.

Chapter 10: Java Classes A–Z 1891


Document class

To get all the documents in a database that meet search criteria,


where the criteria are defined using the formula language, use
FTSearch in Database.
To get documents in a database not yet processed by the current agent,
use getUnprocessedDocuments, unprocessedFTSearch, and
unprocessedSearch in AgentContext.
To get a document based on its Note ID or UNID, use
getDocumentByID or getDocumentByUNID in Database.
Once you have a view, you can navigate to a specific document using
methods in the View class.
Once you have a collection of documents, you can navigate to a specific
document using methods in the DocumentCollection class.

Saving changes
After you create, modify, or delete a document, you must save the changes
by calling the Save method. If you don’t call save before the program
finishes, all of your changes to a Document are lost.
If you create a new document, but do not add any items to it, the document
is not saved, even if you invoke the save method.

Encryption
A program attempts to decrypt an encrypted document the first time the
program accesses one of the Document properties or methods. If decryption
fails, an exception is thrown.

Examples: Document class


1. This agent creates a document and saves it in the current database.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Document doc = db.createDocument();
doc.replaceItemValue("Form", "Main Topic");
doc.replaceItemValue("Subject", "New building");
if (doc.save())
System.out.println("Document created and saved");
else

1892 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Document class

System.out.println("Something went wrong");


} catch(Exception e) {
e.printStackTrace();
}
}
}
2. This agent creates a document and sends it. The document is not saved.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Document doc = db.createDocument();
doc.replaceItemValue("Form", "Memo");
doc.replaceItemValue("Subject", "Reminder");
doc.setEncryptOnSend(true);
doc.replaceItemValue("Body",
"A document awaits your approval in " +
db.getTitle() + ".");
doc.send("Robert Smith");
} catch(Exception e) {
e.printStackTrace();
}
}
}

Authors property
Read-only. The names of the people who have saved a document.

Defined in
Document

Data type
java.util.Vector; elements are String

Syntax
public java.util.Vector getAuthors()
throws NotesException

Chapter 10: Java Classes A–Z 1893


Document class

Usage
If a name is hierarchical, this property returns the fully distinguished name.
This property does not return the names of people who have permission to
edit a document (as found in an item of type Authors). Therefore, the
people returned by the Authors property and the people listed in an
Authors item may differ.

Example: Authors and IsResponse properties


This agent counts the number of response douments of which the current
user is an author.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = session.getDatabase(
"FrenchFry", "notesua\\progwork");
DocumentCollection dc = db.getAllDocuments();
Vector authors;
int count = 0;
Document doc = dc.getFirstDocument();
while (doc != null) {
if (!doc.isResponse()) {
authors = doc.getAuthors();
if (authors.contains(session.getUserName()))
count++; }
doc = dc.getNextDocument(doc); }
System.out.println(session.getUserName() +
" is author on " +
count + " main documents");
} catch(Exception e) {
e.printStackTrace();
}
}
}

1894 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Document class

ColumnValues property
Read-only. An array of values, each element of which corresponds to a
column value in the document’s parent view. The first value in the array is
the value that appears in the view’s first column for the document, the
second value is the one that appears in the second column, and so on. The
value of each element of the array is the result of the corresponding
column’s formula and the items on the current document. Some elements in
the array might have no value.

Defined in
Document

Data type
java.util.Vector; elements are Object

Syntax
public java.util.Vector getColumnValues()
throws NotesException

Usage
If you do not access the document through a view, this property has
no value.
If a document contains an item that’s visible in a view, the ColumnValues
property provides efficient access to its value. Accessing the item value
directly is less efficient.
This property returns a value for each column in the parent view,
regardless of whether the column is considered “Responses-only.”
For example, if the third column in a view is responses-only,
doc.GetColumnValues( 2 ) evaluates the column formula for
the document and returns a result, whether the document is a
response or not.

Example: ColumnValues property


This agent gets the column values of all documents in a database, taking
care to determine the data type of each value.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();

Chapter 10: Java Classes A–Z 1895


Document class

View view = db.getView("All Documents");


Vector v;
String s, tabs;
DateTime dt;
Double d;
Document doc = view.getFirstDocument();
while (doc != null) {
v = doc.getColumnValues();
tabs = "";
for (int i=0; i<v.size(); i++) {
if

(v.elementAt(i).getClass().getName().endsWith("String"))
s = (String)v.elementAt(i);
else if

(v.elementAt(i).getClass().getName().endsWith("DateTime")) {
dt = (DateTime)v.elementAt(i);
s = dt.getLocalTime(); }
else if

(v.elementAt(i).getClass().getName().endsWith("Double")) {
d = (Double)v.elementAt(i);
s = d.toString(); }
else
s = "not String, DateTime, or Double";
if (s.length() == 0) s = "*no value*";
System.out.println(tabs + s);
tabs = tabs + "\t"; }
doc = view.getNextDocument(doc); }

} catch(Exception e) {
e.printStackTrace();
}
}
}

Created property
Read-only. The date a document was created.

Defined in
Document

Data type
DateTime

1896 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Document class

Syntax
public DateTime getCreated()
throws NotesException

Example: Created, LastAccessed, and LastModified properties


This agent gets the creation, last accessed, and last modified dates for all
documents in a database.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
Document doc = dc.getFirstDocument();
while (doc != null) {
System.out.println(doc.getItemValueString("Subject"));
System.out.println("\tCreated on " +
doc.getCreated().getLocalTime());
System.out.println("\tLast accessed on " +
doc.getLastAccessed().getLocalTime());
System.out.println("\tLast modified on " +
doc.getLastModified().getLocalTime());
doc = dc.getNextDocument(doc); }

} catch(Exception e) {
e.printStackTrace();
}
}
}

EmbeddedObjects property
Read-only. The OLE/2 and OLE/1 embedded objects in a document.
Note EmbeddedObjects is not supported on OS/2, on UNIX, and on
the Macintosh.

Defined in
Document

Data type
java.util.Vector; elements are EmbeddedObject

Chapter 10: Java Classes A–Z 1897


Document class

Syntax
public java.util.Vector getEmbeddedObjects()
throws NotesException

Usage
Unlike the EmbeddedObjects property in RichTextItem, this property does
not include file attachments or OLE/1 objects created in Notes Release 3.
This property does include OLE/2 and OLE/1 objects created in Release 4
and higher. It also includes objects in the document that were originally
embedded in the document’s form. Such objects must have been activated,
modified, and re-saved in order to be returned by this property (otherwise
they remain a part of the form, not the document).
The vector is empty if the document contains no embedded objects.

Example: EmbeddedObjects and HasEmbedded properties


This agent finds documents with embedded objects and prints the names of
the objects.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
Vector v = null;
Document doc = dc.getFirstDocument();
while (doc != null) {
if (doc.hasEmbedded()) {
System.out.println("\"" +
doc.getItemValueString("Subject") +
"\" has embedded objects.");
// Beta bug: Attachment throws null pointer
exception
// Catch exception and set vector to null
// In final product, v should be empty
try { v = doc.getEmbeddedObjects(); }
catch (Exception e) { v = null; }
if (v == null)
System.out.println(
"\tEmbedded object is an attachment.");
else for (int i=0; i<v.size(); i++) {
EmbeddedObject eo =
(EmbeddedObject)v.elementAt(i);

1898 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Document class

System.out.println
("\t" + eo.getName() + " of " +
eo.getClassName());
}
}
doc = dc.getNextDocument(doc); }

} catch(Exception e) {
e.printStackTrace();
}
}
}

EncryptionKeys property
Read-write. The key(s) used to encrypt a document. The encrypt method
uses these keys when it encrypts the document.

Defined in
Document

Data type
java.util.Vector; elements are String

Syntax
public java.util.Vector getEncryptionKeys()
throws NotesException
public void setEncryptionKeys(java.util.Vector keys)
throws NotesException

Usage
Each element in EncryptionKeys contains the name of an encryption key
you want to use to encrypt the document. The document can be decrypted
by any user who posesses one of the keys. If there are no encryption keys
specified for a document, the document is encrypted with the current user’s
public key and can only be decrypted by that user.
You must call the encrypt and save methods to actually encrypt the
document. Since encryption works differently when a document is mailed,
the EncryptionKeys property has no effect when a document is encrypted
when mailed.
The name of each encryption key in a document is stored in a text item
called SecretEncryptionKeys. This property returns the contents of the item.

Chapter 10: Java Classes A–Z 1899


Document class

FolderReferences property
Read-only. The universal IDs for the folders containing a document.

Defined in
Document

Data type
java.util.Vector; elements are String

Syntax
public java.util.Vector getFolderReferences()
throws NotesException

Usage
Folder references must be enabled for the database. See the
FolderReferencesEnabled property of Database.

FTSearchScore property
Read-only. The full-text search score of a document, if it was retrieved as
part of a full-text search.

Defined in
Document

Data type
int

Syntax
public int getFTSearchScore()
throws NotesException

Usage
The score is determined by the number of target words that are found in the
document, the term weights assigned to the target words, and any
proximity operators in the search query. If the document is not retrieved as
part of a full-text search, returns 0. If the document is retrieved using an
FTSearch method on a database without a full-text index, returns an
unpredictable number.
If a document is in more than one DocumentCollection or
ViewEntryCollection, its score is that of the last collection it was retrieved
from. The score is correct unless you get the score from the current object
after retrieving the same document from another collection.

1900 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Document class

Documents added to a collection have a search score of 0.


Documents deleted from a view have a search score of 0.

Example: FTSearchScore property


This agent gets the search score for each document returned by a full-text
search.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.FTSearch("blue", 0);
if (dc.getCount() == 0)
System.out.println("No \"blue\"");
else {
System.out.println("\"blue\" hits");
Document doc = dc.getFirstDocument();
while (doc != null) {
System.out.println(doc.getFTSearchScore() +
"\t" + doc.getItemValueString("Subject"));
doc = dc.getNextDocument(doc);
}
}

} catch(Exception e) {
e.printStackTrace();
}
}
}

HasEmbedded property
Read-only. Indicates if a document contains one or more embedded objects,
object links, or file attachments.
Note HasEmbedded is not supported on OS/2, on UNIX, and on
the Macintosh.

Defined in
Document

Chapter 10: Java Classes A–Z 1901


Document class

Data type
boolean

Syntax
public boolean hasEmbedded()
throws NotesException

Legal values
True if the document contains one or more embedded objects, object
links, or file attachments.
False if the document does not contain any embedded objects, object
links, or file attachments.

IsEncryptOnSend property
Read-write. Indicates if a document is encrypted when mailed.

Defined in
Document

Data type
boolean

Syntax
public boolean isEncryptOnSend()
throws NotesException
public void setEncryptOnSend(boolean flag)
throws NotesException

Legal values
True if the document is encrypted when mailed.
False if the document is not encrypted when mailed.

Usage
To encrypt a document when mailed, this method looks for the public key
of each recipient in the Domino Directory. If it cannot find a recipient’s
public key, the method sends an unencrypted copy of the document to that
recipient. All other recipients receive an encrypted copy of the document.
This property has no effect on whether a document is encrypted when
saved to a database.

1902 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Document class

IsNewNote property
Read-only. Indicates if a document is new. A document is new if it has not
been saved.

Defined in
Document

Data type
boolean

Syntax
public boolean isNewNote()
throws NotesException

Legal values
True if the document was created, but has not been saved.
False if the document has been saved.

Example: IsNewNote property


This agent shows the effect of IsNewNote before and after saving a newly
created document.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Document doc = db.createDocument();
doc.appendItemValue("Form", "Main Topic");
doc.appendItemValue("Subject", "New document 1");
doc.appendItemValue("Categories", "New documents");
isitnew(doc);
System.out.println("... saving ...");
doc.save();
isitnew(doc);

} catch(Exception e) {
e.printStackTrace();
}
}

Chapter 10: Java Classes A–Z 1903


Document class

public void isitnew(Document doc) {


try {
if (doc.isNewNote())
System.out.println("\"" +
doc.getItemValueString("Subject") +
"\" has not been saved yet");
else
System.out.println("\"" +
doc.getItemValueString("Subject") +
"\" has been saved");
} catch(Exception e) {
e.printStackTrace();
}
}
}

IsProfile property
Read-only. Indicates if a Document object is a profile document.

Defined in
Document

Data type
boolean

Syntax
public boolean isProfile()
throws NotesException

Legal values
True if the document is a profile document.
False if the document is not a profile document.

Example: IsProfile property


This agent gets the name and key for the “Author Profile” document of the
current user.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();

1904 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Document class

Document doc = db.getProfileDocument


("Author Profile", session.getUserName());
String who = doc.getItemValueString("Who");
String email = doc.getItemValueString("email");
if (doc != null && doc.isProfile()) {
System.out.println(
"Profile name: " + doc.getNameOfProfile());
System.out.println("Key: " + doc.getKey());
}

} catch(Exception e) {
e.printStackTrace();
}
}
}

IsResponse property
Read-only. Indicates if a document is a response to another document.

Defined in
Document

Data type
boolean

Syntax
public boolean isResponse()
throws NotesException

Legal values
True if the document is a response to another document.
False if the document is not a response to another document.

IsSaveMessageOnSend property
Read-write. Indicates if a document is saved to a database when mailed.
Applies only to new documents that have not yet been saved.

Defined in
Document

Data type
boolean

Chapter 10: Java Classes A–Z 1905


Document class

Syntax
public boolean isSaveMessageOnSend()
throws NotesException
public void setSaveMessageOnSend(boolean flag)
throws NotesException

Legal values
True if the document is saved when mailed.
False if the document is not saved when mailed.

Usage
When SaveMessageOnSend is true, the document is saved just after being
mailed.

IsSentByAgent property
Read-only. Indicates if a document was mailed by a Domino program.

Defined in
Document

Data type
boolean

Syntax
public boolean isSentByAgent()
throws NotesException

Legal values
True if the document was mailed by a program.
False if the document was mailed by a person.

Usage
In agents that respond to mail messages, you can use this property to make
sure that the agent is not responding to mail that was sent by a program.
Documents sent by a program contain an item called $AssistMail whose
value is set to 1.

Example: IsSentByAgent property


This agent, which is activated after new mail arrives, sends a reply except to
memos sent by programs.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {

1906 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Document class

public void NotesMain() {


try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc =
agentContext.getUnprocessedDocuments();
Document reply;
Vector sendTo;
Document doc = dc.getFirstDocument();
while (doc != null) {
sendTo = doc.getAuthors();
if (!doc.isSentByAgent()) {
reply = doc.createReplyMessage(false);
reply.replaceItemValue
("Subject", "Re: " +
doc.getItemValueString("Subject"));
reply.replaceItemValue(
"Body", "On vacation until 8/15\n");
reply.send(sendTo);
}
doc = dc.getNextDocument(doc);
}
} catch(Exception e) {
e.printStackTrace();
}
}
}

IsSigned property
Read-only. Indicates if a document contains a signature.

Defined in
Document

Data type
boolean

Syntax
public boolean isSigned()
throws NotesException

Chapter 10: Java Classes A–Z 1907


Document class

Legal values
True if the document contains one or more signatures.
False if the document does not contain signatures.

Usage
You can get the Signer and Verifier for a signed document. To access the
signature itself, you must find the item of type SIGNATURE in the
document.

Example: IsSigned, Signer, and Verifier properties


This agent gets the signer and verifier for documents that are signed.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
DbDirectory dir = session.getDbDirectory(null);
Database db = dir.openMailDatabase();
View view = db.getView("($Inbox)");
Document doc = view.getFirstDocument();
while (doc != null) {
System.out.println("[ " +
doc.getItemValueString("Subject") + " ]");
if (doc.isSigned()) {
System.out.println("\tSigned by " +
doc.getSigner());
System.out.println("\tVerified by " +
doc.getVerifier()); }
else System.out.println("\tNot signed");
doc = view.getNextDocument(doc); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

IsSignOnSend property
Read-write. Indicates if a document is signed when mailed.

Defined in
Document

1908 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Document class

Data type
boolean

Syntax
public boolean isSignOnSend()
throws NotesException
public void setSignOnSend(boolean flag)
throws NotesException

Legal values
True if the document is signed when mailed.
False if the document is not signed when mailed.

IsValid property
Read-only. Indicates if a Document object represents an existing document
(not a deletion stub).

Defined in
Document

Data type
boolean

Syntax
public boolean isValid()
throws NotesException

Legal values
True if the document represents an existing document.
False if the document is a deletion stub.

Example: IsValid property


This agent checks on whether a document on a server is still valid.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = session.getDatabase(
"NotesUA1", "dbexamples");
DocumentCollection dc = db.getAllDocuments();
// For testing, open db on another computer and delete a

Chapter 10: Java Classes A–Z 1909


Document class

// document while this program is sleeping


sleep(12000);
Document doc = dc.getFirstDocument();
while (doc != null) {
if (doc.isValid())
System.out.print(
doc.getItemValueString("Subject"));
else
System.out.println("[Deletion stub]");
doc = dc.getNextDocument(doc); }

} catch(Exception e) {
e.printStackTrace();
}
}
}

Items property
Read-only. All the items in a document. An item is any piece of data stored
in a document.

Defined in
Document

Data type
java.util.Vector; elements are Item

Syntax
public java.util.Vector getItems()
throws NotesException

Example: Items property


This agent gets the NoteID for each document in a database, and the name
and value string of each item in the document.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
Document doc = dc.getFirstDocument();
while (doc != null) {

1910 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Document class

System.out.println("Document " +
doc.getNoteID() + ":");
Vector items = doc.getItems();
for (int j=0; j<items.size(); j++) {
Item item = (Item)items.elementAt(j);
System.out.println("\t" +
item.getName() + " = \"" +
item.getValueString() + "\"");
}
doc = dc.getNextDocument();
}
} catch(Exception e) {
e.printStackTrace();
}
}
}

Key property
Read-only. If a profile document, the user name (key) of the profile.

Defined in
Document

Data type
String

Syntax
public String getKey()
throws NotesException

LastAccessed property
Read-only. The date a document was last modified or read.

Defined in
Document

Data type
DateTime

Syntax
public DateTime getLastAccessed()
throws NotesException

Chapter 10: Java Classes A–Z 1911


Document class

LastModified property
Read-only. The date a document was last modified.

Defined in
Document

Data type
DateTime

Syntax
public DateTime getLastModified()
throws NotesException

NameOfProfile property
Read-only. If a profile document, the name of the profile.

Defined in
Document

Data type
String

Syntax
public String getNameOfProfile()
throws NotesException

NoteID property
Read-only. The NoteID of a document, which is a hexadecimal value of up
to 8 characters that uniquely identifies a document within a particular
database.

Defined in
Document

Data type
String

1912 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Document class

Syntax
public String getNoteID()
throws NotesException

Usage
A typical Note ID looks like this: 20FA. A NoteID represents the location of
a document within a specific database file, so documents that are replicas of
one another generally have different NoteIDs. A NoteID does not change,
unless the document is deleted.

ParentDatabase property
Read-only. The database that contains a document.

Defined in
Document

Data type
Database

Syntax
public Database getParentDatabase()
throws NotesException

Example: ParentDatabase property


This agent demonstrates a function that gets the parent database given a
Document object.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = session.getDatabase(
"NotesUA1", "dbexamples");
DocumentCollection dc = db.getAllDocuments();
Document doc = dc.getFirstDocument();
parentdb(doc);

} catch(Exception e) {
e.printStackTrace();
}
}

Chapter 10: Java Classes A–Z 1913


Document class

public void parentdb(Document d) {


try {
Database db = d.getParentDatabase();
System.out.println("Parent database is \"" +
db.getTitle() + "\" (" + db.getFileName() + ")");
} catch (Exception e) {
e.printStackTrace();
}
}
}

ParentDocumentUNID property
Read-only. The universal ID of a document’s parent, if the document is a
response. Returns a null if a document doesn’t have a parent.

Defined in
Document

Data type
String

Syntax
public String getParentDocumentUNID()
throws NotesException

Usage
When used in conjunction with getDocumentByUNID in Database, this
property allows you to get the parent document for any document.
For more information on universal IDs, see the UniversalID property.

Example: ParentDocumentUNID property


This agent gets the parent documents of response documents in a database
through their UNIDs.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
String parentUNID = null;
Document parentDoc = null;
Document doc = dc.getFirstDocument();

1914 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Document class

while (doc != null) {


if (doc.isResponse()) {
System.out.println(
doc.getItemValueString("Subject"));
parentUNID = doc.getParentDocumentUNID();
parentDoc = db.getDocumentByUNID(parentUNID);
System.out.println("\tParent is \"" +
parentDoc.getItemValueString("Subject") + "\"");
}
doc = dc.getNextDocument(doc);
}
} catch(Exception e) {
e.printStackTrace();
}
}
}

ParentView property
Read-only. The view from which a document was retrieved, if any. If the
document was retrieved directly from the database or a document
collection, returns null.

Defined in
Document

Data type
View

Syntax
public View getParentView()
throws NotesException

Example: ParentView property


This agent demonstrates a function that gets the parent view given a
Document object.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
Document doc = view.getFirstDocument();
DocumentCollection dc = db.getAllDocuments();
Document doc2 = dc.getFirstDocument();
printViewName(doc);

Chapter 10: Java Classes A–Z 1915


Document class

printViewName(doc2);
} catch(Exception e) {
e.printStackTrace();
}
}

public void printViewName(Document d) {

try {
View view = d.getParentView();
if (view == null)
System.out.println(
"Document did not come from a view.");
else
System.out.println("Document came from \"" +
view.getName() + "\" view.");
} catch(Exception e) {
e.printStackTrace();
}

}
}

Responses property
Read-only. The immediate responses to a document.

Defined in
Document

Data type
DocumentCollection

Syntax
public DocumentCollection getResponses()
throws NotesException

Usage
Each document returned is an immediate response to the first document.
Responses-to-responses are not included. If the current document has no
responses, the vector contains zero documents.

Responses-to-Responses
This property returns only immediate responses to a document, but you can
write a recursive sub or function to access all the descendants of a particular
document. A recursive sub calls itself, the same way that a non-recursive
sub calls any other sub or function.

1916 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Document class

Example: Responses property


This agent gets all the main documents in a view, then gets their responses
by calling a function recursively.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("All Documents");
Document doc = view.getFirstDocument();
while (doc != null) {
System.out.println(
doc.getItemValueString("Subject"));
DocumentCollection responses = doc.getResponses();
if (responses.getCount() > 0)
printResponses(responses, "\t");
doc = view.getNextSibling(doc);
}
} catch(Exception e) {
e.printStackTrace();
}
}

public void printResponses(DocumentCollection dc, String


tabs) {

try {
Document doc = dc.getFirstDocument();
while (doc != null) {
System.out.println(tabs +
doc.getItemValueString("Subject"));
DocumentCollection dc2 = doc.getResponses();
if (dc2.getCount() > 0)
printResponses(dc2, tabs + "\t");
doc = dc.getNextDocument(doc);
}
} catch(Exception e) {
e.printStackTrace();
}

}
}

Chapter 10: Java Classes A–Z 1917


Document class

Signer property
Read-only. The name of the person who created the signature, if a
document is signed.

Defined in
Document

Data type
String

Syntax
public String getSigner()
throws NotesException

Usage
If a document is not signed, returns null.

Size property
Read-only. The size of a document in bytes, which includes the size of any
file attachments to the document.

Defined in
Document

Data type
int

Syntax
public int getSize()
throws NotesException

Example: Size property


This agent gets the size of every document in a database.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("All Documents");
Document doc = view.getFirstDocument();

1918 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Document class

while (doc != null) {


System.out.println("\"" +
doc.getItemValueString("Subject") +
"\" consumes " +
doc.getSize() + " bytes.");
doc = view.getNextSibling(doc);
}
} catch(Exception e) {
e.printStackTrace();
}
}
}

UniversalID property
Read-write. The universal ID of a document, which is a 32-character
combination of hexadecimal digits (0-9, A-F) that uniquely identifies a
document across all replicas of a database. If two documents in replica
databases share the same universal ID, the documents are replicas.
The universal ID is also known as the unique ID or UNID.

Defined in
Document

Data type
String

Syntax
public String getUniversalID()
throws NotesException
public void setUniversalID(String unid)
throws NotesException

Usage
If you modify the UNID of an existing document, it becomes a new
document.
If you set the UNID of a document the same as another document, you get
run-time error 4000 when you attempt to save the document.

Chapter 10: Java Classes A–Z 1919


Document class

Example: UniversalID property


This agent constructs a universal ID for a new document from the agent
comment.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Agent agent = agentContext.getCurrentAgent();
String topicID = agent.getComment();
if (topicID != null && topicID.length() == 8) {
Document doc = db.createDocument();
doc.appendItemValue("Form", "Main Topic");
doc.appendItemValue(
"Subject", "Topic # " + topicID);
doc.appendItemValue(
"Categories", "Numbered topics");
doc.setUniversalID(
"AAAABBBBCCCCDDDDEEEEFFFF" + topicID);
doc.save();
System.out.println("Universal ID for new topic is "
+ doc.getUniversalID());
}
else
System.out.println("TopicID must be 8 characters");
} catch(NotesException e) {
if (e.id == 4000)
System.out.println("TopicID is not unique");
else
e.printStackTrace();
}
}
}

Verifier property
Read-only. The name of the certificate that verified a signature, if a
document is signed.

Defined in
Document

Data type
String

1920 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Document class

Syntax
public String getVerifier()
throws NotesException

Usage
This property is null if the document is not signed.

appendItemValue method
Creates a new item in a document and optionally sets the item value.
Note In general, replaceItemValue is favored over appendItemValue. If an
item of the same name already exists in a document, appendItemValue
creates a second item of the same name, and the duplicate items are not
accessible through most methods. If you are creating a new document,
appendItemValue is safe.

Defined in
Document

Syntax
public Item appendItemValue(String name)
throws NotesException
public Item appendItemValue(String name, int value)
throws NotesException
public Item appendItemValue(String name, double value)
throws NotesException
public Item appendItemValue(String name, Object value)
throws NotesException

Parameters
String name

The name of the new item.


int value

The value of the new item.


double value

The value of the new item.

Chapter 10: Java Classes A–Z 1921


Document class

Object value

The value of the new item. The data type of the new item depends upon
the data type of the value that you place in it.
Data type of value Resulting Item
String Text
Integer Number
Double Number
DateTime Date-time item
java.util.Vector with String, Integer, Multi-value text, number,
Double, or DateTime elements or date-time item
Item Same data type as the Item

Return value
Item

The new item.

Usage
To keep the new item, you call save after calling appendItemValue.
If the document already has an item called name, appendItemValue does
not replace it. Instead, it creates another item of the same name and gives it
the value you specify.

Example: appendItemValue method


This agent creates text, multi-value text, numeric (from int), numeric
(from double), multi-value numeric (from Vector of Integer values), and
date-time items.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Document doc = db.createDocument();
doc.appendItemValue("Form", "Main Topic");
// Create text item with one String value
doc.appendItemValue("Subject",
"Test appendItemValue");
// Create text item with multiple String values
Vector stringMultiple = new Vector();

1922 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Document class

stringMultiple.addElement("String one");
stringMultiple.addElement("String two");
stringMultiple.addElement("String three");
doc.appendItemValue("stringMultiple",
stringMultiple);
// Create numeric item with one int value
doc.appendItemValue("integer", 101);
// Create numeric item with one double value
doc.appendItemValue("double", 1.01);
// Create numeric item with multiple Integer values
Vector integerMultiple = new Vector();
Integer one = new Integer(1);
integerMultiple.addElement(one);
Integer two = new Integer(2);
integerMultiple.addElement(two);
Integer three = new Integer(3);
integerMultiple.addElement(three);
doc.appendItemValue("integerMultiple",
integerMultiple);
// Create time item with one DateTime value
DateTime timenow = session.createDateTime("");
timenow.setNow();
doc.appendItemValue("dateTime", timenow);

if (doc.save())
System.out.println("Document created and saved");
else
System.out.println("Something went wrong");
} catch(Exception e) {
e.printStackTrace();
}
}
}

computeWithForm method
Validates a document by executing the default value, translation, and
validation formulas, if any are defined in the document form.

Defined in
Document

Syntax
public boolean computeWithForm(boolean dodatatypes, boolean
raiseerror)
throws NotesException

Chapter 10: Java Classes A–Z 1923


Document class

Parameters
boolean dodatatypes

The method ignores this parameter. Specify either true or false.


boolean raiseerror

If true, an error is raised if the validation fails. If false, no error is raised;


instead, the method returns false if validation fails.

Return value
True if there are no errors in the document.
False if there are errors in the document.

Usage
The form is as follows:
1. The form stored in the document, if any.
2. The value of the Form item, if no form is stored in the document.
3. The database default form, if the document does not have a Form item.
In the user interface, you must use a form to create a document. The
document must meet the form requirements for input validation, and the
user interface informs you if the document does not meet these
requirements. Programatically you can create a document without a form.
The computeWithForm method provides a means of checking that the data
you placed in a document meets a form’s requirements, although (unlike in
the user interface) you can still save a document if computeWithForm
returns false or throws an exception.

Example: computeWithForm method


Assume that the Subject field on the “Main Topic” form contains the
following validation formula:
@If( Subject = ""; @Failure( "You must enter a Subject" );
@Success )

The following agent as it stands does not save the document. If the
replaceItemValue line for Subject is uncommented, the agent saves the
document.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Document doc = db.createDocument();

1924 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Document class

doc.replaceItemValue("Form", "Main Topic");


// doc.replaceItemValue("Subject", "Subject of
document");
doc.replaceItemValue("Body", "Text of document.");
if (doc.computeWithForm(false, false)) {
System.out.println("Saving document ...");
doc.save(true, true); }
else
System.out.println("Document not saved ...
no subject");
} catch(Exception e) {
e.printStackTrace();
}
}
}

copyAllItems method
Copies all items in the current document into the destination document. The
item names are unchanged.

Defined in
Document

Syntax
public void copyAllItems(Document doc, boolean replace)
throws NotesException

Parameters
Document

The destination document.


boolean replace

If true, the items in the destination document are replaced. If false, the
items in the destination document are appended.

Usage
If you are not copying to a newly created document, you should probably
specify true for the second parameter. See appendItemValue for a note
about appending items to existing documents.

Chapter 10: Java Classes A–Z 1925


Document class

Example: copyAllItems method


This agent copies all items from an existing document into a newly
created one.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.search("Subject =
\"Test appendItemValue\"");
if (dc.getCount() == 1) {
Document doc = dc.getFirstDocument();
Document docCopy = db.createDocument();
doc.copyAllItems(docCopy, false);
docCopy.replaceItemValue("Subject",
"Copy of test appendItemValue");
if (docCopy.save())
System.out.println("Document saved");
else
System.out.println("Something went wrong"); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

copyItem method
Copies an item into the current document and optionally assigns the copied
item a new name.

Defined in
Document

Syntax
public Item copyItem(Item item)
throws NotesException
public Item copyItem(Item item, String newname)
throws NotesException

1926 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Document class

Parameters
Item item

The item, usually from another document, that you want to copy.
Cannot be null.
String newname

The name to assign to the copied item. Specify null to retain the item’s
existing name.

Return value
Item

A copy of the specified item parameter, identical except for its newname.

Example: copyItem method


This agent copies an item from an existing document to a newly created
document.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.search("Subject =
\"Test appendItemValue\"");
if (dc.getCount() == 1) {
Document doc = dc.getFirstDocument();
Document docCopy = db.createDocument();
docCopy.replaceItemValue("Subject",
"Copy of test appendItemValue");
docCopy.copyItem(bodyItem, "");
if (docCopy.save())
System.out.println("Document saved");
else
System.out.println("Something went wrong"); }
} catch(NotesException e) {
System.out.println(e.id + " " + e.text);
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 1927


Document class

copyToDatabase method
Copies a document to a specified database.

Defined in
Document

Syntax
public Document copyToDatabase(Database db)
throws NotesException

Parameter
Database db

The database to which you want to copy the document. Cannot be null.

Return value
Document

The new document in the specified database.

Example: copyToDatabase method


This agent copies the documents in a view of one database to a newly
created database.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Database newdb = db.createCopy(null, "archive");
System.out.println("Archive created");
View view = db.getView("By Category");
Document doc = view.getFirstDocument();
int count = 0;
while (doc != null) {
doc.copyToDatabase(newdb);
count++;
doc = view.getNextDocument(doc); }
System.out.println(count +
" documents copied to archive");
} catch(Exception e) {
e.printStackTrace();
}
}
}

1928 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Document class

createReplyMessage method
Creates a new document that is formatted as a reply to the current
document.

Defined in
Document

Syntax
public Document createReplyMessage(boolean toall)
throws NotesException

Parameter
boolean toall

If true, the new document recipient list contains all the recipients of the
original. If false, the new document recipient list contains only the
sender of the original.

Return value
Document

A reply to the current document.

Usage
The new document does not contain a Subject item. If you want one, the
program must explicitly add it to the document.
The new document does not automatically get mailed. If you want to mail
it, the program must explicitly call the send method.

Example: createReplyMessage method


This agent sends a reply message for all documents in a view.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
DbDirectory dir = session.getDbDirectory(null);
Database db = dir.openMailDatabase();
View view = db.getView("Filed but not forgotten");
Document doc = view.getFirstDocument();
while (doc != null) {
Document reply = doc.createReplyMessage(false);
reply.replaceItemValue("Subject",
"Can't work on this now");

Chapter 10: Java Classes A–Z 1929


Document class

reply.replaceItemValue("Body",
"This has been filed for future consideration.");
reply.send(doc.getItemValueString("From"));
doc = view.getNextDocument(doc); }

} catch(NotesException e) {
System.out.println(e.id + " " + e.text);
e.printStackTrace();
}
}
}

createRichTextItem method
Creates a new rich text item in a document.

Defined in
Document

Syntax
public RichTextItem createRichTextItem(String name)
throws NotesException

Parameter
String name

The name of the new rich text item.

Return value
RichTextItem

The newly created item.

Usage
For more information, see the RichTextItem class.

Example: createRichTextItem method


This agent creates a rich text item.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Document doc = db.createDocument();

1930 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Document class

doc.replaceItemValue("Form", "Main Topic");


doc.replaceItemValue("Subject", "Forest icon");
RichTextItem rtitem = doc.createRichTextItem("Body");
rtitem.embedObject(EmbeddedObject.EMBED_ATTACHMENT,
null, "C:\\Windows\\forest.bmp", "Forest icon");
doc.save();
} catch(Exception e) {
e.printStackTrace();
}
}
}

encrypt method
Encrypts a document.

Defined in
Document

Syntax
public void encrypt()
throws NotesException

Usage
The encrypted document is not saved until you call save. Only the items for
which isEncrypted is true are encrypted. Items for which isEncrypted is
false remain visible to any user, even if the user does not have the proper
encryption key.
If the EncryptionKeys property is set with one or more named keys, those
keys are used to encrypt the document. Any user who has one of the
encryption keys can decrypt the document. If there are no encryption keys
specified, the document is encrypted with the user’s public key, in which
case only the user who encrypted the document can decrypt it.
If the program is running on a server, it must have permission to use
Encrypt.
Since mail encryption works differently, do not use this method if you want
to mail an encrypted document. Instead, set the EncryptOnSend property to
true, and use the send method.

Chapter 10: Java Classes A–Z 1931


Document class

Example: encrypt method and EncryptionKeys property


This agent encrypts a document after making sure “Top Secret” is one of
the encryption keys.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
Document doc = view.getFirstDocument();
while (doc != null) {
Item item = doc.getFirstItem("Body");
if (item != null) {
// Make sure the item can be encrypted
if (!item.isEncrypted()) item.setEncrypted(true);
// Add "Top Secret" to the encryption keys
// if not there
boolean found = false;
Vector v = doc.getEncryptionKeys();
for (int i=0; i<v.size(); i++) {
String k = (String)v.elementAt(i);
if (k.compareTo("Top Secret") == 0) {
found = true; break; } }
if (!found) {
v.addElement("Top Secret");
doc.setEncryptionKeys(v); }
// Encrypt the document
try {
doc.encrypt();
} catch (NotesException e) {
System.out.println(e.id + " " + e.text);
break; } }
doc.save();
doc = view.getNextDocument(doc); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

1932 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Document class

getAttachment method
Returns a representation of a file attachment. You can use this method to
find file attachments that are not contained in a rich text item (such as an
attachment in a Release 2 database) as well as file attachments that are
contained in a rich text item.

Define in
Document

Syntax
public EmbeddedObject getAttachment(String filename)
throws NotesException

Parameter
String filename

String. The file name of the file attachment.

Return value
EmbeddedObject

A representation of the file attachment. Returns null if an attachment by


the specified name is not found.

Usage
The Parent property for the returned EmbeddedObject returns null, since it
was not accessed through a RichTextItem.

Example: getAttachment method


This agent looks for the file attachment forest.bmp in all the documents
in a database.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
Document doc = dc.getFirstDocument();
while (doc != null) {
EmbeddedObject obj =
doc.getAttachment("forest.bmp");
if (obj != null) {
System.out.println("Found " + obj.getName() +
" in \"" + doc.getItemValueString(

Chapter 10: Java Classes A–Z 1933


Document class

"Subject") + "\"");
break; }
doc = dc.getNextDocument(); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

getFirstItem method
Returns the first item of a specified name in a document.

Defined in
Document

Syntax
public Item getFirstItem(String name)
throws NotesException

Parameter
String name

The name of the item you want to find.

Return value
Item

The first item with name. Returns null if the document does not contain
an item with name.

Usage
A document may contain more than one item of the same name. To access
other than the first item, use the Items property.
If the value of a field is computed for display, the value is not stored as an
item and is inaccessible from a Document object. In some cases, you can
access the field value another way. For example, if a document has a
DateComposed field computed for display with the formula @Created, use
getCreated.

1934 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Document class

Using this method to get rich text items


To get a rich text item, explicitly cast the return value from getFirstItem to
RichTextItem.
Document doc;
//...set value of doc...
RichTextItem rtitem =
(RichTextItem)doc.getFirstItem("Body");

Example: getFirstItem method


This agent gets an item and a rich text item for all documents in a database.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
Document doc = dc.getFirstDocument();
while (doc != null) {
Item subject = doc.getFirstItem("Subject");
if (subject == null)
System.out.println("[ No subject ]");
else
System.out.println("[ " +
subject.getText() + " ]");
RichTextItem body =
(RichTextItem)doc.getFirstItem("Body");
if (body == null)
System.out.println("No body");
else
System.out.println(
body.getFormattedText(true, 0, 0));
doc = dc.getNextDocument(); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 1935


Document class

getItemValue method
Returns the value of an item.

Defined in
Document

Syntax
public java.util.Vector getItemValue(String name)
throws NotesException

Parameter
String name

The name of an item.

Return value
java.util.Vector

The value or values contained in the item. The data type of the value
depends on the data type of the item.
Notes item type Value return type
Rich text java.util.Vector with one String element
rendered into plain text
Text (includes Names, Authors, and java.util.Vector with String elements
Readers item types) or text list
Number or number list java.util.Vector with Double elements
Date-time or range of java.util.Vector with DateTime elements
date-time values

Each element corresponds to a value in the item. If the item contains a


single value, the vector has just one element.

Usage
If multiple items have the same name, this method returns the value of the
first item. Use the Items property to get all the items.
If the item has no value, this method returns an empty vector.

Example: getItemValue method, getItemValueDouble,


getItemValueInteger, and getItemValueString
This agent gets text, rich text, numeric integer, numeric double, multi-value
text, multi-value numeric, and date-time item values.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {

1936 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Document class

public void NotesMain() {


try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
Document doc = dc.getFirstDocument();
while (doc != null) {
// Get text item with one value
System.out.println("[ " +
doc.getItemValueString("Subject") + " ]");
// Get rich text item rendered to plain text
System.out.println(doc.getItemValueString("Body"));
// Get numeric item with one integer value

System.out.println(doc.getItemValueInteger("integer"));
// Get numeric item with one decimal value
System.out.println(doc.getItemValueDouble("double"));
// Get text item with multiple values
Vector sM = doc.getItemValue("stringMultiple");
for (int i=0; i<sM.size(); i++)
System.out.println((i+1) + ": " + sM.elementAt(i));
// Get numeric item with multiple integer values
// - must convert from double
Vector iM = doc.getItemValue("integerMultiple");
Double d;
for (int i=0; i<iM.size(); i++) {
d = (Double)iM.elementAt(i);
System.out.println((i+1) + ": " + d.intValue()); }
// Get date-time item
Vector dM = doc.getItemValue("dateTime");
if (dM.size() > 0) {
DateTime dt = (DateTime)dM.elementAt(0);
System.out.println(dt.getLocalTime()); }

doc = dc.getNextDocument(); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 1937


Document class

getItemValueDouble method
Returns the value of an item with a single numeric value.

Defined in
Document

Syntax
public double getItemValueDouble(String name)
throws NotesException

Parameter
String name

The name of the item.

Return value
double

The value of the item.

Usage
If multiple items have the same name, this method returns the value of the
first item. Use the Items property to get all the items.
If the item has no value or the value is text, date-time, or empty, this
method returns 0.0.
If the item has multiple values, this method returns the first value.

getItemValueInteger method
Returns the value of an item with a single numeric value.

Defined in
Document

Syntax
public int getItemValueInteger(String name)
throws NotesException

Parameter
String name

The name of the item.

1938 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Document class

Return value
int

The value of the item.

Usage
If multiple items have the same name, this method returns the value of the
first item. Use the Items property to get all the items.
If the item has no value or the value is text, date-time, or empty, this
method returns 0.
If the item has multiple values, this method returns the first value.

getItemValueString method
Returns the value of an item with a single text value.

Defined in
Document

Syntax
public String getItemValueString(String name)
throws NotesException

Parameter
String name

The name of the item.

Return value
String

The value of the item.

Usage
If multiple items have the same name, this method returns the value of the
first item. Use the Items property to get all the items.
If the item has no value or the value is numeric or date-time, this method
returns an empty string.
This method returns a rich text item rendered to plain text. Formatting and
embedded objects are lost.
If the item has multiple values, this method returns the first value.

Chapter 10: Java Classes A–Z 1939


Document class

hasItem method
Indicates if an item exists in the document.

Defined in
Document

Syntax
public boolean hasItem(String name)
throws NotesException

Parameter
String name
The name of an item.

Return value
True if an item with name exists in the document.
False if no item with name exists in the document.

makeResponse method
Makes one document a response to another. The two documents must be in
the same database.

Defined in
Document

Syntax
public void makeResponse(Document doc)
throws NotesException

Parameter
Document doc

The document to which the current document becomes a response.


Cannot be null.

Usage
You must call save after this method if you want to save the change you
have made.

1940 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Document class

Example: makeResponse method


This agent makes a newly created document a response document to an
existing document.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.search("Subject =
\"Test appendItemValue\"");
if (dc.getCount() == 1) {
Document doc = dc.getFirstDocument();
Document rdoc = db.createDocument();
rdoc.appendItemValue("Form", "Response");
rdoc.appendItemValue("Subject",
"Response to Test appendItemValue");
rdoc.makeResponse(doc);
if (rdoc.save())
System.out.println("Document saved");
else
System.out.println("Something went wrong"); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

putInFolder method
Adds a document to a folder. If the folder does not exist, it is created.

Defined in
Document

Syntax
public void putInFolder(String name)
throws NotesException
public void putInFolder(String name, boolean createonfail)
throws NotesException

Chapter 10: Java Classes A–Z 1941


Document class

Parameter
String name

The name of the folder in which to place the document. The folder may
be personal if the program is running on a workstation. If the folder is
within another folder, specify a path to it, separating folder names with
backslashes, for example:
"Vehicles\\Bikes"
boolean createonfail
If true (default), creates the folder if it does not exist.

Usage
If the document is already inside the folder you specify, putInFolder does
nothing. If you specify a path to a folder, and none of the folders exists, the
method creates all of them for you. For example:
doc.putInFolder( "Vehicles\\Bikes" );
If neither Vehicles nor Bikes exists, putInFolder creates both, placing the
Bikes folder inside the Vehicles folder.
This method cannot add the first document to a folder that is “Shared,
Personal on first use.”

Example: putInFolder method


This agent puts documents in folders that have names the same as the
values of their Category items.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
DocumentCollection dc =
agentContext.getUnprocessedDocuments();
Database db = agentContext.getCurrentDatabase();
Document doc = dc.getFirstDocument();
while (doc != null) {
String category = doc.getItemValueString("Category");
if (category != null) {
doc.putInFolder(category); }
agentContext.updateProcessedDoc(doc);
doc.save();
doc = dc.getNextDocument(doc); }

1942 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Document class

} catch(Exception e) {
e.printStackTrace();
}
}
}

remove method
Permanently removes a document from a database.

Defined in
Document

Syntax
public boolean remove(boolean force)
throws NotesException

Parameter
boolean force

If true, the document is removed even if another user modifies the


document after your program opens it. If false, the document is not
removed if another user modifies it.

Return value
True if the document is successfully removed.
False if the document is not deleted because another user modified it
and the force parameter is set to false.

Example: remove method


This agent removes all the documents in a folder.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("Folder1");
String subject;
Document doc = view.getFirstDocument();
while (doc != null) {
subject = doc.getItemValueString("Subject");
doc.remove(true);
System.out.println("\"" + subject + "\" removed");

Chapter 10: Java Classes A–Z 1943


Document class

doc = view.getFirstDocument(); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

removeFromFolder method
Removes a document from a folder.

Defined in
Document

Syntax
public void removeFromFolder(String name)
throws NotesException

Parameter
String name

The name of the folder from which to remove the document. The folder
may be personal if the program is running on a workstation. If the
folder is within another folder, specify a path to it, separating folder
names with backslashes, for example:
"Vehicles\\Bikes"

Usage
The method does nothing if the document is not in the folder you specify, or
if the folder you specify does not exist.

Example: removeFromFolder method


This agent removes documents from folders that have names the same as
the values of their Category items.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
Document doc = dc.getFirstDocument();
while (doc != null) {
String category = doc.getItemValueString("Category");

1944 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Document class

if (category != null) {
doc.removeFromFolder(category, true); }
doc.save();
doc = dc.getNextDocument(doc); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

removeItem method
Removes an item from a document.

Defined in
Document

Syntax
public void removeItem(String name)
throws NotesException

Parameter
String name

The name of the item to remove from the document. If more than one
item has name, all items with this name are removed. If there is no item
with name, the method does nothing.

Usage
You can achieve the same result with remove in Item.
To keep the changes to the document, you must call save after removing
the item.

Example: removeItem method


This agent removes an item first putting in its value into another item
(effectively changing the name of the item).
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();

Chapter 10: Java Classes A–Z 1945


Document class

Document doc = dc.getFirstDocument();


while (doc != null) {
if (doc.hasItem("OldName")) {
doc.replaceItemValue("NewItem",
doc.getItemValue("OldItem"));
doc.removeItem("OldItem");
doc.save();
}
doc = dc.getNextDocument(doc);
}
} catch(Exception e) {
e.printStackTrace();
}
}
}

renderToRTItem method
Creates a picture of a document and places it into a rich text item
you specify.

Defined in
Document

Syntax
public boolean renderToRTItem(RichTextItem rtitem)
throws NotesException

Parameter
RichTextItem rtitem

The destination for the picture. Cannot be null.

Return value
boolean

If true, the method is successful. If false, the method is not successful


and the rich text item remains unchanged. This can happen if an input
validation formula fails on the document’s form.

Usage
The picture is created using both the document and its form. Therefore, the
form’s input translation and validation formulas are executed.

1946 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Document class

Example: renderToRTItem method


This agent puts a picture of a document in another document and sends it.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.search("Subject =
\"Test appendItemValue\"");
if (dc.getCount() == 1) {
Document doc = dc.getFirstDocument();
Document memo = db.createDocument();
memo.appendItemValue("Form", "Memo");
memo.appendItemValue("Subject",
"Picture of Test appendItemValue");
RichTextItem rti = memo.createRichTextItem("Body");
doc.renderToRTItem(rti);
memo.send(session.getUserName()); }
} catch(NotesException e) {
System.out.println(e.id + " " + e.text);
e.printStackTrace();
}
}
}

replaceItemValue method
Replaces all items of the specified name with one new item, which is
assigned the specified value. If the document does not contain an item with
the specified name, this method creates a new item and adds it to the
document.

Defined in
Document

Syntax
public Item replaceItemValue(String name, Object value)
throws NotesException

Chapter 10: Java Classes A–Z 1947


Document class

Parameters
String name

String. The name of the item or items you want to replace.


Object value

The value of the new item. The data type of the item depends upon the
data type of value, and does not need to match the data type of the old
item.
Data type of value Resulting Item
String Text
Integer Number
Double Number
DateTime Date-time item
java.util.Vector with String, Integer, Multi-value text, number, or
Double, or DateTime elements date-time item
Item Same data type as the Item

Return value
Item

The new item, which replaces all previous items with the same name.

Usage
To keep the changes, you must call save after calling replaceItemValue.

Example: replaceItemValue method


This agent replaces text, multi-value text, numeric integer, numeric double,
multi-value numeric, and date-time item values.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.search("Subject =
\"Test appendItemValue\"");
if (dc.getCount() == 1) {
Document doc = dc.getFirstDocument();
// Replace text item with one String value
doc.replaceItemValue("Subject",
"Test replaceItemValue");

1948 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Document class

// Replace text item with multiple String values


Vector stringMultiple = new Vector();
stringMultiple.addElement("String four");
stringMultiple.addElement("String five");
stringMultiple.addElement("String six");
doc.replaceItemValue(
"stringMultiple", stringMultiple);
// Replace numeric item with one int value
Integer intObj = new Integer(202);
doc.replaceItemValue("integer", intObj);
// Replace numeric item with one double value
Double doubleObj = new Double(2.02);
doc.replaceItemValue("double", doubleObj);
// Create numeric item with multiple Integer values
Vector integerMultiple = new Vector();
Integer one = new Integer(3);
integerMultiple.addElement(one);
Integer two = new Integer(4);
integerMultiple.addElement(two);
Integer three = new Integer(5);
integerMultiple.addElement(three);
doc.replaceItemValue(
"integerMultiple", integerMultiple);
// Replace time item with one DateTime value
DateTime timenow = session.createDateTime("");
timenow.setNow();
doc.replaceItemValue("dateTime", timenow);
if (doc.save())
System.out.println("Document saved");
else
System.out.println("Something went wrong"); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 1949


Document class

save method
Saves any changes you have made to a document.

Defined in
Document

Syntax
public boolean save()
throws NotesException
public boolean save(boolean force)
throws NotesException
public boolean save(boolean force, boolean makeresponse)
throws NotesException
public boolean save(boolean force, boolean makeresponse,
boolean markread)
throws NotesException

Parameters
boolean force

If true, the document is saved even if someone else edits and saves the
document while the program is running. The last version of the
document that was saved wins; the earlier version is discarded.
If false, and someone else edits the document while the program is
running, the makeresponse argument determines what happens.
boolean makeresponse

If true, the current document becomes a response to the original


document (this is what the replicator does when there’s a replication
conflict). If false, the save is canceled. If the force parameter is true, the
makeresponse parameter has no effect.
boolean markread

If true, the document is marked as read. If false (default), the document


is not marked as unread.

Return Value
True if the document is successfully saved.
False if the document is not saved.

1950 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Document class

Example: save method


This agent saves a document. The agent keeps trying if the document is not
saved because someone else modified it while the program was running.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.search("Subject =
\"Test appendItemValue\"");
if (dc.getCount() == 1) {
Document doc = dc.getFirstDocument();
Integer intObj = new Integer(303);
doc.replaceItemValue("integer", intObj);
do {} while (!doc.save(false, false, true)); }
} catch(NotesException e) {
System.out.println(e.id + " " + e.text);
e.printStackTrace();
}
}
}

send method
Mails a document to the recipients you specify.

Defined in
Document

Syntax
public void send(String recipient)
throws NotesException
public void send(java.util.Vector recipients)
throws NotesException
public void send(boolean attachform, String recipient)
throws NotesException
public void send(boolean attachform, java.util.Vector
recipients)
throws NotesException

Chapter 10: Java Classes A–Z 1951


Document class

Parameters
String recipient

The recipient of the document. See below.


java.util.Vector recipients

Vector of String elements. The recipients of the document, which may


include people, groups, or mail-in databases.
Ignored if the document contains a SendTo item, in which case the
document is mailed to recipients listed in SendTo.
Required if the document does not contain a SendTo item.
boolean attachform

If true, the form is stored and sent along with the document. If false,
it isn’t.

Usage
Two kinds of items can affect the mailing of the document when you
use send:
If the document contains additional recipient items, such as CopyTo or
BlindCopyTo, the documents mailed to those recipients.
If the document contains items to control the routing of mail, such as
DeliveryPriority, DeliveryReport, or ReturnReceipt, they are used when
sending the document.
The SaveMessageOnSend property controls whether the sent document is
saved in the database. If SaveMessageOnSend is true and you attach the
form to the document, the form is saved with the document.
Sending the form increases the size of the document, but insures that the
recipient can see all of the items on the document.
The send method automatically creates an item called $AssistMail on the
sent document. The SentByAgent property uses this item to determine if a
document was mailed by an agent.
If a program runs on a workstation, the mailed document contains the
current user’s name in the From item. If a program runs as an agent on a
server, the mailed document contains the server’s name in the From item.

1952 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Document class

Example: send method and IsSaveMessageOnSend, IsSigned, and


SignerVerifier properties
This agent sends an encrypted, saved, and signed message.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.search("Subject =
\"Test appendItemValue\"");
if (dc.getCount() == 1) {
Document doc = dc.getFirstDocument();
Document memo = db.createDocument();
memo.appendItemValue("Form", "Memo");
memo.appendItemValue
("Subject", "Test - please reply if you get this");
RichTextItem rti = memo.createRichTextItem("Body");
doc.renderToRTItem(rti);
Vector v = new Vector();
v.addElement(session.getUserName());
v.addElement("Kyla Town");
v.addElement("Lakshmi Annavajhala");
v.addElement("Evelyn McKay");
memo.setEncryptOnSend(true);
memo.setSaveMessageOnSend(true);
memo.setSignOnSend(true);
memo.sign();
memo.send(true, v); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 1953


DocumentCollection class

sign method
Signs a document.

Defined in
Document

Syntax
public void sign()
throws NotesException

Usage
If you want the signature to be saved, you must call the Save method after
signing the document.
If the program is running on a server, this method has no effect.

DocumentCollection class
Represents a collection of documents from a database, selected according to
specific criteria.

Syntax
public class DocumentCollection extends NotesBase

Containment
Contained by: AgentContext, Database, View
Contains: Document

Properties
Count through getCount
IsSorted through isSorted
Parent through getParent
Query through getQuery

Methods
addDocument
deleteDocument
FTSearch
getDocument
getFirstDocument

1954 Domino Designer Programming Guide, Volume 3: JavaScript Classes


DocumentCollection class

getLastDocument
getNextDocument
getNthDocument
getPrevDocument
putAllInFolder
removeAll
removeAllFromFolder
stampAll
updateAll

Access
A DocumentCollection represents a subset of all the documents in a
database. The documents in the subset are determined by the method or
property you use to search the database, which can be any of the following:
getAllDocuments in Database
FTSearch in Database
search in Database
getProfileDocCollection in Database
getAllDocumentsByKey in View
getUnprocessedDocuments in AgentContext
unprocessedFTSearch in AgentContext
unprocessedSearch in AgentContext
getResponses property in Document

Usage
DocumentCollection, ViewEntryCollection, and ViewNavigator objects
provide access to documents in a database. Use a DocumentCollection
object if:
You want to act on a specific set of documents that meet certain criteria.
There is no view in the database that contains every document you
need to search.
You do not need to navigate the documents’ response hierarchies.

Chapter 10: Java Classes A–Z 1955


DocumentCollection class

Views are a more efficient means of accessing documents because they are
already indexed by the database itself. However, they do not necessarily
provide access to the documents that you want. ViewEntryCollection and
ViewNavigator provide access to view entries, which contain ViewEntry as
well as Document information. ViewNavigator provides access to
categories and totals as well as documents.

Sorted collections
The documents in a collection are not sorted unless the collection results
from a search. By contrast, documents accessed through
ViewEntryCollection and ViewNavigator are in view order.

Current pointer
A current pointer is maintained for document collections. All navigation
methods set the current pointer to the retrieved document with the
following exceptions. Add and delete methods do not move the current
pointer. The following methods set the current pointer to the first
document: FTSearch, removeAll (remote IIOP only), putAllInFolder,
removeAllFromFolder, and stampAll.

Deletion stubs
A deletion stub is returned for a document deleted after creation of the
collection or for a document to which you do not have read access. Use
isValid in Document to check whether a document is real (true) or a
deletion stub (false).

Example: DocumentCollection class


This agent gets all the documents in a database.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
Document doc = dc.getFirstDocument();
while (doc != null) {
System.out.println(doc.getItemValueString("Subject"));
doc = dc.getNextDocument(); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

1956 Domino Designer Programming Guide, Volume 3: JavaScript Classes


DocumentCollection class

Count property
Read-only. The number of documents in a collection.

Defined in
DocumentCollection

Data type
int

Syntax
public int getCount()
throws NotesException

Example: Count property


This agent gets the number of documents in a database.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
System.out.println
("Database contains " + dc.getCount() + " documents.");
} catch(Exception e) {
e.printStackTrace();
}
}
}

IsSorted property
Read-only. Indicates if the documents in a collection are sorted. A collection
is sorted only when it results from a full-text search.

Defined in
DocumentCollection

Data type
boolean

Chapter 10: Java Classes A–Z 1957


DocumentCollection class

Syntax
public boolean isSorted()
throws NotesException

Legal values
true if the collection is sorted
false if the collection is not sorted

Usage
When a collection is sorted, the documents are sorted by relevance score
with the most relevant document appearing first. A relevance score is a
number assigned to each document that matches a particular full-text
search query. The number is related to the number of matches that were
found in the document.

Example: IsSorted property


This agent demonstrates a function that determines whether a document
collection is sorted.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
printIsSorted(dc);
dc.FTSearch("blue");
printIsSorted(dc);
} catch(Exception e) {
e.printStackTrace();
}
}
void printIsSorted(DocumentCollection dc) {
try {
if (dc.isSorted())
System.out.println("Is sorted");
else
System.out.println("Is not sorted");

} catch(Exception e) {
e.printStackTrace();
}
}
}

1958 Domino Designer Programming Guide, Volume 3: JavaScript Classes


DocumentCollection class

Parent property
Read-only. The database that contains a document collection.

Defined in
DocumentCollection

Data type
Database

Syntax
public Database getParent()
throws NotesException

Usage
This method throws an exception if the parent database is not accessible.

Example: Parent property


This agent demonstrates a function that gets the parent database of a
document collection.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
parentdb(dc);
} catch(Exception e) {
e.printStackTrace();
}
}
public void parentdb(DocumentCollection d) {
try {
Database db = d.getParent();
System.out.println("Parent database is \"" +
db.getTitle() + "\" (" + db.getFileName() + ")");
} catch (Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 1959


DocumentCollection class

Query property
Read-only. The text of the query that produced a document collection if the
collection results from a full-text or other search.

Defined in
DocumentCollection

Data type
String

Syntax
public String getQuery()
throws NotesException

Usage
For collections produced without a search, this property returns an
empty string.

Example: Query property


This agent demonstrates a formula that gets the query for a document
collection.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
printquery(dc);
dc.FTSearch("blue");
printquery(dc);
} catch(Exception e) {
e.printStackTrace();
}
}
public void printquery(DocumentCollection d) {
try {
System.out.println("Search query:");
if (d.getQuery().length() != 0)
System.out.println("\t[ " + d.getQuery() + " ]");
else

1960 Domino Designer Programming Guide, Volume 3: JavaScript Classes


DocumentCollection class

System.out.println("\tNo search query");


} catch (Exception e) {
e.printStackTrace();
}
}
}

addDocument method
Adds a document to a collection.

Defined in
DocumentCollection

Syntax
public void addDocument(Document doc)
throws NotesException
public void addDocument(Document doc, boolean checkDups)
throws NotesException

Parameters
Document doc

The document to be added. Cannot be null.


boolean checkDups

If true, forces a remote (IIOP) add to be made immediately rather than


on the next navigation or other method (such as stampAll) that calls the
server, so that a duplicate exception can be thrown immediately. Has
no effect on local calls.

Usage
This method throws an exception if:
The document is a duplicate of one already in the collection.
The document collection is the result of a multi-database full-text
search.

Example: addDocument method


This agent combines two document collections putting the result in the first
collection.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();

Chapter 10: Java Classes A–Z 1961


DocumentCollection class

AgentContext agentContext = session.getAgentContext();


// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
if (db.isFTIndexed()) db.updateFTIndex(false);
else db.updateFTIndex(true);
DocumentCollection dc1 = db.getAllDocuments();
DocumentCollection dc2 = db.getAllDocuments();
dc1.FTSearch("blue");
dc2.FTSearch("red");
Document doc = dc2.getFirstDocument();
while (doc != null) {
// Make sure it's not already there before adding
if (dc1.getDocument(doc) == null)
dc1.addDocument(doc);
doc = dc2.getNextDocument(); }
doc = dc1.getFirstDocument();
while (doc != null) {
System.out.println(doc.getItemValueString("Subject"));
doc = dc1.getNextDocument(); }
} catch(NotesException e) {
System.out.println(e.id + " " + e.text);
e.printStackTrace();
}
}
}

deleteDocument method
Deletes a document from a collection.

Defined in
DocumentCollection

Syntax
public void deleteDocument(Document doc)
throws NotesException

Parameters
Document doc

The document to be deleted. Cannot be null.

1962 Domino Designer Programming Guide, Volume 3: JavaScript Classes


DocumentCollection class

Usage
This method throws an exception if:
The document is already deleted.
The document cannot be retrieved from this collection.
The document collection is the result of a multi-database full-text
search.

Example: deleteDocument method


This agent subtracts a second document collection from a first collection.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
if (db.isFTIndexed()) db.updateFTIndex(false);
else db.updateFTIndex(true);
DocumentCollection dc1 = db.getAllDocuments();
DocumentCollection dc2 = db.getAllDocuments();
dc1.FTSearch("blue");
dc2.FTSearch("red");
Document doc = dc2.getFirstDocument();
while (doc != null) {
// Make sure it's there before deleting
if (dc1.getDocument(doc) != null)
dc1.deleteDocument(doc);
doc = dc2.getNextDocument(); }
doc = dc1.getFirstDocument();
while (doc != null) {
System.out.println(doc.getItemValueString("Subject"));
doc = dc1.getNextDocument(); }
} catch(NotesException e) {
System.out.println(e.id + " " + e.text);
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 1963


DocumentCollection class

FTSearch method
Conducts a full-text search of all the documents in a database collection,
and reduces the collection to a sorted collection of those documents that
match.

Defined in
DocumentCollection

Syntax
public void FTSearch(String query)
throws NotesException
public void FTSearch(String query, int maxdocs)
throws NotesException

Parameters
String query

The full-text query. See below for the syntax.


int maxdocs

The maximum number of documents you want returned from the


query. Set this parameter to 0 to receive all matching documents.

Usage
This method moves the current pointer to the first document in the
collection.
The collection of documents that match the full-text query are sorted by
relevance with highest relevance first. You can access the relevance score of
each document in the collection using getFTSearchScore Document.
If the database is not full-text indexed, this method works, but less
efficiently. To test for an index, use isFTIndexed. To create an index on a
local database, use updateFTIndex.
This method searches all documents in a document collection. To search all
documents in a database, use FTSearch in Database. To search only
documents found in a particular view, use FTSearch in View or FTSearch in
ViewEntryCollection.

Query syntax
To search for a word or phrase, enter the word or phrase as is, except that
search keywords must be enclosed in quotes. Remember to escape quotes if
you are inside a literal.
Wildcards, operators, and other syntax are permitted. For the complete
syntax rules, see “To use operators to refine a search” in Notes 5 help.

1964 Domino Designer Programming Guide, Volume 3: JavaScript Classes


DocumentCollection class

Example: FTSearch method


This agent locates up 10 documents containing the word “vaccine,” and
prints their subjects and relevance scores.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
if (db.isFTIndexed()) db.updateFTIndex(false);
else db.updateFTIndex(true);
DocumentCollection dc = db.getAllDocuments();
dc.FTSearch("vaccine", 10);
Document doc = dc.getFirstDocument();
while (doc != null) {
System.out.println(doc.getItemValueString("Subject"));
System.out.println("\tRelevance score: " +
doc.getFTSearchScore());
doc = dc.getNextDocument(); }
} catch(NotesException e) {
System.out.println(e.id + " " + e.text);
e.printStackTrace();
}
}
}

getDocument method
Gets a specified document in a collection.

Defined in
DocumentCollection

Syntax
public Document getDocument(Document doc)
throws NotesException

Parameters
Document doc

The document to be retrieved. Cannot be null.

Chapter 10: Java Classes A–Z 1965


DocumentCollection class

Return value
Document

The specified document. If the specified document is not in the


collection, returns null.

Usage
This method gets a document in a document collection that is the same as a
reference document that does not necessarily come from the collection (for
example, a document retrieved from another collection). If the reference
document is not in the collection, you get a null return.
This method throws an exception if the document collection is the result of
a multi-database full-text search.

Example: getDocument method


This agent gets all the documents in one collection noting which ones are
also in another collection.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
if (db.isFTIndexed()) db.updateFTIndex(false);
else db.updateFTIndex(true);
DocumentCollection dc1 = db.getAllDocuments();
DocumentCollection dc2 = db.getAllDocuments();
dc2.FTSearch("blue");
String izz = "";
Document doc = dc1.getFirstDocument();
while (doc != null) {
// Make sure dc2 is not empty before doing getDocument
if (dc2.getCount() != 0 && dc2.getDocument(doc)
!= null)
izz = " is blue";
else izz = " is not blue";
System.out.println
(doc.getItemValueString("Subject") + izz);
doc = dc1.getNextDocument(); }
} catch(NotesException e) {
System.out.println(e.id + " " + e.text);
e.printStackTrace();
}
}
}

1966 Domino Designer Programming Guide, Volume 3: JavaScript Classes


DocumentCollection class

getFirstDocument method
Gets the first document in a collection.

Defined in
DocumentCollection

Syntax
public Document getFirstDocument()
throws NotesException

Return value
Document

The first document in the collection. If there are no documents in the


collection, returns null.

getLastDocument method
Gets the last document in a collection.

Defined in
DocumentCollection

Syntax
public Document getLastDocument()
throws NotesException

Return value
Document

The last document in the collection. If there are no documents in the


collection, returns null.

getNextDocument method
Gets the document immediately following the current document or a
specified document in a collection.

Defined in
DocumentCollection

Chapter 10: Java Classes A–Z 1967


DocumentCollection class

Syntax
public Document getNextDocument()
throws NotesException
public Document getNextDocument(Document doc)
throws NotesException

Parameter
Document doc

Any document in the collection. Cannot be null.

Return value
Document

If no parameter, the document following the current document. If a


parameter, the document following the specified document. If there is
no next document, returns null.

Usage
In remote (IIOP) operations, getNextDocument(Document doc) invalidates
the cache and is therefore discouraged.
The preferred loop structure is getFirstDocument() followed by
getNextDocument() until it returns null. For performance reasons, you
should avoid using getNthDocument(int n) and
getNextDocument(Document doc) in a loop.

Examples: getFirstDocument and getNextDocument methods


1. This agent gets all the documents in a database, demonstrating the
preferred loop structure.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
Document doc = dc.getFirstDocument();
while (doc != null) {
System.out.println(doc.getItemValueString
("Subject"));
doc = dc.getNextDocument(); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

1968 Domino Designer Programming Guide, Volume 3: JavaScript Classes


DocumentCollection class

2. This agent gets the second document in a document collection by using


the first document as a parameter to getNextDocument.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
if (dc.getCount() > 1) {
Document doc =
dc.getNextDocument(dc.getFirstDocument());
System.out.println("Doc # 2: " +
doc.getItemValueString("Subject")); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

getNthDocument method
Given a position number, returns the document at that position in a
collection.

Defined in
DocumentCollection

Syntax
public Document getNthDocument(int n)
throws NotesException

Parameter
int n

Integer. A number indicating the document to return. Use 1 to indicate


the first document in the collection, 2 to indicate the second document,
and so on.

Return value
Document

The document in the nth position in the collection. If there is no


document at the specified position, returns null.

Chapter 10: Java Classes A–Z 1969


DocumentCollection class

Usage
Collections are renumbered when deletions occur so that the positions of
documents after the deleted document change.
Using getNthDocument in conjunction with getCount to iterate through a
loop is strongly discouraged for performance reasons. See
getNextDocument and getPrevDocument for the preferred loop structures.

Example: GetNthDocument method


This agent demonstrates a function that gets a document in a document
collection specified by number.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
int N = 3;
printDocument(dc, N);
} catch(Exception e) {
e.printStackTrace();
}
}
void printDocument(DocumentCollection dc, int n) {
try {
if (n < 0 || n > dc.getCount())
System.out.println("N out of range");
else
System.out.println("Doc #" + n + ": " +
dc.getNthDocument(n).getItemValueString("Subject"));

} catch(Exception e) {
e.printStackTrace();
}
}
}

1970 Domino Designer Programming Guide, Volume 3: JavaScript Classes


DocumentCollection class

getPrevDocument method
Gets the document immediately preceding the current document or a
specified document in a collection.

Defined in
DocumentCollection

Syntax
public Document getPrevDocument()
throws NotesException
public Document getPrevDocument(Document doc)
throws NotesException

Parameter
Document doc

Any document in the collection. Cannot be null.

Return value
Document

If no parameter, the document preceding the current document. If a


parameter, the document preceding the specified document. If there is
no previous document, returns null.

Usage
In remote (IIOP) operations, getPrevDocument(Document doc) invalidates
the cache and is therefore discouraged.
The preferred loop structure is getLastDocument() followed by
getPrevDocument() until it returns null. For performance reasons, you
should avoid using getNthDocument(int n) and
getPrevDocument(Document doc) in a loop.

Examples: getLastDocument and getPrevDocument methods


1. This agent gets all the documents in a document collection in reverse
order, demonstrating the preferred loop structure.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();

Chapter 10: Java Classes A–Z 1971


DocumentCollection class

Document doc = dc.getLastDocument();


while (doc != null) {
System.out.println(doc.getItemValueString
("Subject"));
doc = dc.getPrevDocument(); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

2. This agent gets the next to the last document in a document collection
by using the last document as a parameter to getPrevDocument.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
if (dc.getCount() > 1) {
Document doc =
dc.getPrevDocument(dc.getLastDocument());
System.out.println("Doc # n-1: " +
doc.getItemValueString("Subject")); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

putAllInFolder method
Adds all the documents in the collection to the specified folder. If the folder
does not exist in the document’s database, it is created.

Defined in
DocumentCollection

1972 Domino Designer Programming Guide, Volume 3: JavaScript Classes


DocumentCollection class

Syntax
public void putAllInFolder(String folderName)
throws NotesException
public void putAllInFolder(String folderName, boolean
createonfail)
throws NotesException

Parameter
String folderName

The name of the folder in which to place the documents. The folder may
be personal if the script is running on the workstation. If the folder is
within another folder, specify a path to it, separating folder names with
backward slashes, for example, “Vehicles\\Bikes”.
boolean createonfail

If true (default), creates the folder if it does not exist. If false, throws an
exception if the folder does not exist.

Usage
For remote (IIOP) operations only, this method moves the current pointer to
the first document in the collection.
If a document is already inside the folder you specify, putAllInFolder does
nothing for that document.

Example: putAllInFolder method


This agent puts all the documents returned by a full-text search in a folder.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
if (db.isFTIndexed()) db.updateFTIndex(false);
else db.updateFTIndex(true);
DocumentCollection dc = db.getAllDocuments();
dc.FTSearch("blue");
dc.putAllInFolder("Blue", false);
} catch(NotesException e) {
System.out.println(e.id + " " + e.text);
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 1973


DocumentCollection class

removeAll method
Permanently removes the documents in a collection from a database.

Defined in
DocumentCollection

Syntax
public void removeAll(boolean force)
throws NotesException

Parameters
boolean force

If true, a document is removed even if another user modifies the


document after it is retrieved. If false, a document is not removed if
another user modifies it first.

Usage
This method moves the current pointer to the first document in the
collection.
All documents removed from the database as a result of this operation are
also removed from the collection.

Example: removeAll method


This agent removes all the documents returned by a full-text search in
a folder.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
if (db.isFTIndexed()) db.updateFTIndex(false);
else db.updateFTIndex(true);
DocumentCollection dc = db.getAllDocuments();
dc.FTSearch("blue");
if (dc.getCount() > 0) {
System.out.println(dc.getCount() +
" \"blue\" documents being removed from
database ...");
dc.removeAll(true); }
} catch(NotesException e) {
System.out.println(e.id + " " + e.text);
e.printStackTrace();
}
}
}

1974 Domino Designer Programming Guide, Volume 3: JavaScript Classes


DocumentCollection class

removeAllFromFolder method
Removes all documents in the collection from the specified folder.

Defined in
DocumentCollection

Syntax
public void removeAllFromFolder(String foldername)
throws NotesException

Parameters
String foldername
The name of the folder from which to remove the document. The folder
may be personal if the script is running on a workstation. If the folder is
within another folder, specify a path to it, separating folder names with
backward slashes, for example, “Vehicles\\Bikes”.
Usage
This method moves the current pointer to the first document in the
collection.
The method does nothing for documents not in the folder you specify. This
method does nothing if the folder you specify does not exist.

Example: removeAllFromFolder method


This agent removes from a folder all the documents returned by a full-text
search in a folder.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
if (db.isFTIndexed()) db.updateFTIndex(false);
else db.updateFTIndex(true);
DocumentCollection dc = db.getAllDocuments();
dc.FTSearch("blue");
dc.removeAllFromFolder("Blue");
} catch(NotesException e) {
System.out.println(e.id + " " + e.text);
e.printStackTrace();
}
}
}

stampAll method
Replaces the value of a specified item in all documents in a collection.

Chapter 10: Java Classes A–Z 1975


DocumentCollection class

Defined in
DocumentCollection

Syntax
public void stampAll(String itemname, Object value)
throws NotesException

Parameters
String itemname

The name of the item.


Object value

A value appropriate for the item type. See replaceItemValue.

Usage
This method moves the current pointer to the first document in the
collection.
If the item does not exist, it is created.
The item values are immediately written to the server documents. You do
not have to use the save method of Document after stampAll. However, any
documents modified by your script must be saved before calling stampAll.
This method does not modify existing Document objects. Documents must
be retrieved again to see the changes.

Example: StampAll method


This agent replaces the value of an item in documents found through a
full-text search.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
if (db.isFTIndexed()) db.updateFTIndex(false);
else db.updateFTIndex(true);
DocumentCollection dc = db.getAllDocuments();
dc.FTSearch("red");
if (dc.getCount() > 0) {

1976 Domino Designer Programming Guide, Volume 3: JavaScript Classes


DocumentCollection class

System.out.println(dc.getCount() +
" \"red\" documents being stamped ...");
dc.stampAll("Color", "red"); }
} catch(NotesException e) {
System.out.println(e.id + " " + e.text);
e.printStackTrace();
}
}
}

updateAll method
Marks all documents in a collection as processed by an agent.
Note Does not apply to remote calls.

Defined in
DocumentCollection

Syntax
public void updateAll()
throws NotesException

Usage
See updateProcessedDoc in AgentContext for a description of the update
process.

Example: updateAll method


This is an example of an agent that runs on, “All new and modified
documents since last run.” The agent processes the documents returned by
getUnprocessedDocuments and marks them as updated.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
DocumentCollection dc =
agentContext.getUnprocessedDocuments();
Document doc = dc.getFirstDocument();
while (doc != null) {
System.out.println(doc.getItemValueString("Subject"));
doc = dc.getNextDocument(); }
dc.updateAll();

Chapter 10: Java Classes A–Z 1977


DocumentCollection class

} catch(NotesException e) {
System.out.println(e.id + " " + e.text);
e.printStackTrace();
}
}
}

EmbeddedObject class
Represents any one of the following:
An embedded object
An object link
A file attachment
Note EmbeddedObject is not supported under OS/2, under UNIX, and on
the Macintosh.

Syntax
public class EmbeddedObject extends Base

Containment
Contained by: Document and RichTextItem

Properties
ClassName through getClassName
FileSize through getFileSize
Name through getName
Object through getObject
Parent through getParent
Source through getSource
Type through getType
Verbs through getVerbs

Methods
activate
doVerb
extractFile
remove

1978 Domino Designer Programming Guide, Volume 3: JavaScript Classes


EmbeddedObject class

Creation
To create a new object, object link, or file attachment, use embedObject in
RichTextItem.

Access
To access an existing object, object link, or file attachment:
To access an object, object link, or attachment when you know its name
and the rich text item that contains it, use getEmbeddedObject in
RichTextItem.
To access all the objects, object links, and attachments in a particular
rich text item, use getEmbeddedObjects in RichTextItem.
To access the objects and object links in a particular document,
including those that are not contained within a particular rich text item,
use getEmbeddedObjects in Document. This property does not return
file attachments or objects and object links created in Notes Release 3.

Example: EmbeddedObject class and ClassName, FileSize, Name,


Object, Parent, Source, Type, and Verbs properties
The agent gets the properties for all the embedded objects in all the “Body”
items.
import lotus.domino.*;
import java.util.Vector;
import java.util.Enumeration;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
Document doc = dc.getFirstDocument();
while (doc != null) {
RichTextItem body =
(RichTextItem)
doc.getFirstItem("Body");
System.out.println(doc.getItemValueString("Subject"));
Vector v = body.getEmbeddedObjects();
Enumeration e = v.elements();
while (e.hasMoreElements()) {
EmbeddedObject eo = (EmbeddedObject)e.nextElement();
System.out.println("\t" + eo.getName());
String type = null;
switch (eo.getType()) {
case EmbeddedObject.EMBED_ATTACHMENT :
type = "file attachment"; break;

Chapter 10: Java Classes A–Z 1979


EmbeddedObject class

case EmbeddedObject.EMBED_OBJECT :
type = "embedded object"; break;
case EmbeddedObject.EMBED_OBJECTLINK :
type = "object link";
}
System.out.println("\t\tType: " + type);
if (type.equals("embedded object"))
System.out.println("\t\tVerbs: " + eo.getVerbs());
System.out.println("\t\tSource: " + eo.getSource());
if (!type.equals("file attachment"))
System.out.println("\t\tClass name: " +
eo.getClassName());
if (type.equals("file attachment"))
System.out.println("\t\tSize: " + eo.getFileSize()
+
" bytes");
System.out.println("\t\tParent doc: " +
eo.getParent().getParent().getItemValueString(
"Subject"));
}
doc = dc.getNextDocument();
}
} catch(NotesException e) {
System.out.println(e.id + " " + e.text);
e.printStackTrace();
}
}
}

ClassName property
Read-only. The name of the application that created an object.

Defined in
EmbeddedObject

Data type
String

Syntax
public String getClassName()
throws NotesException

Usage
For file attachments, this property returns null.

1980 Domino Designer Programming Guide, Volume 3: JavaScript Classes


EmbeddedObject class

FileSize property
Read-only. The size of a file attachment, in bytes.

Defined in
EmbeddedObject

Data type
int

Syntax
public int getFileSize()
throws NotesException

Usage
Returns 0 for embedded objects and links.

Name property
Read-only. The name used to reference an object, object link, or file
attachment.

Defined in
EmbeddedObject

Data type
Object of type java.lang.String

Syntax
public String getName()
throws NotesException

Usage
If an object or object link does not have a name, this property returns null.
If an object or object link was created using the embedObject in
RichTextItem, this property returns the name parameter that was used with
getEmbedObject.
If the embedded object or object link was created using the user interface,
this property returns the name of the object as it appears in the user
interface.

Chapter 10: Java Classes A–Z 1981


EmbeddedObject class

Object property
Read-only. If an embedded object has been loaded into memory, returns the
OLE handle (IUnknown or IDispatch handle). If the OLE object supports
OLE Automation, you can invoke the methods and properties of the object
using the handle.

Defined in
EmbeddedObject

Data type
int

Syntax
public int getObject()
throws NotesException

Usage
This property may or may not return a valid OLE handle for object links,
depending upon the application used to create the object link.

Parent property
Read-only. The rich text item that holds an object.

Defined in
EmbeddedObject

Data type
RichTextItem

Syntax
public RichTextItem getParent()
throws NotesException

Source property
Read-only.
For an object or object link, returns the internal name for the source
document. For a file attachment, returns the file name of the original file.

Defined in
EmbeddedObject

1982 Domino Designer Programming Guide, Volume 3: JavaScript Classes


EmbeddedObject class

Data type
Object of type java.lang.String

Syntax
public String getSource()
throws NotesException

Type property
Read-only. Indicates whether an embedded object is an object, an object
link, or a file attachment.

Defined in
EmbeddedObject

Data type
int

Syntax
public int getType()
throws NotesException

Return Values
EmbeddedObject.EMBED_ATTACHMENT
EmbeddedObject.EMBED_OBJECT
EmbeddedObject.EMBED_OBJECTLINK

Verbs property
Read-only. The verbs that an object supports, if the object is an OLE/2
embedded object.

Defined in
EmbeddedObject

Data type
java.util.Vector; elements are String

Syntax
public java.util.Vector getVerbs()
throws NotesException

Usage
Throws an exception if not invoked from an OLE/2 embedded object.

Chapter 10: Java Classes A–Z 1983


EmbeddedObject class

activate method
Causes an embedded object or object link to be loaded by OLE.

Defined in
EmbeddedObject

Syntax
public int activate(boolean show)
throws NotesException

Parameter
boolean show

If true, the OLE server application displays its user interface. If false,
the server application hides its user interface.

Return value
int
The OLE handle to the object. Returns null if the embedded object or
object link does not support OLE automation.

Usage
Agents running on a server must set the show parameter to false.
This method throws an exception if you invoke it on a EmbeddedObject
that is a file attachment.
This method may or may not return a valid OLE handle for object links,
depending upon the application used to create the object link.

doVerb method
Executes a verb in an embedded object.

Defined in
EmbeddedObject

Syntax
public void doVerb(String verb)
throws NotesException

Parameter
String verb

The name of one of the object’s verbs.

1984 Domino Designer Programming Guide, Volume 3: JavaScript Classes


EmbeddedObject class

extractFile method
Writes a file attachment to storage.

Defined in
EmbeddedObject

Syntax
public void extractFile(String path)
throws NotesException

Parameter
String path

The path and file name where you want to store the extracted file.

Usage
For embedded objects and object links, this method throws an exception.

Example: extractFile and remove methods


This agent extracts all the file attachments in all the “Body” items of a
database, then removes the attachments.
import lotus.domino.*;
import java.util.Vector;
import java.util.Enumeration;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
Document doc = dc.getFirstDocument();
boolean saveFlag = false;
while (doc != null) {
RichTextItem body =
(RichTextItem)doc.getFirstItem("Body");
System.out.println(doc.getItemValueString("Subject"));
Vector v = body.getEmbeddedObjects();
Enumeration e = v.elements();
while (e.hasMoreElements()) {
EmbeddedObject eo = (EmbeddedObject)e.nextElement();
if (eo.getType() == EmbeddedObject.EMBED_ATTACHMENT)
{
eo.extractFile("c:\\extracts\\" + eo.getSource());
eo.remove();

Chapter 10: Java Classes A–Z 1985


Form class

saveFlag = true;
}
}
if (saveFlag) {
doc.save(true, true);
saveFlag = false;
}
doc = dc.getNextDocument();
}
} catch(NotesException e) {
System.out.println(e.id + " " + e.text);
e.printStackTrace();
}
}
}

remove method
Removes an object, object link, or file attachment.

Defined in
EmbeddedObject

Syntax
public void remove()
throws NotesException

Usage
After calling remove, you must call save in Document to keep the change.

Form class
Represents a form in a database.

Syntax
public class Form extends Base

Containment
Contained by: Database

Properties
Aliases through getAliases
Fields through getFields
FormUsers through getFormUsers and setFormUsers

1986 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Form class

IsProtectReaders through isProtectReaders and setProtectReaders


IsProtectUsers through isProtectUsers and setProtectUsers
IsSubForm through isSubForm
Name through getName
Parent through getParent
Readers through getReaders and setReaders

Methods
remove

Access
There are two ways to access a form:
To get all the forms in a database, use Forms in Database.
To get a form by its name, use getForm in Database.
You can’t get access to private forms belonging to other people.

Example: Form class


This agent prints the properties of all the forms in the current database.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Vector forms = db.getForms();
System.out.println
("Forms in \"" + db.getTitle() + "\":");
for (int i = 0; i < forms.size(); i++) {
Form form = (Form)forms.elementAt(i);
System.out.println
("\nForm name : " + form.getName());
Vector alias = form.getAliases();
if (alias.size() != 0) {
System.out.println
("\tAlias\t: " + alias.elementAt(0));
for (int j = 1; j < alias.size(); j++)
System.out.println
("\t \" \"\t: " + alias.elementAt(j)); }
System.out.println
("\tProtect Readers\t: " + form.isProtectReaders());

Chapter 10: Java Classes A–Z 1987


Form class

System.out.println
("\tProtect Users\t: " + form.isProtectUsers());
System.out.println
("\tSub Form \t: " + form.isSubForm());
Vector users = form.getFormUsers();
if (users.size() != 0) {
System.out.println
("\tForm users\t: " + users.elementAt(0));
for (int j = 1; j < users.size();j++)
System.out.println
("\t \" \" \t: " + users.elementAt(j)); }
Vector readers = form.getReaders();
if (readers.size() != 0) {
System.out.println
("\tForm Readers\t: " + readers.elementAt(0));
for (int j = 1; j < readers.size(); j++)
System.out.println
("\t \" \" \t: " + readers.elementAt(j)); }
Vector fields = form.getFields();
if (fields.size() != 0) {
System.out.println
("\tFields \t: " + fields.elementAt(0));
for (int j = 1; j < fields.size(); j++)
System.out.println
("\t \"\" \t: " + fields.elementAt(j)); } }
} catch(Exception e) {
e.printStackTrace();
}
}
}

Aliases property
Read-only. The aliases of a form.

Defined in
Form

Data type
Vector; elements are String

Syntax
public java.util.Vector getAliases()
throws NotesException

1988 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Form class

Usage
This property returns all but the first in the list of all the form’s names. The
Name property returns the first name in the list.

Example: Aliases property


This agent prints all the aliases for the form specified as the agent comment.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
Database db = agentContext.getCurrentDatabase();
Form form = db.getForm(agent.getComment());
Vector alias = form.getAliases();
if (alias.size() != 0) {
System.out.println
("Aliases for " + agent.getComment());
for (int j=0; j<alias.size(); j++)
System.out.println
(" " + alias.elementAt(j)); }
else
System.out.println
("No aliases for " + agent.getComment());
} catch(Exception e) {
e.printStackTrace();
}
}
}

Fields property
Read-only. The names of all the fields of a form.

Defined in
Form

Data type
Vector; elements are String

Chapter 10: Java Classes A–Z 1989


Form class

Syntax
public java.util.Vector getFields()
throws NotesException

Example: Fields property


This agent prints the names of all the fields in the form specified as the
agent comment.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
Database db = agentContext.getCurrentDatabase();
Form form = db.getForm(agent.getComment());
Vector fields = form.getFields();
if (fields.size() != 0) {
System.out.println
("Fields for " + agent.getComment());
for (int j=0; j<fields.size(); j++)
System.out.println
(" " + fields.elementAt(j)); }
else
System.out.println
("No fields for " + agent.getComment());
} catch(Exception e) {
e.printStackTrace();
}
}
}

FormUsers property
Read-write. The contents of the $FormUsers field.

Defined in
Form

Data type
Vector; elements are String

1990 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Form class

Syntax
public java.util.Vector getFormUsers()
throws NotesException
public void setFormUsers(java.util.Vector users)
throws NotesException

Example: FormUsers property


This agent prints the contents of $FormUsers for the form specified as the
agent comment, then adds the current user’s name.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
Database db = agentContext.getCurrentDatabase();
Form form = db.getForm(agent.getComment());
Vector users = form.getFormUsers();
if (users.size() != 0) {
System.out.println
("$FormUsers for " + form.getName());
for (int j=0; j<users.size(); j++)
System.out.println
(" " + users.elementAt(j)); }
else
System.out.println
("No $FormUsers for " + form.getName());
users.addElement(session.getUserName());
form.setFormUsers(users);
System.out.println
(session.getUserName() + " added");
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 1991


Form class

IsProtectReaders property
Read-write. Protects $Readers items from being overwritten by replication.

Defined in
Form

Data type
boolean

Syntax
public boolean isProtectReaders()
throws NotesException
public void setProtectReaders(boolean flag)
throws NotesException

Legal values
true to protect $Readers
false to not protect $Readers

Example: IsProtectReaders property


This agent toggles protection for $Readers in the form specified as the
agent comment.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
Database db = agentContext.getCurrentDatabase();
Form form = db.getForm(agent.getComment());
if (form.isProtectReaders()) {
form.setProtectReaders(false);
System.out.println
("Protect readers cleared for " + form.getName()); }
else {
form.setProtectReaders(true);
System.out.println
("Protect readers set for " + form.getName()); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

1992 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Form class

IsProtectUsers property
Read-write. Protects $FormUsers items from being overwritten by
replication.

Defined in
Form

Data type
boolean

Syntax
public boolean isProtectUsers()
throws NotesException
public void setProtectUsers(boolean flag)
throws NotesException

Legal values
true to protect $FormUsers
false to not protect $FormUsers

Example: IsProtectUsers property


This agent toggles protection for $FormUsers in the form specified as the
agent comment.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
Database db = agentContext.getCurrentDatabase();
Form form = db.getForm(agent.getComment());
if (form.isProtectUsers()) {
form.setProtectUsers(false);
System.out.println
("Protect users cleared for " + form.getName()); }
else {
form.setProtectUsers(true);
System.out.println
("Protect users set for " + form.getName()); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 1993


Form class

IsSubForm property
Read-only. Indicates if a form is a subform.

Defined in
Form

Data type
boolean

Syntax
public boolean isSubForm()
throws NotesException

Legal values
true if the form is a subform
false if the form is not a subform

Example: IsSubForm property


This agent prints the names of all the subforms in the current database.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Vector forms = db.getForms();
boolean gotOne = false;
System.out.println
("Subforms in \"" + db.getTitle() + "\":");
for (int i=0; i<forms.size(); i++) {
Form form = (Form)forms.elementAt(i);
if (form.isSubForm()) {
System.out.println
(" " + form.getName());
if (!gotOne) gotOne = true; }}
if (!gotOne)
System.out.println(" No subforms");
} catch(Exception e) {
e.printStackTrace();
}
}
}

1994 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Form class

Name property
Read-only. The name of a form.

Defined in
Form

Data type
String

Syntax
public String getName()
throws NotesException

Usage
This property returns the first name associated with a form. Use the Aliases
property to return any additional names.

Example: Name property


This agent prints the names of all the forms in the current database.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Vector forms = db.getForms();
System.out.println
("\"" + db.getTitle() +
"\" has " + forms.size() + " forms:");
for (int i=0; i<forms.size(); i++) {
Form form = (Form)forms.elementAt(i);
System.out.println
(" " + form.getName()); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 1995


Form class

Parent property
Read-write. The database that contains a form.

Defined in
Form

Data type
Database

Syntax
public Database getParent()
throws NotesException

Readers property
Read-write. The contents of the $Readers field.

Defined in
Form

Data type
java.util.Vector; elements are String

Syntax
public java.util.Vector getReaders()
throws NotesException
public void setReaders(java.util.Vector readers)
throws NotesException

Example: Readers property


This agent prints the contents of $Readers for the form specified as the
agent comment, then adds the current user’s name.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
Database db = agentContext.getCurrentDatabase();
Form form = db.getForm(agent.getComment());
Vector readers = form.getReaders();
if (readers.size() != 0) {
System.out.println

1996 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Form class

("$Readers for " + form.getName());


for (int j=0; j<readers.size(); j++)
System.out.println
(" " + readers.elementAt(j)); }
else
System.out.println
("No $Readers for " + form.getName());
readers.addElement(session.getUserName());
form.setReaders(readers);
System.out.println
(session.getUserName() + " added");
} catch(Exception e) {
e.printStackTrace();
}
}
}

remove method
Permanently deletes a form from a database.

Defined in
Form

Syntax
public void remove()
throws NotesException

Example: remove method


This agent removes the form specified by agent comment from the current
database.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
Database db = agentContext.getCurrentDatabase();
if (agent.getComment() != null) {
Form form = db.getForm(agent.getComment());
form.remove();
System.out.println
(agent.getComment() + " removed from database"); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 1997


International class

International class
Represents the international settings in the operating environment, for
example, the Regional Settings in the Windows Control Panel. When
settings change in the operating environment, Notes recognizes the new
settings immediately. For remote (IIOP) operations, these settings represent
the session’s server.

Syntax
public class International extends Base

Containment
Contained by: Session

Properties
AMString through getAMString
CurrencyDigits through getCurrencyDigits
CurrencySymbol through getCurrencySymbol
DateSep through getDateSep
DecimalSep through getDecimalSep
IsCurrencySpace through isCurrencySpace
IsCurrencySuffix through isCurrencySuffix
IsCurrencyZero through isCurrencyZero
IsDateDMY through isDateDMY
IsDateMDY through isDateMDY
IsDateYMD through isDateYMD
IsDST through isDST
IsTime24Hour through isTime24Hour
Parent through getParent
PMString through getPMString
ThousandsSep through getThousandsSep
TimeSep through getTimeSep

1998 Domino Designer Programming Guide, Volume 3: JavaScript Classes


International class

TimeZone through getTimeZone


Today through getToday
Tomorrow through getTomorrow
Yesterday through getYesterday

Access
Access an International object for the current session through
getInternational in Session.

Example: International class


This agent examines three international settings and displays a setting’s
value if it deviates from what the agent considers standard.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
boolean except = false;
International inat = session.getInternational();
if (!inat.getCurrencySymbol().equals("$")) {
System.out.println("Currency symbol is " +
inat.getCurrencySymbol());
except = true; }
if (!inat.getDecimalSep().equals(".")) {
System.out.println("Decimal separator is " +
inat.getDecimalSep());
except = true; }
if (inat.isTime24Hour()) {
System.out.println("Time is 24-hour");
except = true; }
if (!except) {
System.out.println("No exceptions"); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 1999


International class

AMString property
Read-only. The string that denotes AM time, for example, “AM” in English.

Defined in
International

Data type
String

Syntax
public String getAMString()
throws NotesException

Example: AMString, isDST, isTime24Hour, PMString, TimeSep, and


TimeZone properties
This agent displays international time settings: 24-hour or 12-hour; for
12-hour, the AM and PM strings; the hour-minute-second separator; and
the time zone.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
International inat = session.getInternational();
if (inat.isTime24Hour())
System.out.println("Time format is 24-hour");
else {
System.out.println("Time format is 12-hour");
System.out.println("AM notation is \"" +
inat.getAMString() + "\"");
System.out.println("PM notation is \"" +
inat.getPMString() + "\""); }
System.out.println("Time separator is \"" +
inat.getTimeSep() + "\"");
System.out.println("Time zone is " +
inat.getTimeZone());
if (inat.isDST())
System.out.println("Time reflects daylight-saving");

2000 Domino Designer Programming Guide, Volume 3: JavaScript Classes


International class

else
System.out.println(
"Time does not reflect daylight-saving");
} catch(Exception e) {
e.printStackTrace();
}
}
}

CurrencyDigits property
Read-only. Indicates the number of decimal digits for number format.

Defined in
International

Data type
int

Syntax
public int getCurrencyDigits()
throws NotesException

CurrencySymbol property
Read-only. The symbol that indicates a number is currency, for example,
the dollar sign.

Defined in
International

Data type
Object of type java.lang.String

Syntax
public String getCurrencySymbol()
throws NotesException

Chapter 10: Java Classes A–Z 2001


International class

Example: CurrencySymbol, IsCurrencySpace, and IsCurrencySuffix


properties
The following agent displays the currency international settings: the
currency symbol; whether a space is between the currency symbol and the
number; whether the currency symbol follows the number.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
International inat = session.getInternational();
System.out.println("Currency symbol is \"" +
inat.getCurrencySymbol() + "\"");
if (inat.isCurrencySpace())
System.out.println
("Space between currency symbol and number");
else
System.out.println
("No space between currency symbol and number");
if (inat.isCurrencySuffix())
System.out.println
("Currency symbol follows number");
else
System.out.println
("Currency symbol does not follow number");
} catch(Exception e) {
e.printStackTrace();
}
}
}

DateSep property
Read-only. The character used to separate months, days, and years, for
example, the slash.

Defined in
International

Data type
String

2002 Domino Designer Programming Guide, Volume 3: JavaScript Classes


International class

Syntax
public String getDateSep()
throws NotesException

Example: DateSep, isDateDMY, isDateMDY, isDateYMD, Today,


Tomorrow, and Yesterday properties
This agent displays the date international settings: whether the date format
is DMY, MDY, or YMD; the month-day-year separator; the keywords for
yesterday, today, and tomorrow.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
International inat = session.getInternational();
if (inat.isDateDMY())
System.out.println
("Format of date is \"DMY\"");
if (inat.isDateMDY())
System.out.println
("Format of date is \"MDY\"");
if (inat.isDateYMD())
System.out.println
("Format of date is \"YMD\"");
System.out.println
("Date separator is \"" + inat.getDateSep() + "\"");
System.out.println
("Text of date keywords: " +
inat.getYesterday() + ", " +
inat.getToday() + ", " +
inat.getTomorrow());
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 2003


International class

DecimalSep property
Read-only. The decimal separator for number format, for example, the
decimal point.

Defined in
International

Data type
String

Syntax
public String getDecimalSep()
throws NotesException

Example: DecimalSep, CurrencyDigits, isCurrencyZero, and


ThousandsSep properties
This agent displays the decimal international settings: the number of
decimal (fraction) digits; the decimal separator (between the whole and
fraction parts); the 1000s separator; and whether a zero precedes the
decimal point if the number is a fraction (no whole part).
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
International inat = session.getInternational();
System.out.println
("Number of decimal digits: " +
inat.getCurrencyDigits());
System.out.println
("Decimal separator: \"" +
inat.getDecimalSep() + "\"");
System.out.println
("1000s separator: \"" + inat.getThousandsSep() + "\"");
if (inat.isCurrencyZero())
System.out.println("Leading zero");
else
System.out.println("No leading zero");
} catch(Exception e) {
e.printStackTrace();
}
}
}

2004 Domino Designer Programming Guide, Volume 3: JavaScript Classes


International class

IsCurrencySpace property
Read-only. Indicates if the currency format has a space between the
currency symbol and the number.

Defined in
International

Data type
boolean

Syntax
public boolean isCurrencySpace()
throws NotesException

Legal values
true if the currency format has a space between the currency symbol
and the number
false if the currency format does not have a space between the currency
symbol and the number

Usage
Under UNIX, this property is derived from the language installed on the
machine as indicated by the LANG environment variable.

IsCurrencySuffix property
Read-only. Indicates if the currency symbol follows the number in the
currency format.

Defined in
International

Data type
boolean

Syntax
public boolean isCurrencySuffix()
throws NotesException

Legal values
true if the currency symbol follows the number
false if the currency symbol precedes the number

Chapter 10: Java Classes A–Z 2005


International class

IsCurrencyZero property
Read-only. Indicates if fractions have a zero before the decimal point in
number format.

Defined in
International

Data type
boolean

Syntax
public boolean isCurrencyZero()
throws NotesException

Legal values
true if fractions have a zero before the decimal point
false if fractions do not have a zero before the decimal point

Usage
Under UNIX, this property is meaningless.

IsDateDMY property
Read-only. Indicates if the order of the date format is day-month-year.

Defined in
International

Data type
boolean

Syntax
public boolean isDateDMY()
throws NotesException

Legal values
true if the order of the date format is day-month-year
false if the order of the date format is not day-month-year

2006 Domino Designer Programming Guide, Volume 3: JavaScript Classes


International class

IsDateMDY property
Read-only. Indicates if the order of the date format is month-day-year.

Defined in
International

Data type
boolean

Syntax
public boolean isDateMDY()
throws NotesException

Legal values
true if the order of the date format is month-day-year
false if the order of the date format is not month-day-year

IsDateYMD property
Read-only. Indicates if the order of the date format is year-month-day.

Defined in
International

Data type
boolean

Syntax
public boolean isDateYMD()
throws NotesException

Legal values
true if the order of the date format is year-month-day
false if the order of the date format is not year-month-day

Chapter 10: Java Classes A–Z 2007


International class

IsDST property
Read-only. Indicates if the time format reflects daylight savings time.

Defined in
International

Data type
boolean

Syntax
public boolean isDST()
throws NotesException

Legal values
true if the time format reflects daylight savings time
false if the time format does not reflect daylight savings time

IsTime24Hour property
Read-only. Indicates if the time format is 24-hour.

Defined in
International

Data type
boolean

Syntax
public boolean isTime24Hour()
throws NotesException

Legal values
true if the time format is 24-hour
false if the time format is 12-hour

2008 Domino Designer Programming Guide, Volume 3: JavaScript Classes


International class

Parent property
Read-only. The Notes session that contains an International object.

Defined in
International

Data type
Session

Syntax
public Session getParent()
throws NotesException

Example: Parent property


This agent displays the user name for the parent session.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
International inat = session.getInternational();
System.out.println("Parent user name = " +
inat.getParent().getUserName());
} catch(Exception e) {
e.printStackTrace();
}
}
}

PMString property
Read-only. The string that denotes PM time, for example, “PM” in English.

Defined in
International

Data type
String

Syntax
public String getPMString()
throws NotesException

Chapter 10: Java Classes A–Z 2009


International class

ThousandsSep property
Read-only. The thousands separator in number format, for example, the
comma.

Defined in
International

Data type
String

Syntax
public String getThousandsSep()
throws NotesException

TimeSep property
Read-only. The character used to separate hours, minutes, and seconds, for
example, the colon.

Defined in
International

Data type
String

Syntax
public String getTimeSep()
throws NotesException

TimeZone property
Read-only. An integer representing the time zone. In many cases, but not
all, this integer indicates the number of hours that must be added to the
time to get Greenwich Mean Time. May be positive or negative.

Defined in
International

2010 Domino Designer Programming Guide, Volume 3: JavaScript Classes


International class

Data type
int

Syntax
public int getTimeZone()
throws NotesException

Today property
Read-only. The string that means today in a time-date specification, for
example, “Today” in English.

Defined in
International

Data type
String

Syntax
public String getToday()
throws NotesException

Tomorrow property
Read-only. The string that means tomorrow in a time-date specification, for
example, “Tomorrow” in English.

Defined in
International

Data type
String

Syntax
public String getTomorrow()
throws NotesException

Chapter 10: Java Classes A–Z 2011


Item class

Yesterday property
Read-only. The string that means yesterday in a time-date specification, for
example, “Yesterday” in English.

Defined in
International

Data type
String

Syntax
public String getYesterday()
throws NotesException

Item class
Represents a discrete value or set of values in a document.
The client interface displays items in a document through fields on a form.
When a field on a form and an item in a document have the same name,
the field displays the item (for example, the Subject field displays the
Subject item).
All items in a document are accessible programmatically, regardless of
what form is used to display the document in the user interface.

Syntax
public class Item extends Base

Derived Classes
RichTextItem inherits from Item class.

Containment
Contained by: Document
Contains: DateTime

Properties
DateTimeValue through getDateTimeValue and setDateTimeValue
IsAuthors through isAuthors and setAuthors
IsEncrypted through isEncrypted and setEncrypted
IsNames through isNames and setNames
IsProtected through isProtected and setProtected

2012 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Item class

IsReaders through isReaders and setReaders


IsSaveToDisk through isSaveToDisk and setSaveToDisk
IsSigned through isSigned and setSigned
IsSummary through isSummary and setSummary
LastModified through getLastModified
Name through getName
Parent through getParent
Text through getText
Type through getType
ValueDouble through getValueDouble and setValueDouble
ValueInteger through getValueInteger and setValueInteger
ValueLength through getValueLength
Values through getValues and setValues
ValueString through getValueString and setValueInteger

Methods
abstractText
appendToTextList
containsValue
copyItemToDocument
remove

Creation
To create a new Item object:
To create a new Item object from scratch, use replaceItemValue in
Document. The method appendItemValue also creates an item, but
creates another item of the same name if the specified item exists. Use
replaceItemValue unless your intent is to create another item with the
same name (not recommended).
To create a new Item object from one that already exists, use
copyItemToDocument, copyItem, or replaceItemValue in Document.

Chapter 10: Java Classes A–Z 2013


Item class

You must call save on the document if you want the modified document to
be saved to disk. The document won’t display the new item in the user
interface unless there is a field of the same name on the form used to
display the document.
Explicitly call setSummary and specify true if you want the value to be
displayed in a view or folder.

Access
To access an existing Item object:
To access an item when you know its name, use getFirstItem in
Document.
To access all the items in a document, use getItems in Document.
Document has methods to access items without creating an Item object. You
need to know is the name of the item.
To get an item’s value, use getItemValue.
To create a new item or set an item’s value, use replaceItemValue.
To check for the existence of a particular item in a document, use
hasItem.
To delete an item from a document, use removeItem.

Rich-text items
RichTextItem inherits the properties and methods of Item and has
additional properties and methods you can use to manipulate rich-text.

Saving Changes
After you create or modify an item, you must save the changes by calling
the parent document’s save method.
If you don’t call save before the program finishes, all of your changes to an
Item object are lost.

Example: Item class


This agent creates a document with items of various types.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Document doc = db.createDocument();

2014 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Item class

// Create text item with implied data type


doc.replaceItemValue("Subject", "Creating items ...");
// Create text item explicitly specifying data type
Item textItem = doc.replaceItemValue("textItem", null);
textItem.setValueString("South America");
textItem.setSummary(true);
// Create numeric item explicitly specifying data type
Item numberItem = doc.replaceItemValue("numberItem",
null);
numberItem.setValueDouble(98);
numberItem.setSummary(true);
// Create date-time item explicitly specifying data type
Item dateTimeItem = doc.replaceItemValue("dateTimeItem",
null);
DateTime dt = session.createDateTime("");
dt.setNow();
dateTimeItem.setDateTimeValue(dt);
dateTimeItem.setSummary(true);
// Create multi-value text item explicitly specifying
//data type
Vector v = new Vector();
v.addElement("Bicycle");
v.addElement("Train");
v.addElement("Foot");
Item textListItem = doc.replaceItemValue("textListItem",
null);
textListItem.setValues(v);
textListItem.setSummary(true);
// Create authors item explicitly specifying data type
Vector v2 = new Vector();
v2.addElement("Mariko Nakamura");
v2.addElement("Pierre Singer");
Item authorsItem = doc.replaceItemValue("authorsItem",
null);
authorsItem.setValues(v2);
authorsItem.setSummary(true);
authorsItem.setAuthors(true);

// Save the document


doc.save(true, true);
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 2015


Item class

DateTimeValue property
Read-write. For a date-time item, returns a DateTime object representing
the value of the item. For items of other types, returns null.

Defined in
Item

Data type
DateTime

Syntax
public DateTime getDateTimeValue()
throws NotesException
public void setDateTimeValue(DateTime value)
throws NotesException

Usage
Can be set to null.

IsAuthors property
Read-write. Indicates whether an item is of type Authors.

Defined in
Item

Data type
boolean

Syntax
public boolean isAuthors()
throws NotesException
public void setAuthors(boolean flag)
throws NotesException

Legal values
true if the item is of type Authors
false if the item is not of type Authors

Usage
An Authors item contains a text list of user names indicating people who
have Author access to a particular document. An Authors item returns
Item.TEXT for getType.

2016 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Item class

Example: IsAuthors, IsNames, and IsReaders properties


This agent locates the items of type Authors, Names, and Readers in a
document.
import lotus.domino.*;
import java.util.Vector;
import java.util.Enumeration;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
Document doc = dc.getFirstDocument();
Vector authors = new Vector();
Vector names = new Vector();
Vector readers = new Vector();
if (doc != null) {
Enumeration items = doc.getItems().elements();
while (items.hasMoreElements()) {
Item item = (Item)items.nextElement();
if (item.()) authors.addElement(item);
if (item.isNames()) names.addElement(item);
if (item.isReaders()) readers.addElement(item);
}
printValues("Authors", authors);
printValues("Names", names);
printValues("Readers", readers);
}
} catch(Exception e) {
e.printStackTrace();
}
}

void printValues(String name, Vector v) {


try {
Enumeration e = v.elements();
System.out.println(name);
while (e.hasMoreElements()) {
Item item = (Item)e.nextElement();
System.out.println("\t" + item.getName());
System.out.println("\t\t" + item.getText());
}

Chapter 10: Java Classes A–Z 2017


Item class

} catch(Exception e) {
e.printStackTrace();
}
}
}

IsEncrypted property
Read-write. Indicates whether an item is encrypted.

Defined in
Item

Data type
boolean

Syntax
public boolean isEncrypted()
throws NotesException
public void setEncrypted(boolean flag)
throws NotesException

Legal values
true if the item is encrypted
false if the item is not encrypted

Usage
If you set this property to true, the item is not actually encrypted until you
call encrypt on the parent Document.

Examples: IsEncrypted, IsProtected, IsSaveToDisk, IsSigned, and


IsSummary properties
1. This agent determines the encryption, protection, save-to-disk, and
summary status of the items in a document.
import lotus.domino.*;
import java.util.Vector;
import java.util.Enumeration;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();

2018 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Item class

DocumentCollection dc = db.getAllDocuments();
Document doc = dc.getFirstDocument();
if (doc != null) {
Enumeration items = doc.getItems().elements();
while (items.hasMoreElements()) {
Item item = (Item)items.nextElement();
System.out.println(item.getName());
if (item.isEncrypted())
System.out.print(" encrypted");
else
System.out.print(" not encrypted");
if (item.isProtected())
System.out.print(" * protected");
else
System.out.print(" * not protected");
if (item.isSaveToDisk())
System.out.print("* saved to disk");
else
System.out.print(" * not saved to disk");
if (item.isSigned())
System.out.print(" * signed");
else
System.out.print(" * not signed");
if (item.isSummary())
System.out.println(" * summarized");
else
System.out.println(" * not summarized");
}
}
} catch(Exception e) {
e.printStackTrace();
}
}
}

2. This agent sets encryption on for an item and encrypts the document
containing it.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
Document doc = dc.getFirstDocument();
while (doc != null) {

Chapter 10: Java Classes A–Z 2019


Item class

Item item = doc.getFirstItem("Body");


if (item != null) {
item.setEncrypted(true);
doc.encrypt();
doc.save(true, true);
}
doc = dc.getNextDocument();
}
} catch(Exception e) {
e.printStackTrace();
}
}
}

IsNames property
Read-write. Indicates whether an item is a Names item.

Defined in
Item

Data type
boolean

Syntax
public boolean isNames()
throws NotesException
public setNames(boolean flag)
throws NotesException

Legal values
true if the item is a Names item
false if the item is not a Names item

Usage
A Names item contains a list of user names. A Names item returns
Item.TEXT for getType.

2020 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Item class

IsProtected property
Read-write. Indicates whether a user needs at least Editor access to modify
an item.

Defined in
Item

Data type
boolean

Syntax
public boolean isProtected()
throws NotesException
public void setProtected(boolean flag)
throws NotesException

Legal values
true if you need at least Editor access to modify the item
false if you do not need Editor access to modify the item; you can
modify it as long as you have Author access or better

IsReaders property
Read-write. Indicates whether an item is of type Readers.

Defined in
Item

Data type
boolean

Syntax
public boolean isReaders()
throws NotesException
public void setReaders(boolean flag)
throws NotesException

Chapter 10: Java Classes A–Z 2021


Item class

Legal values
true if the item is of type Readers
false if the item is not of type Readers

Usage
A Readers item contains a list of user names indicating people who have
Reader access to a document. A Readers item returns Item.TEXT for
getType.

IsSaveToDisk property
Read-write. Indicates whether an item is saved when the document is
saved.

Defined in
Item class

Data type
boolean

Syntax
public boolean isSaveToDisk()
throws NotesException
public void setSaveToDisk(boolean flag)
throws NotesException

Legal values
(default) true if the item is saved when the document is saved
false if the item is not saved when the document is saved

Usage
If you mark an existing item as not to be saved, it disappears from storage
the next time you save the document.

IsSigned property
Read-write. Indicates if an item contains a signature.

Defined in
Item

Data type
boolean

2022 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Item class

Syntax
public boolean isSigned()
throws NotesException
public void setSigned(boolean flag)
throws NotesException

Legal values
true if the item is signed
false if the item is not signed

IsSummary property
Read-write. Indicates whether an item can appear in a view or folder.

Defined in
Item

Data type
boolean

Syntax
public boolean isSummary()
throws NotesException
public void setSummary(boolean flag)
throws NotesException

Legal values
true if the item is a summary item
false if the item is not a summary item

Usage
Rich text cannot appear in a view. isSummary for a RichTextItem always
returns false.

Chapter 10: Java Classes A–Z 2023


Item class

LastModified property
Read-only. The date that an item was last modified.

Defined in
Item

Data type
DateTime

Syntax
public DateTime getLastModified()
throws NotesException

Name property
Read-only. The name of an item.

Defined in
Item

Data type
String

Syntax
public String getName()
throws NotesException

Usage
A document may have multiple items with the same name.
All file attachments have the name $FILE.

Parent property
Read-only. The document that contains an item.

Defined in
Item

Data type
Document

2024 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Item class

Syntax
public Document getParent()
throws NotesException

Example: Parent property


This agent demonstrates a function that gets the parent document of an
item.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
Document doc = dc.getFirstDocument();
Item item = doc.getFirstItem("Subject");
if (doc != null) parentdoc(item);
} catch(Exception e) {
e.printStackTrace();
}
}
public void parentdoc(Item i) {
try {
Document doc = i.getParent();
if (doc.isResponse())
System.out.println("Parent doc is a response
document");
else
System.out.println("Parent doc is a main document");
} catch (Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 2025


Item class

Text property
Read-only. A plain text representation of an item’s value.

Defined in
Item

Data type
String

Syntax
public String getText()
throws NotesException
public String getText(int maxlen)
throws NotesException

Parameters
int maxlen

Maximum length of returned text.

Usage
Multiple values in a list are separated by semicolons in the returned string.
If an item’s value is large, the returned string may be truncated.
For rich-text items, this property skips non-text data such as bitmaps and
file attachments.
For HTML items, this property returns null.

Type property
Read-only. The data type of an item.

Defined in
Item

Data type
int

Syntax
public int getType()
throws NotesException

2026 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Item class

Legal values
Item.ATTACHMENT (file attachment)
Item.AUTHORS
Item.DATETIMES (date-time or range of date-time values)
Item.EMBEDDEDOBJECT
Item.ERRORITEM (error occurred while getting type)
Item.FORMULA (Domino formula)
Item.HTML (HTML source text)
Item.ICON
Item.NAMES
Item.NOTELINKS (link to a database, view, or document)
Item.NOTEREFS (reference to the parent document)
Item.NUMBERS (number or number list)
Item.OTHEROBJECT
Item.RICHTEXT
Item.READERS
Item.SIGNATURE
Item.TEXT (text or text list)
Item.UNAVAILABLE
Item.UNKNOWN
Item.USERDATA
Item.USERID

Usage
You can also test for Names, Readers, and Authors items with:
IsNames
IsReaders
IsAuthors

Example: LastModified, Name, Text, Type, and ValueLength properties


This agent gets the name, text value, type, length, and last modification date
of each item in a document.
import lotus.domino.*;
import java.util.Vector;
import java.util.Enumeration;
public class JavaAgent extends AgentBase {
public void NotesMain() {

Chapter 10: Java Classes A–Z 2027


Item class

try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
Document doc = dc.getFirstDocument();
if (doc != null) {
Enumeration items = doc.getItems().elements();
while (items.hasMoreElements()) {
Item item = (Item)items.nextElement();
String type;
switch (item.getType()) {
case Item.ACTIONCD : type = "Action CD"; break;
case Item.ASSISTANTINFO : type = "Assistant
information"; break;
case Item.ATTACHMENT : type = "File attachment";
break;
case Item.AUTHORS : type = "Authors"; break;
case Item.COLLATION : type = "Collation"; break;
case Item.DATETIMES :
type = "Date-time or range of date-times";
break;
case Item.EMBEDDEDOBJECT : type = "Embedded
object"; break;
case Item.ERRORITEM : type = "Error while
accessing
type"; break;
case Item.FORMULA : type = "Formula"; break;
case Item.HTML : type = "HTML source text"; break;
case Item.ICON : type = "Icon"; break;
case Item.LSOBJECT : type = "LotusScript object";
break;
case Item.NAMES : type = "Names"; break;
case Item.NOTELINKS :
type = "Link to database, view, or document";
break;
case Item.NOTEREFS :
type = "Reference to the parent document";
break;
case Item.NUMBERS : type = "Number or number
list";
break;
case Item.OTHEROBJECT : type = "Other object";
break;
case Item.QUERYCD : type = "Query CD"; break;
case Item.RICHTEXT : type = "Rich text"; break;
case Item.READERS : type = "Readers"; break;
case Item.SIGNATURE : type = "Signature"; break;

2028 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Item class

case Item.TEXT : type = "Text or text list";


break;
case Item.UNAVAILABLE : type = "Unavailable type";
break;
case Item.UNKNOWN : type = "Unknown typet"; break;
case Item.USERDATA : type = "User data"; break;
case Item.USERID : type = "User ID name"; break;
case Item.VIEWMAPDATA : type = "View map data";
break;
case Item.VIEWMAPLAYOUT : type = "View map
layout";
break;
default : type = "Other";
}
System.out.println(item.getName());
System.out.println(type);
System.out.println(item.getValueLength() + "
bytes");
System.out.println("Last modified " +
item.getLastModified().getLocalTime());
if (item.getText().length() == 0)
System.out.println("[no text]\n");
else
System.out.println(item.getText(80) + "\n");
}
}
} catch(Exception e) {
e.printStackTrace();
}
}
}

ValueDouble property
Read-write. The value of an item with a single numeric value.

Defined in
Item

Data type
double

Chapter 10: Java Classes A–Z 2029


Item class

Syntax
public double getValueDouble()
throws NotesException
public setValueDouble(double value)
throws NotesException

Usage
If the item has no value or the value is text, date-time, or empty, this
method returns 0.0.
If the item has mutiple values, this method returns the first value.

ValueInteger property
Read-write. The value of an item with a single numeric value.

Defined in
Item

Data type
int

Syntax
public int getValueInteger()
throws NotesException
public setValueInteger(int value)
throws NotesException

Usage
If the item has no value or the value is text, date-time, or empty, this
method returns 0.
If the item has mutiple values, this method returns the first value.

ValueLength property
Read-only. The bytes of internal storage, including overhead, required to
store an item.

Defined in
Item

2030 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Item class

Data type
int

Syntax
public int getValueLength()
throws NotesException

Values property
Read-write. The value of an item.

Defined in
Item

Data type
java.util.Vector. The data type of the value depends upon the type of
the item.
Item type Valid return type
Rich text java.util.Vector with one String element
rendered into plain text
Text (includes Names, Authors, and java.util.Vector with String elements
Readers item types)
Number or number list java.util.Vector with Double elements
Date-time or range of date-time values java.util.Vector with DateTime elements

Syntax
public java.util.Vector getValues()
throws NotesException
public void setValues(java.util.Vector values)
throws NotesException

Usage
This property returns the same value(s) for an item as getItemValue in
Document.

Examples: DateTimeValue, ValueDouble, ValueInteger, Values, and


ValueString properties
1. This agent gets item values of various types.
import lotus.domino.*;
import java.util.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {

Chapter 10: Java Classes A–Z 2031


Item class

try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
Document doc = dc.getFirstDocument();
if (doc != null) {
// Text item
Item item = doc.getFirstItem("textItem");
System.out.println(item.getName());
System.out.println(item.getValueString());
// Numeric item
item = doc.getFirstItem("numberItem");
System.out.println("\n" + item.getName());
System.out.println("Integer value: " +
item.getValueInteger());
System.out.println("Double value: " +
item.getValueDouble());
// Date-time item
item = doc.getFirstItem("dateTimeItem");
System.out.println("\n" + item.getName());
System.out.println(
item.getDateTimeValue().getLocalTime());
// Multi-value text item
item = doc.getFirstItem("textListItem");
System.out.println("\n" + item.getName());
Enumeration values = item.getValues().elements();
while (values.hasMoreElements()) {

System.out.println((String)values.nextElement());
}
}
} catch(Exception e) {
e.printStackTrace();
}
}
}
2. This agent increments a numeric item and adds a value to a
multi-value text item.
import lotus.domino.*;
import java.util.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =

2032 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Item class

session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
Document doc = dc.getFirstDocument();
if (doc != null) {
// Numeric item
Item item = doc.getFirstItem("numberItem");
System.out.println(item.getName());
System.out.println("Old value: " +
item.getValueInteger());
item.setValueInteger(item.getValueInteger() + 1);
System.out.println("New value: " +
item.getValueInteger());
// Multi-value text item
item = doc.getFirstItem("textListItem");
Vector v = item.getValues();
v.addElement("New value");
item.setValues(v);
System.out.println("\n" + item.getName());
Enumeration values = item.getValues().elements();
while (values.hasMoreElements()) {

System.out.println((String)values.nextElement());
}
doc.save(true, true);
}
} catch(Exception e) {
e.printStackTrace();
}
}
}

ValueString property
Read-write. The value that an item holds.

Defined in
Item

Data type
String

Chapter 10: Java Classes A–Z 2033


Item class

Syntax
public String getValueString()
throws NotesException
public setValueString(String value)
throws NotesException

Usage
If the item has no value or the value is numeric or date-time, this method
returns an empty string.
This method returns a rich-text item rendered to plain text. Formatting and
embedded objects are lost.
If the item has multiple values, this method returns the first value.

abstractText method
Abbreviates the contents of a text item.

Defined in
Item

Syntax
public String abstractText(int maxlen, boolean dropvowels,
boolean userdict)
throws NotesException

Parameters
int maxlen

The maximum length of the abbreviation.


boolean dropvowels

Specify true if you want to drop vowels from the words in the item.
Otherwise, specify false.
boolean userdict

Specify true if you want to use the table of abbreviations in


noteabbr.txt. Otherwise, specify false.

Return value
String

The contents of the item, with vowels dropped and abbreviations


substituted (if specified), then truncated to fit to maxlen.

2034 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Item class

Example: abstractText method


This agent generates an abstract of an item.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
Document doc = dc.getFirstDocument();
if (doc != null) {
System.out.println(" Subject: " +
doc.getItemValueString("Subject"));
System.out.println(" Body summary: " +
doc.getFirstItem("Body").abstractText(80, true,
true));
doc = dc.getNextDocument();
}
} catch(Exception e) {
e.printStackTrace();
}
}
}

appendToTextList method
For an item that’s a text list, adds a new value to the item without erasing
any existing values.

Defined in
Item

Syntax
public void appendToTextList(String value)
throws NotesException
public void appendToTextList(java.util.Vector values)
throws NotesException

Chapter 10: Java Classes A–Z 2035


Item class

Parameter
String value

The string you want to add to the item.


java.util.Vector values

The string(s) you want to add to the item. Each vector element is an
object of type String.

Examples: appendToTextList method


1. This agent appends to two String values to a text list.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
Document doc = dc.getFirstDocument();
if (doc != null) {
Item item = doc.getFirstItem("textListItem");
item.appendToTextList("Motorcycle");
item.appendToTextList("Airplane");
doc.save();
}
} catch(Exception e) {
e.printStackTrace();
}
}
}
2. This agent appends a Vector of two String values to a text item.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
Document doc = dc.getFirstDocument();
if (doc != null) {
Item item = doc.getFirstItem("textListItem");

2036 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Item class

Vector v = new Vector();


v.addElement("Motorcycle");
v.addElement("Airplane");
item.appendToTextList(v);
doc.save();
}
} catch(Exception e) {
e.printStackTrace();
}
}
}

containsValue method
Checks whether a value matches at least one of an item’s values.

Defined in
Item

Syntax
public boolean containsValue(Object value)
throws NotesException

Parameter
Object value

String, Number, or DateTime value

Return Values
true if the value matches one of the values in the item
false if the value matches no value in the item

Usage
This method does not search a text item to see if it contains a specific word. It
is intended to search a text list, number list, or date-time range to see if one
of the values in the list or range matches value.
If value is a distinguished name, and if the item contains Domino user
names, the distinguished name matches the common version of the
hierarchical name.

Chapter 10: Java Classes A–Z 2037


Item class

Example: containsValue method


This agent appends a value to a list if the list does not already contain
the value.
import lotus.domino.*;
import java.util.Vector;
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
Document doc = dc.getFirstDocument();
if (doc != null) {
Item item = doc.getFirstItem("textListItem");
if (!item.containsValue("Motorcycle"))
item.appendToTextList("Motorcycle");
if (!item.containsValue("Airplane"))
item.appendToTextList("Airplane");
doc.save();
}
} catch(Exception e) {
e.printStackTrace();
}
}
}

copyItemToDocument method
Copies an item to a specified document.

Defined in
Item

Syntax
public Item copyItemToDocument(Document doc)
throws NotesException
public Item copyItemToDocument(Document doc, String newname)
throws NotesException

2038 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Item class

Parameters
Document doc

The document on which to create the item. Cannot be null.


String newname

The name of the new item. Specify an empty string (“”) if you want to
keep the name of the original item.

Return value
Item

The new item.

Usage
When you call this method using a RichTextItem object, file attachments,
embedded objects, and object links that are contained within the rich-text
item are not copied to the destination document.

Example: copyItemToDocument method


This agent copies two items from an existing document to a new document,
renaming one of them.
import lotus.domino.*;
import java.util.Vector;
import lotus.domino.*;
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
Document doc = dc.getFirstDocument();
if (doc != null) {
Document newdoc = db.createDocument();
Item item = doc.getFirstItem("Subject");
item.copyItemToDocument(newdoc);
item = doc.getFirstItem("Body");
item.copyItemToDocument(newdoc, "BodyPrototype");
newdoc.save(true, true);
}
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 2039


Item class

remove method
Permanently deletes an item from a document.

Defined in
Item

Syntax
public void remove()
throws NotesException

Usage
After calling remove, you must call save in Document to save the change.
You can achieve the same result with removeItem in Document.

Example: remove method


This agent removes an item from all documents in a database.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
Document doc = dc.getFirstDocument();
while (doc != null) {
if (doc.hasItem("BodyPrototype")) {
Item item = doc.getFirstItem("BodyPrototype");
item.remove();
doc.save(true, true);
}
doc = dc.getNextDocument();
}
} catch(Exception e) {
e.printStackTrace();
}
}
}

2040 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Log class

Log class
Enables you to record actions and errors that take place during a program’s
execution. You can record actions and errors in:
A Domino database
A mail memo
A file (for programs that run locally)
An agent log (for agents)

Syntax
public class Log extends Base

Containment
Contained by: Session

Properties
IsLogActions through isLogActions and setLogActions
IsLogErrors through isLogErrors and setLogErrors
IsOverwriteFile through isOverwriteFile and setOverwriteFile
NumActions through getNumActions
NumErrors through getNumErrors
Parent through getParent
ProgramName through getProgramName and setProgramName

Methods
close
logAction
logError
logEvent
openAgentLog
openFileLog
openMailLog
openNotesLog

Chapter 10: Java Classes A–Z 2041


Log class

Creation
To create a new log, use createLog in Session.

Usage
Once you create a log, you use one of the following methods to open it
before you begin logging:
To log to a database, use openNotesLog.
To log to a mail memo, use openMailLog.
To log to a file (only available to programs running locally), use
openFileLog.
To log to an agent log (only available to agents), use openAgentLog.
You must explicitly log each action and error using the following methods:
To log an action, use logAction.
To log an error, use logError.
Domino does not automatically log actions or errors for you.

Examples: Log class


1. This agent opens a mail log and sends it to the current user when the
log closes.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Log log = session.createLog("Checkup Agent");
Vector v = new Vector();
v.addElement(session.getUserName());
log.openMailLog(v, "Log for checkup agent");
log.close();
} catch(Exception e) {
e.printStackTrace();
}
}
}

2042 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Log class

2. This agent opens a mail log, logs an action for each document in
the current database, and sends the log to the current user when the
log closes.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Log log = session.createLog("Cleansing Agent");
Vector v = new Vector();
v.addElement(session.getUserName());
log.openMailLog(v, "Log for cleansing agent");
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
for (int j=0; j<dc.getCount(); j++) {
log.logAction("Processed document " + (j+1)); }
log.close();
} catch(Exception e) {
e.printStackTrace();
}
}
}

3. This example opens a Domino log and logs an error. The database
agentlog.nsf must be based on the StdR4AgentLog template.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
Database db = agentContext.getCurrentDatabase();
Log log = session.createLog(
db.getTitle() + " on " + db.getServer());
log.openNotesLog(null, "agentlog.nsf");
View view = db.getView("foo");
if (view==null) {
log.logError(0, "Unable to find view foo"); }
log.close();

Chapter 10: Java Classes A–Z 2043


Log class

} catch(Exception e) {
e.printStackTrace();
}
}
}

IsLogActions property
Read-write. Indicates if action logging is enabled or not.

Defined in
Log

Data type
boolean

Syntax
public boolean isLogActions()
throws NotesException
public void setLogActions(boolean flag)
throws NotesException

Return Values
true (default) enables action logging
false disables action logging

Usage
The logAction method has no effect while the logActions property is false.

Example: IsLogActions property


This agent disables and enables the action logging.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Log log = session.createLog("Turning actions on and
off");
Vector v = new Vector();
v.addElement(session.getUserName());
log.openMailLog(v, "Here's your log");
log.setLogActions(false);

2044 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Log class

log.logAction("This action does not get logged");


log.setLogActions(true);
log.logAction("This action does get logged");
log.close();
} catch(Exception e) {
e.printStackTrace();
}
}
}

IsLogErrors property
Read-write. Indicates if error logging is enabled or not.

Defined in
Log

Data type
boolean

Syntax
public boolean isLogErrors()
throws NotesException
public void setLogErrors(boolean flag)
throws NotesException

Return Values
true (default) enables error logging
false disables error logging

Usage
The logError method has no effect while the IsLogErrors property is false.

Example: IsLogErrors property


This agent disables and enables error logging.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Log log = session.createLog("Turning actions on and
off");

Chapter 10: Java Classes A–Z 2045


Log class

Vector v = new Vector();


v.addElement(session.getUserName());
log.openMailLog(v, "Here's your log");
log.setLogErrors(false);
log.logError(0, "This error does not get logged");
log.setLogErrors(true);
log.logError(0, "This error does get logged");
log.close();
} catch(Exception e) {
e.printStackTrace();
}
}
}

IsOverwriteFile property
Read-write. For a log that records to a file, indicates if the log should write
over the existing file or append to it. This property has no effect on logs that
record to a mail message or database.

Defined in
Log

Data type
boolean

Syntax
public boolean isOverwriteFile()
throws NotesException
public void setOverwriteFile(boolean flag)
throws NotesException

Legal values
true writes over the existing log file
false (default) appends to the existing log file

Usage
To write over an existing log file, you must set this property to true before
calling the openFileLog method.

Examples: IsOverwriteFile property


1. This agent opens the over.txt file for logging. The existing contents of
the file are removed before any actions or errors are logged.
import lotus.domino.*;
public class JavaAgent extends AgentBase {

2046 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Log class

public void NotesMain() {


try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Log log = session.createLog("Overwrite file");
log.setOverwriteFile(true);
log.openFileLog("over.log");
log.logAction("Logged an action");
} catch(Exception e) {
e.printStackTrace();
}
}
}
2. This agent sets the IsOverwriteFile property to true if the agent last ran
over seven days ago. If the agent last ran within the last seven days, it
sets the IsOverwriteFile property to false.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Log log = session.createLog("Overwrite file");
DateTime lastRun = agentContext.getLastRun();
DateTime nowDateTime = session.createDateTime("");
nowDateTime.setNow();
int daysSinceRun =
nowDateTime.timeDifference(lastRun) / 86400;
if (daysSinceRun > 7)
log.setOverwriteFile(true);
else
log.setOverwriteFile(false);
log.openFileLog("over.log");
log.logAction("Logged an action");
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 2047


Log class

NumActions property
Read-only. The number of actions logged so far.

Defined in
Log

Data type
int

Syntax
public int getNumActions()
throws NotesException

Example: NumActions property


This agent prints the number of each action in the action message.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Log log = session.createLog("Counting actions");
Vector v = new Vector();
v.addElement(session.getUserName());
log.openMailLog(v, "Here's your log");
log.logAction("Action number " +
log.getNumActions());
log.logAction("Action number " +
log.getNumActions());
log.logAction("Action number " +
log.getNumActions());
log.close();
} catch(Exception e) {
e.printStackTrace();
}
}
}

2048 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Log class

NumErrors property
Read-only. The number of errors logged so far.

Defined in
Log

Data type
int

Syntax
public int getNumErrors()
throws NotesException

Usage
The NumErrors property is not incremented until after logErrors is called.
To get the correct count at the time of a call to logErrors, increment
getNumErrors by 1.

Example: NumErrors property


This agent prints the number of the error number in the log message.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Log log = session.createLog("Counting errors");
Vector v = new Vector();
v.addElement(session.getUserName());
log.openMailLog(v, "Here's your log");
log.logError(0, "Error number " + (
log.getNumErrors()+1));
log.logError(0, "Error number " + (
log.getNumErrors()+1));
log.logError(0, "Error number " + (
log.getNumErrors()+1));
log.close();
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 2049


Log class

Parent property
Read-only. The Domino session that contains a Log object.

Defined in
Log

Data type
Session

Syntax
public Session getParent()
throws NotesException

ProgramName property
Read-write. The name that identifies the agent whose actions and errors
you’re logging. The name is the same as the name specified with createLog.

Defined in
Log

Data type
Object of type java.lang.String

Syntax
public String getProgramName()
throws NotesException
public void setProgramName(String name)
throws NotesException

Example: ProgramName property


This agent prints the program name.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Log log = session.createLog("Program name file");
log.openFileLog("progname.log");
System.out.println

2050 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Log class

("Program name = \"" + log.getProgramName() + "\"");


log.close();
} catch(Exception e) {
e.printStackTrace();
}
}
}

close method
Closes a log.

Defined in
Log

Syntax
public void close()
throws NotesException

Usage
If you are logging to a mail message, this method sends the mail message to
its recipient(s).

Example: close method


This agent opens and then closes a mail log. When the close method is
called, the log is mailed.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Log log = session.createLog("Checkup Agent");
Vector v = new Vector();
v.addElement(session.getUserName());
log.openMailLog(v, "Here's your log");
// log some errors and actions
log.close();
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 2051


Log class

logAction method
Records an action in a log.

Defined in
Log

Syntax
public void logAction(String action)
throws NotesException

Parameter
String action

A description of the action, as you want it to appear in the log.

Usage
The behavior of this method depends upon the type of log you open.
If you open a Domino database using openNotesLog, this method
creates a new document in the database. The A$ACTION item in the
document contains the description.
If you open a mail memo using openMailLog, this method adds the
description to the Body item of the memo, along with the current date
and time.
If you open a file using openFileLog, this method adds the description
to the next line of the file, along with the log’s ProgramName and the
current date and time.

Example: logAction method


This agent logs actions to a mail memo. It performs a full-text search on the
current database, and logs one action for each document that matches the
full-text search query.
Each time the logAction method is called, it adds a new line to the Body
item of the mail memo. For example, if FTSearch returns a collection of
three documents, the body of the mail memo looks like this:
09/14/98 01:41:51 PM Botany Agent starting
09/14/98 01:41:52 PM Document [Petals] placed in folder.
09/14/98 01:41:52 PM Document [Stems] placed in folder.
09/14/98 01:41:52 PM Document [Leaves] placed in folder.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {

2052 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Log class

Session session = getSession();


AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Log log = session.createLog("Botany Agent");
Vector v = new Vector();
v.addElement(session.getUserName());
log.openMailLog(v, "Log for botany agent");
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.FTSearch("botany", 0);
Document doc = dc.getFirstDocument();
while (doc != null) {
doc.putInFolder("Botanist's Delight");
log.logAction("Document " +
doc.getItemValue("Subject") +
" placed in folder.");
doc = dc.getNextDocument();
}
log.close();
} catch(Exception e) {
e.printStackTrace();
}
}
}

logError method
Records an error in a log.

Defined in
Log

Syntax
public void logError(int code, String text)
throws NotesException

Parameters
int code

A number indicating which error occurred.


String text

A description of the error that occurred, as you want it to appear in


the log.

Chapter 10: Java Classes A–Z 2053


Log class

Usage
The behavior of this method depends upon the type of log you open.
If you open a Domino database using openNotesLog, this method
creates a new document in the database. The A$ERRCODE item in the
document contains the code and the A$ERRMSG item contains the
description.
If you open a mail memo using openMailLog, this method adds the
code and the description to the Body item of the memo, along with the
current date and time.
If you open a file using openFileLog, this method adds the code and the
description to the next line of the file, along with the log’s
ProgramName and the current date and time.

Example: logError method


This agent searches for “Rocks” in the documents in the current database
and logs an error message to logerror.log in the current Domino directory if
no occurrences are found.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Log log = session.createLog("Geology Agent");
log.openFileLog("logerror.log");
DocumentCollection dc = db.FTSearch("Rocks", 0);
if (dc.getCount() == 0) {
log.logError(0, "No documents found"); }
else {
Newsletter news = session.createNewsletter(dc);
news.setSubjectItemName("Subject");
Document doc = news.formatMsgWithDoclinks(db);
doc.appendItemValue("Form", "Memo");
doc.appendItemValue("Subject", "The Rock Report");
doc.send(false, session.getUserName()); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

2054 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Log class

logEvent method
Sends a Domino event out to the network. Only scripts running on a server
can use this method.

Defined in
Log

Syntax
public void logEvent(String text, String queue, int event, int
severity)
throws NotesException

Parameters
String text

The message to send to the network.


String queue

The name of the queue. Domino picks a queue if you send an empty
string (“”).
int event

Indicates the kind of event being logged. May be any of the following:
Log.EV_ALARM
Log.EV_COMM
Log.EV_MAIL
Log.EV_MISC
Log.EV_REPLICA
Log.EV_RESOURCE
Log.EV_SECURITY
Log.EV_SERVER
Log.EV_UNKNOWN
Log.EV_UPDATE

Chapter 10: Java Classes A–Z 2055


Log class

int severity

Indicates the severity of the event being logged. May be any of the
following:
Log.SEV_FAILURE
Log.SEV_FATAL
Log.SEV_NORMAL
Log.SEV_WARNING1
Log.SEV_WARNING2
Log.SEV_UNKNOWN

Usage
This method does not affect other open logs (database, file, or mail). Using
the logAction or logError method has no effect on event logging.

openAgentLog method
Opens the agent log for the current agent.
Note This method does not work for remote (IIOP) operations.

Defined in
Log

Syntax
public void openAgentLog()
throws NotesException

Usage
This method stores output in the log for the current agent and fails if the
program is not running as an agent. To display an agent log, select the
agent and choose Agent - Log. The log also displays after you run an agent
with Actions - Run.

Example: openAgentLog method


This agent opens the agent log and writes an action message to it.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();

2056 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Log class

AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Log log = session.createLog("Agent Log");
log.openAgentLog();
log.logAction("Action one");
log.close();
} catch(Exception e) {
e.printStackTrace();
}
}
}

openFileLog method
Starts logging to a file. This method returns an error if you call it on a
server.

Defined in
Log

Syntax
public void openFileLog(String filepath)
throws NotesException

Parameter
String filepath

The path and file name of the log file. If the file does not exist, the
method creates it for you. If a directory in the path does not exist, the
method throws an exception.

Usage
To write over an existing log file, you must set the IsOverwriteFile property
to true before calling openFileLog.

Logging actions and errors


For information on how actions and errors get logged to a database log, see
the logAction and logError methods.

Chapter 10: Java Classes A–Z 2057


Log class

Examples: openFileLog method


1. This agent opens a file called append.txt in the Domino directory. Each
action and error gets appended to the file on a separate line without
writing over the existing contents of the file.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Log log = session.createLog("Append to file");
log.openFileLog("append.log");
log.logAction("Logged an action");
} catch(Exception e) {
e.printStackTrace();
}
}
}
2. This agent opens a file called over.txt in the Domino directory. Each
action and error gets appended to the file on a separate line after first
writing over the existing contents of the file.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Log log = session.createLog("Overwrite file");
log.setOverwriteFile(true);
log.openFileLog("over.log");
log.logAction("Logged an action");
} catch(Exception e) {
e.printStackTrace();
}
}
}

2058 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Log class

openMailLog method
Opens a new mail memo for logging. The memo is mailed when the log’s
close method is called, or when the object is deleted.
Note This method works only in Domino agents.

Defined in
Log

Syntax
public void openMailLog(java.util.Vector recipients, String
subject)
throws NotesException

Parameters
java.util.Vector recipients

The recipients of the mail memo. Each element is an object of type


String.
String subject

The subject of the mail memo.

Usage
When you call this method, Domino uses the current user’s mail database to
create and send the mail memo. The memo is not saved to the database.

Logging actions and errors


For information on how actions and errors get logged to a mail log, see the
logAction and logError methods.

Example: openMailLog method


This agent opens a mail log. When the close method is called, the mail
memo is sent to the owner of the agent with the name of the agent and the
title of the database in the Subject.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
Database db = agentContext.getCurrentDatabase();
Log log = session.createLog(agent.getName());

Chapter 10: Java Classes A–Z 2059


Log class

Vector v = new Vector();


v.addElement(agent.getOwner());
log.openMailLog(v, agent.getName() +
" in " + db.getTitle());
log.close();
} catch(Exception e) {
e.printStackTrace();
}
}
}

openNotesLog method
Opens a specified Domino database for logging.

Defined in
Log

Syntax
public void openNotesLog(String server, String database)
throws NotesException

Parameters
String server

The server on which the database log resides. Use null or an empty
string (“”) to indicate the current computer: a local database if the agent
runs on a workstation; a database on that server if the agent runs on a
server.
String database

The path and file name of the database.

Usage
One document is created in the database for each error or action that you
log. Each document contains the following items:
Item Contents
Form “Log Entry”
A$PROGNAME The ProgramName property
A$LOGTIME The date and time that the error or action is logged
A$USER The user at the time the error or action is logged
continued

2060 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Log class

Item Contents
A$LOGTYPE “Error” or “Action”
A$ACTION A description of the action (actions only)
A$ERRCODE The error code (errors only)
A$ERRMSG A description of the error (errors only)

The StdR4AgentLog template


The StdR4AgentLog template (alog4.ntf) is designed to display the action
and error documents that Log creates. If the database you specify inherits
its design from this template, you can use the database main view to see
each of the items listed above. Several agents can log to the same server and
database; the database categorizes each action and error according to the
A$PROGNAME item.

Opening a database
An agent that runs on a server cannot open a database on a different
server. An error is returned if you attempt to do so.
An agent that attempts to open a database to which it does not have
access returns an error. You need at least Reader access to a database to
open it.

Logging actions and errors


For information on how actions and errors get logged to a database log, see
the logAction and logError methods.

Example: openNotesLog method


This agent opens agentlog.nsf on the current computer. Each time an action
or error is logged, a new document gets created in agentlog.nsf.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Log log = session.createLog("Database log");
log.openNotesLog(null, "agentlog.nsf");
log.logAction("Logging an action");
log.close();

Chapter 10: Java Classes A–Z 2061


Name class

} catch(Exception e) {
e.printStackTrace();
}
}
}

Name class
Represents a user or server name.

Syntax
public class Name extends Base

Containment
Contained by: AgentContext and Session

Properties
Abbreviated through getAbbreviated
Addr821 through getAddr821
Addr822Comment1 through getAddr822Comment1
Addr822Comment2 through getAddr822Comment2
Addr822Comment3 through getAddr822Comment3
Addr822LocalPart through getAddr822LocalPart
Addr822Phrase through getAddr822Phrase
ADMD through getADMD
Canonical through getCanonical
Common through getCommon
Country through getCountry
Generation through getGeneration
Given through getGiven
Initials through getInitials
IsHierarchical through isHierarchical
Keyword through getKeyword
Language through getLanguage
Organization through getOrganization

2062 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Name class

OrgUnit1 through getOrgUnit1


OrgUnit2 through getOrgUnit2
OrgUnit3 through getOrgUnit3
OrgUnit4 through getOrgUnit4
PRMD through getPRMD
Parent through getParent
Surname through getSurname

Creation
To create a new Name object, use createName in Session.

Usage
The properties of this class can be interrogated to distinguish different
elements of the name.
Use getUserNameList and getUserNameObject in Session to get the
primary and alternate names for the current Domino user. Use
getUserName and getCommonUserName in Session to get the full user
name and common user name in String format.

Example: Name class


This example displays properties of the current user name that are not null.
import lotus.domino.*;
public class name1 extends NotesThread
{
public static void main(String argv[])
{
name1 t = new name1();
t.start();
}
public void runNotes()
{
try
{
Session s = NotesFactory.createSession();
Name n = s.getUserNameObject();
if (n.isHierarchical())
{
System.out.println
("Canonical name = " + n.getCanonical());
System.out.println
("Abbreviated name = " + n.getAbbreviated());
}

Chapter 10: Java Classes A–Z 2063


Name class

System.out.println
("Common name = " + n.getCommon());
if (n.getOrganization() != null)
System.out.println
("Organization = " + n.getOrganization());
if (n.getOrgUnit1() != null)
System.out.println
("OrgUnit1 = " + n.getOrgUnit1());
if (n.getOrgUnit2() != null)
System.out.println
("OrgUnit2 = " + n.getOrgUnit2());
if (n.getOrgUnit3() != null)
System.out.println
("OrgUnit3 = " + n.getOrgUnit3());
if (n.getOrgUnit4() != null)
System.out.println
("OrgUnit4 = " + n.getOrgUnit4());
if (n.getGiven() != null)
System.out.println
("Given = " + n.getGiven());
if (n.getSurname() != null)
System.out.println
("Surname = " + n.getSurname());
if (n.getInitials() != null)
System.out.println
("Initials = " + n.getInitials());
if (n.getGeneration() != null)
System.out.println
("Generation = " + n.getGeneration());
if (n.getADMD() != null)
System.out.println
("ADMD = " + n.getADMD());
if (n.getPRMD() != null)
System.out.println
("PRMD = " + n.getPRMD());
if (n.getKeyword() != null)
System.out.println
("Keyword = " + n.getKeyword());
if (n.getLanguage() != null)
System.out.println
("Language = " + n.getLanguage());
}
catch (Exception e)
{
e.printStackTrace();
}
}
}

2064 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Name class

Abbreviated property
Read-only. A hierarchical name in abbreviated form, or null if the property
is undefined.

Defined in
Name

Data type
String

Syntax
public String getAbbreviated()
throws NotesException

Addr821 property
Read-only. Internet address in the format based on RFC 821 Address
Format Syntax.

Defined in
Name

Data type
String

Syntax
public String getAddr821()
throws NotesException

Addr822Comment1 property
Read-only. Comment1 component of Internet address in the format based
on RFC 822 Address Format Syntax.

Defined in
Name

Data type
String

Syntax
public String getAddr822Comment1()
throws NotesException

Chapter 10: Java Classes A–Z 2065


Name class

Addr822Comment2 property
Read-only. Comment2 component of Internet address in the format based
on RFC 822 Address Format Syntax.

Defined in
Name

Data type
String

Syntax
public String getAddr822Comment2()
throws NotesException

Addr822Comment3 property
Read-only. Comment3 component of Internet address in the format based
on RFC 822 Address Format Syntax.

Defined in
Name

Data type
String

Syntax
public String getAddr822Comment3()
throws NotesException

Addr822LocalPart property
Read-only. LocalPart component of Internet address in the format based on
RFC 822 Address Format Syntax.

Defined in
Name

Data type
String

Syntax
public String getAddr822LocalPart()
throws NotesException

2066 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Name class

Addr822Phrase property
Read-only. Phrase component of Internet address in the format based on
RFC 822 Address Format Syntax.

Defined in
Name

Data type
String

Syntax
public String getAddr822Phrase()
throws NotesException

ADMD property
Read-only. The administration management domain name (ADMD)
component of a hierarchical name (A=), or null if the property is undefined.

Defined in
Name

Data type
String

Syntax
public String getADMD()
throws NotesException

Canonical property
Read-only. A hierarchical name in canonical form, or null if the property is
undefined.

Defined in
Name

Data type
String

Syntax
public String getCanonical()
throws NotesException

Chapter 10: Java Classes A–Z 2067


Name class

Common property
Read-only. The common name component of a hierarchical name (CN=), or
the entire name if it is flat.

Defined in
Name

Data type
String

Syntax
public String getCommon()
throws NotesException

Country property
Read-only. The country component of a hierarchical name (C=), or null if
the property is undefined.

Defined in
Name

Data type
String

Syntax
public String getCountry()
throws NotesException

Generation property
Read-only. The generation component of a hierarchical name (Q=), for
example, “Jr,” or null if the property is undefined.

Defined in
Name

Data type
String

Syntax
public String getGeneration()
throws NotesException

2068 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Name class

Given property
Read-only. The given component of a hierarchical name (G=), or null if the
property is undefined.

Defined in
Name

Data type
String

Syntax
public String getGiven()
throws NotesException

Initials property
Read-only. The initials component of a hierarchical name (I=), or null if the
property is undefined.

Defined in
Name

Data type
String

Syntax
public String getInitials()
throws NotesException

IsHierarchical property
Read-only. Indicates if a name is hierarchical.

Defined in
Name

Data type
boolean

Chapter 10: Java Classes A–Z 2069


Name class

Syntax
public boolean isHierarchical()
throws NotesException

Legal values
true if the name is hierarchical
false if the name is not hierarchical

Keyword property
Read-only. The following components of a hierarchical name in the order
shown separated by backslashes: country\organization\organizational unit
1\organizational unit 2\organizational unit 3\organizational unit 4.
Returns null if the property is undefined.

Defined in
Name

Data type
String

Syntax
public String getKeyword()
throws NotesException

Language property
Read-only. The language tag associated with a name. Returns null if the
property is undefined.

Defined in
Name

Data type
String

Syntax
public String getLanguage()
throws NotesException

2070 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Name class

Usage
The language tags are as follows:
Tag Language
ar Arabic
ar-ae Arabic - United Arab Emirates
ar-bh Arabic - Bahrain
ar-dz Arabic - Algeria
ar-iq Arabic - Iraq
ar-jo Arabic - Jordan
ar-kw Arabic - Kuwait
ar-lb Arabic - Lebanon
ar-ly Arabic - Libyan Arab Jamahiriya
ar-ma Arabic - Morocco
ar-om Arabic - Oman
ar-qa Arabic - Qatar
ar-sa Arabic - Saudi Arabia
ar-sy Arabic - Syrian Arab Republic
ar-tn Arabic - Tunisia
ar-ye Arabic - Yemen
be Byelorussian
bg Bulgarian
ca Catalan
cs Czech
da Danish
de German
de-at German - Austria
de-ch German - Switzerland
de-li German - Liechtenstein
de-lu German - Luxembourg
el Greek
en English
continued

Chapter 10: Java Classes A–Z 2071


Name class

Tag Language
en-au English - Australia
en-ca English - Canada
en-gb English - United Kingdom
en-ie English - Ireland
en-jm English - Jamaica
en-nz English - New Zealand
en-us English - United States
en-za English - South Africa
es Spain (traditional collation)
es-ar Spanish - Argentina
es-bo Spanish - Bolivia
es-cl Spanish - Chile
es-co Spanish - Colombia
es-cr Spanish - Costa Rica
es-do Spanish - Dominican Republic
es-ec Spanish - Ecuador
es-gt Spanish - Guatemala
es-mx Spanish - Mexico
es-pa Spanish - Panama
es-pe Spanish - Peru
es-py Spanish - Paraguay
es-uy Spanish - Uruguay
es-ve Spanish - Venezuela
et Estonian
fi Finnish
fr French
fr-be French - Belgium
fr-ca French - Canada
fr-ch French - Switzerland
fr-lu French - Luxembourg
continued

2072 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Name class

Tag Language
he Hebrew
hr Croatian
hu Hungarian
it Italian
it-ch Italian - Switzerland
ja Japanese
ko Korean
lt Lithuanian
lv Latvian
mk Macedonian
nl Dutch
no Norwegian
pl Polish
pl-pl Polish - Poland
pt Portuguese
pt-br Portuguese - Brazil
ro Romanian
ru Russian
sk Slovak
sl Slovenian
sq Albanian
sr Serbian
sv Swedish
th Thai
tr Turkish
uk Ukranian
vi Vietnamese
zh-cn Chinese - China
zh-hk Chinese - Hong Kong
zh-sg Chinese - Singapore
zh-tw Chinese - Taiwan

Chapter 10: Java Classes A–Z 2073


Name class

Organization property
Read-only. The organization component of a hierarchical name (O=), or null
if the property is undefined.

Defined in
Name

Data type
String

Syntax
public String getOrganization()
throws NotesException

OrgUnit1 property
Read-only. The first organizational unit of a hierarchical name (OU=), or
null if the property is undefined.

Defined in
Name

Data type
String

Syntax
public String getOrgUnit1()
throws NotesException

OrgUnit2 property
Read-only. The second organizational unit of a hierarchical name (OU=), or
null if the property is undefined.

Defined in
Name

Data type
String

Syntax
public String getOrgUnit2()
throws NotesException

2074 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Name class

OrgUnit3 property
Read-only. The third organizational unit of a hierarchical name (OU=), or
null if the property is undefined.

Defined in
Name

Data type
String

Syntax
public String getOrgUnit3()
throws NotesException

OrgUnit4 property
Read-only. The fourth organizational unit of a hierarchical name (OU=), or
null if the property is undefined.

Defined in
Name

Data type
String

Syntax
public String getOrgUnit4()
throws NotesException

Parent property
Read-only. The Notes session that contains a Name object.

Defined in
Name

Data type
Session

Syntax
public Session getParent()
throws NotesException

Chapter 10: Java Classes A–Z 2075


Newsletter class

PRMD property
Read-only. The private management domain name (PRMD) component of a
hierarchical name (P=), or null if the property is undefined.

Defined in
Name

Data type
String

Syntax
public String getPRMD()
throws NotesException

SurName property
Read-only. The surname component of a hierarchical name (S=), or null if
the property is undefined.

Defined in
Name

Data type
String

Syntax
public String getSurName()
throws NotesException

Newsletter class
Document or set of documents that contains information from, or links to,
several other documents.

Syntax
public class Newsletter extends Base

Containment
Contained by: Session
Contains: Document

2076 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Newsletter class

Properties
IsDoScore through isDoScore and setDoScore
IsDoSubject through isDoSubject and setDoSubject
Parent through getParent
SubjectItemName through getSubjectItemName and setSubjectItemName

Methods
formatDocument
formatMsgWithDoclinks

Creation
To create a new Newsletter, use a DocumentCollection object containing the
documents you want with createNewsletter in Session.

Usage
Once you create a newsletter, you can:
Use formatDocument to create a new document with a rendering of one
of the documents in the collection.
Use formatMsgWithDoclinks to create a new document with links to
each of the documents in the collection.

Examples: Newsletter class


1. This agent performs a full-text search on the current database and
creates a newsletter. The agent formats a newsletter message containing
a link to each matching document and sends it to the current user.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
db.updateFTIndex(true);
DocumentCollection dc = db.FTSearch("arachnid", 15);
if (dc.getCount() > 0) {
Newsletter news = session.createNewsletter(dc);
news.setSubjectItemName("Subject");
news.setDoSubject(true);
Document doc = news.formatMsgWithDoclinks(db);
doc.appendItemValue("Form", "Memo");
doc.appendItemValue("Subject", "The Arachnid
Report");

Chapter 10: Java Classes A–Z 2077


Newsletter class

doc.send(false, session.getUserName()); }
} catch(Exception e) {
e.printStackTrace();
}
}
}
2. This agent performs a full-text search on the current database and
creates a newsletter. The agent formats a newsletter document for each
matching document and saves it in the database Reports.nsf.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
db.updateFTIndex(true);
DocumentCollection dc = db.FTSearch("arachnid", 15);
if (dc.getCount() > 0) {
Newsletter news = session.createNewsletter(dc);
Document doc;
Database reports = session.getDatabase(null,
"reports");
for (int j=0; j<dc.getCount(); j++) {
doc = news.formatDocument(reports, j+1);
doc.appendItemValue("Form", "Main Topic");
doc.appendItemValue("Subject", "The Arachnid
Report " + (j+1));
doc.appendItemValue("Categories", "Reports");
doc.appendItemValue("From",
session.getCommonUserName());
doc.save(true, true); }}
} catch(Exception e) {
e.printStackTrace();
}
}
}

2078 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Newsletter class

IsDoScore property
Read-write. For a newsletter document created using the
formatMsgWithDoclinks method, indicates if the newsletter includes the
relevance score for each document.

Defined in
Newsletter

Data type
boolean

Syntax
public boolean isDoScore()
throws NotesException
public void setDoScore(boolean flag)
throws NotesException

Legal values
true if the newsletter includes the relevance score for each document;
default
false if the newsletter does not include relevance scores

Usage
This property has no effect for a newsletter document created using the
formatDocument method.
This property applies only to newsletters with sorted collections; for
example, a collection produced by a call to the FTSearch method in
Database. If a newsletter collection is unsorted, this property has no effect.

IsDoSubject property
Read-write. For a newsletter document created using the
formatMsgWithDoclinks method, indicates if the newsletter includes a
string describing the subject of each document.

Defined in
Newsletter

Data type
boolean

Chapter 10: Java Classes A–Z 2079


Newsletter class

Syntax
public boolean isDoSubject()
throws NotesException
public void setDoSubject(boolean flag)
throws NotesException

Legal values
true if the newsletter includes a subject line for each document; default
false if the newsletter does not include subject lines

Usage
This property has no effect for a newsletter document created using the
formatDocument method.
This property must be used in conjunction with the SubjectItemName
property. If you do not specify the SubjectItemName property, the
DoSubject property has no effect.
You must set both SubjectItemName and DoSubject before calling
FormatMsgWithDoclinks.

Parent property
Read-only. The Domino session that contains a Newsletter object.

Defined in
Newsletter

Data type
Session

Syntax
public Session getParent()
throws NotesException

SubjectItemName property
Read-write. For a newsletter document created using the
formatMsgWithDoclinks method, indicates the name of the item on
the documents of a newsletter that contains the text you want to use
as a subject line.

Defined in
Newsletter

2080 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Newsletter class

Data type
String

Syntax
public String getSubjectItemName()
throws NotesException
public void setSubjectItemName(String name)
throws NotesException

Usage
This property has no effect for a newsletter document created using the
FormatDocument method.
This property must be used in conjunction with the DoSubject property. For
example, if the DoSubject property is true and SubjectItemName is
“Subject,” then the newsletter contains the contents of each document
Subject item next to the document link. If the DoSubject property is false,
the SubjectItemName property has no effect.
You must set both SubjectItemName and DoSubject before calling
formatMsgWithDoclinks.

formatDocument method
Creates a document containing a rendering of a document in the newsletter
collection. This is similar to forwarding a document, which displays a
rendering of the forwarded document.

Defined in
Newsletter

Syntax
public Document formatDocument(Database db, int index)
throws NotesException

Parameters
Database db

The database in which to create the newsletter document. If you specify


this parameter as null, the document is created in the user’s default
mail database.
int index

A number indicating the document to render. Use 1 to indicate the


first document in the collection, 2 to indicate the second document,
and so on.

Chapter 10: Java Classes A–Z 2081


Newsletter class

Return value
Document

A document in db, containing a rendering of the nth document in the


collection. The rendering is placed into the Body item.

Usage
If you want to save the rendered document, you must explicitly call the
save method of Document.
If you want to mail the rendered document, you must explicitly call the
send method of Document.

Example: FormatDocument method


This agent makes a document collection of all the documents (up to 15) in
the current database containing the word “arachnid,” and makes a
newsletter based on the document collection. The agent formats a
newsletter document for each document in the collection, and sends them to
the current user.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
db.updateFTIndex(true);
DocumentCollection dc = db.FTSearch("arachnid", 15);
if (dc.getCount() > 0) {
Newsletter news = session.createNewsletter(dc);
Document doc;
for (int j=0; j<dc.getCount(); j++) {
doc = news.formatDocument(db, j+1);
doc.appendItemValue("Form", "Memo");
doc.appendItemValue("Subject", "The Arachnid
Report "
+ (j+1));
doc.send(false, session.getUserName()); }}
} catch(Exception e) {
e.printStackTrace();
}
}
}

2082 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Newsletter class

formatMsgWithDoclinks method
Creates a document that contains a link to each document in the newsletter
collection.

Defined in
Newsletter

Syntax
public Document formatMsgWithDoclinks(Database db)
throws NotesException

Parameter
Database db

The database in which to create the newsletter document. If you specify


this parameter as null, the document is created in the user’s default
mail database.

Return value
Document

A document that contains a link to each document in the newsletter


collection.

Usage
The Body item of the returned document contains the following:
The file name of the database that contains the documents in the
newsletter collection.
A link to each document in the newsletter collection.
If the collection is sorted and the DoScore property is true, the relevance
score of each document. You must set this property before calling the
formatMsgWithDoclinks method.
If the DoSubject property is true and the SubjectItemName property has
a value, a title for each document. You must set this property before
calling the formatMsgWithDoclinks method.
The query that produced the newsletter collection.
If you want to save the newsletter, you must explicitly call the save method
of Document.
If you want to mail the newsletter, you must explicitly call the send method
of Document.

Chapter 10: Java Classes A–Z 2083


Newsletter class

Example: FormatMsgWithDoclinks method; IsDoScore, IsDoSubject,


and SubjectItemName properties
This agent makes a document collection of all documents in the current
database containing the word “arachnid,” then makes a newsletter based on
this document collection. The agent formats a message with links to the
newsletter documents and mails it to the current user.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
db.updateFTIndex(true);
DocumentCollection dc = db.FTSearch("arachnid", 0);
if (dc.getCount() > 0) {
Newsletter news = session.createNewsletter(dc);
news.setSubjectItemName("Subject");
news.setDoSubject(true);
news.setDoScore(true);
Document doc = news.formatMsgWithDoclinks(db);
doc.appendItemValue("Form", "Memo");
doc.appendItemValue("Subject", "The Arachnid Report");
doc.send(false, session.getUserName()); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

2084 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Outline class

Outline class
Represents an outline in a database.

Containment
Contained by: Database
Contains: OutlineEntry

Properties
Alias through getAlias
Comment through getComment
Name through getName

Methods
addEntry
createEntry
getFirst
getLast
getNext
getNextSibling
getParent
getPrev
getPrevSibling
moveEntry
removeEntry
save

Creation and access


Create an outline with createOutline in Database. Get an existing outline
object with getOutline in Database.

Usage
An outline supports a hierarchy of outline entries and provides methods for
their navigation and manipulation.

Chapter 10: Java Classes A–Z 2085


Outline class

Examples: Outline class, Alias, Comment, and Name properties,


getFirst and getNext methods, OutlineEntry class, Alias, EntryClass,
IsInThisDB, IsPrivate, Label, Level, and Type properties
1. This agent gets the properties of every entry in an outline.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try
Session session = getSession()
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Outline outline = db.getOutline("DiscOutline");
System.out.println("*** " + outline.getName() +
" ***");
System.out.println("Alias: " + outline.getAlias());
System.out.println("Comment: " +
outline.getComment());
OutlineEntry entry = outline.getFirst();
while (entry != null) {
System.out.println(entry.getLabel());
if (entry.getAlias().length() > 0)
System.out.println("\tAlias: " +
entry.getAlias());
String type = null;
switch (entry.getType()) {
case OutlineEntry.OUTLINE_OTHER_FOLDERS_TYPE:
type = "Other folders"; break;
case OutlineEntry.OUTLINE_OTHER_VIEWS_TYPE:
type = "Other views"; break;
case OutlineEntry.OUTLINE_OTHER_UNKNOWN_TYPE:
type = "Other unknown"; break;
case OutlineEntry.OUTLINE_TYPE_ACTION:
type = "Action"; break;
case OutlineEntry.OUTLINE_TYPE_NAMEDELEMENT:
type = "Named element"; break;
case OutlineEntry.OUTLINE_TYPE_NOTELINK:
type = "Note link"; break;
case OutlineEntry.OUTLINE_TYPE_URL:
type = "URL"; break;
}
System.out.println("\tType: " + type);
String entryClass = null;
switch (entry.getEntryClass()) {
case OutlineEntry.OUTLINE_CLASS_DATABASE:
entryClass = "Database"; break;

2086 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Outline class

case OutlineEntry.OUTLINE_CLASS_DOCUMENT:
entryClass = "Document"; break;
case OutlineEntry.OUTLINE_CLASS_FORM:
entryClass = "Form"; break;
case OutlineEntry.OUTLINE_CLASS_FOLDER:
entryClass = "Folder"; break;
case OutlineEntry.OUTLINE_CLASS_FRAMESET:
entryClass = "Frame set"; break;
case OutlineEntry.OUTLINE_CLASS_NAVIGATOR:
entryClass = "Navigator"; break;
case OutlineEntry.OUTLINE_CLASS_PAGE:
entryClass = "Page"; break;
case OutlineEntry.OUTLINE_CLASS_UNKNOWN:
entryClass = "Unknown"; break;
case OutlineEntry.OUTLINE_CLASS_VIEW:
entryClass = "View"; break;
}
System.out.println("\tEntry class: " +
entryClass);
System.out.println("\tLevel: " +
entry.getLevel());
if (entry.isInThisDB())
System.out.println("\tRefers to an element in
this database");
else
System.out.println
("\tDoes not refer to an element in this database");
if (entry.isPrivate())
System.out.println("\tEntry is private");
else
System.out.println("\tEntry is public");
if (entry.getFrameText().length() > 0)
System.out.println("\tFrame text: " +
entry.getFrameText());
if (entry.getImagesText().length() > 0)
System.out.println("\tImages text: " +
entry.getImagesText());
entry = outline.getNext(entry);
}
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 2087


Outline class

2. This agent creates an outline.


import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Outline outline = db.createOutline("Some
Documents");
outline.setAlias("SomeDocuments");
outline.setComment("Gives partial view of
database");
outline.save();
} catch(Exception e) {
e.printStackTrace();
}
}
}

Alias property
Read-write. Alias name of an outline for programmatic access.

Defined in
Outline

Data type
String

Syntax
public String getAlias()
throws NotesException
public void setAlias(String value)
throws NotesException

2088 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Outline class

Comment property
Read-write. An informational description of an outline.

Defined in
Outline

Data type
String

Syntax
public String getComment()
throws NotesException
public void setComment(String value)
throws NotesException

Name property
Read-write. Name of an outline.

Defined in
Outline

Data type
String

Syntax
public String getName()
throws NotesException
public void setName(String value)
throws NotesException

addEntry method
Adds an entry to an outline.

Defined in
Outline

Syntax
public void addEntry(OutlineEntry entry, OutlineEntry
referenceEntry)
throws NotesException

Chapter 10: Java Classes A–Z 2089


Outline class

public void addEntry(OutlineEntry entry, OutlineEntry


referenceEntry, boolean after)
throws NotesException
public void addEntry(OutlineEntry entry, OutlineEntry
referenceEntry, boolean after, boolean asChild)
throws NotesException

Parameters
OutlineEntry entry

The entry being added.


OutlineEntry referenceEntry

The entry after or before which the entry being added is placed.
boolean after

True (default) to put the entry after the reference entry; false to put the
entry before the reference entry.
boolean asChild

True (default) to make the entry a child of the preceding entry. If the
after parameter is False and asChild parameter is True, an exception is
raised.

Usage
You must save the outline or the effect of this method is lost when the
program exits.

createEntry method
Creates an outline entry.

Defined in
Outline

Syntax
public OutlineEntry createEntry(String entryName)
throws NotesException

Parameters
String entryName

The name of the entry.

Usage
The new entry becomes a free entry. Use addEntry to position the
new entry.

2090 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Outline class

You must save the outline or the effect of this method is lost when the
program exits.

Example: addEntry, createEntry, and save methods, OutlineEntry


FrameText, ImagesText, and IsHidden properties, setNamedElement
property
This agent creates an entry as a subentry to the first entry in an outline.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Outline outline = db.createOutline("Some Documents");
outline.setAlias("SomeDocuments");
outline.setComment("Gives partial view of database");
outline.save();
} catch(Exception e) {
e.printStackTrace();
}
}
}

getFirst method
Gets the first entry of an outline.

Defined in
Outline

Syntax
public OutlineEntry getFirst()
throws NotesException

Return value
OutlineEntry

The first entry of the outline, or null if there are no entries.

Chapter 10: Java Classes A–Z 2091


Outline class

getLast method
Gets the last entry of an outline.

Defined in
Outline

Syntax
public OutlineEntry getLast()
throws NotesException

Return value
OutlineEntry

The last entry of the outline, or null if there are no entries.

Example: getLast and getPrev methods


This agent gets the entries in an outline last to first.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Outline outline = db.getOutline("DiscOutline");
System.out.println("*** " + outline.getName() + " ***");
System.out.println("ALL ENTRIES LAST TO FIRST");
OutlineEntry entry = outline.getLast();
while (entry != null) {
System.out.println(entry.getLabel());
entry = outline.getPrev(entry);
}
} catch(Exception e) {
e.printStackTrace();
}
}
}

2092 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Outline class

getNext method
Gets the entry immediately following a specified entry of an outline.

Defined in
Outline

Syntax
public OutlineEntry getNext(OutlineEntry entry)
throws NotesException

Parameters
OutlineEntry entry

An entry in the outline.

Return value
OutlineEntry

The entry following the one specified as the parameter, or null if there
is no next entry.

getNextSibling method
Gets the entry at the same level following a specified entry of an outline.

Defined in
Outline

Syntax
public OutlineEntry getNextSibling(OutlineEntry entry)
throws NotesException

Parameters
OutlineEntry entry

An entry in the outline.

Return value
OutlineEntry

The entry at the same level following the one specified as the
parameter, or null if there is no next sibling.

Chapter 10: Java Classes A–Z 2093


Outline class

Example: getNextSibling and getParent methods


This agent gets the top-level entries in an outline.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Outline outline = db.getOutline("DiscOutline");
System.out.println("*** " + outline.getName() + " ***");
System.out.println("TOP-LEVEL ENTRIES");
OutlineEntry entry = outline.getFirst();
while (entry != null) {
System.out.println(entry.getLabel());
entry = outline.getNextSibling(entry);
}
} catch(Exception e) {
e.printStackTrace();
}
}
}

getParent method
Returns the parent of a specified entry.

Defined in
Outline

Syntax
public OutlineEntry getParent(OutlineEntry entry)
throws NotesException

Parameters
OutlineEntry entry

An entry in the outline.

Return value
OutlineEntry

The parent entry of the one specified as the parameter, or null if there is
no parent.

2094 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Outline class

getPrev method
Gets the entry immediately preceding a specified entry of an outline.

Defined in
Outline

Syntax
public OutlineEntry getPrev(OutlineEntry entry)
throws NotesException

Parameters
OutlineEntry entry

An entry in the outline.

Return value
OutlineEntry

The entry preceding the one specified as the parameter, or null if there
is no next entry.

getPrevSibling method
Gets the entry at the same level preceding a specified entry of an outline.

Defined in
Outline

Syntax
public OutlineEntry getPrevSibling(OutlineEntry entry)
throws NotesException

Parameters
OutlineEntry entry

An entry in the outline.

Return value
OutlineEntry

The entry at the same level preceding the one specified as the parameter, or
null if there is no next sibling.

Chapter 10: Java Classes A–Z 2095


Outline class

Example: getPrevSibling method


This agent gets the top-level entries in an outline last to first.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Outline outline = db.getOutline("DiscOutline");
System.out.println("*** " + outline.getName() + " ***");
System.out.println("TOP-LEVEL ENTRIES LAST TO FIRST");
OutlineEntry entry = outline.getLast();
while (entry.getLevel() > 0)
entry = outline.getParent(entry);
while (entry != null) {
System.out.println(entry.getLabel());
entry = outline.getPrevSibling(entry);
}
} catch(Exception e) {
e.printStackTrace();
}
}
}

moveEntry method
Moves an outline entry from one location to another.

Defined in
Outline

Syntax
public void moveEntry(OutlineEntry entry, OutlineEntry
referenceEntry)
throws NotesException
public void moveEntry(OutlineEntry entry, OutlineEntry
referenceEntry, boolean after)
throws NotesException
public void moveEntry(OutlineEntry entry, OutlineEntry
referenceEntry, boolean after, boolean asChild)
throws NotesException

2096 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Outline class

Parameters
OutlineEntry entry

The entry being moved.


OutlineEntry referenceEntry

The entry after or before which the entry being moved is placed.
boolean after

True (default) to move the entry after the reference entry; false to move
the entry before the reference entry.
boolean asChild

True (default) to make the entry a child of the preceding entry. If after
parameter is false, and asChild parameter is true, an exception is raised.

Usage
You must save the outline or the effect of this method is lost when the
program exits.
Moving an entry to the beginning of the outline makes it a top-level
(level 0) entry.

Example: moveEntry method


This agent moves an entry to the beginning of the outline.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Outline outline = db.getOutline("DiscOutline");
OutlineEntry entry = outline.getFirst();
while (entry != null) {
if (entry.getLabel().equals("Some Documents")) {
System.out.println(entry.getLabel() + " ... is being
moved");
outline.moveEntry(entry, outline.getFirst(), false);
outline.save();
break;
}
entry = outline.getNext(entry);
}

Chapter 10: Java Classes A–Z 2097


Outline class

} catch(Exception e) {
e.printStackTrace();
}
}
}

removeEntry method
Removes an entry or entries from an outline.

Defined in
Outline

Syntax
public void removeEntry(OutlineEntry entry)
throws NotesException

Parameters
OutlineEntry entry

The entry being removed. Cannot be null.

Usage
You must save the outline or the effect of this method is lost when the
program exits.

Example: removeEntry method


This agent removes all entries that are not at the top level.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Outline outline = db.getOutline("DiscOutline");
int count = 0;
OutlineEntry entry = outline.getFirst();
while (entry != null) {
OutlineEntry thisEntry = entry;
entry = outline.getNext(entry);
if (thisEntry.getLevel() > 0) {
System.out.println(thisEntry.getLabel() + " ... is
being removed");

2098 Domino Designer Programming Guide, Volume 3: JavaScript Classes


OutlineEntry class

outline.removeEntry(thisEntry, false);
count++;
}
}
outline.save();
System.out.println(count + " outline entries removed");
} catch(Exception e) {
e.printStackTrace();
}
}
}

save method
Saves any changes made to the outline.

Defined in
Outline

Syntax
public void save()

Usage
You must save the outline before the program exits or the effect of a method
that changes the outline is lost. These methods include addEntry,
createEntry, and moveEntry.

OutlineEntry class
Represents an entry in an outline.

Containment
Contained by: Outline

Properties
Alias through getAlias and setAlias
Database through getDatabase
Document through getDocument
EntryClass through getClass
Formula through getFormula
FrameText through getFrameText and setFrameText

Chapter 10: Java Classes A–Z 2099


OutlineEntry class

HasChildren through hasChildren


ImagesText through getImagesText and setImagesText
IsHidden through isHidden and setHidden
IsInThisDb through isInThisDB
IsPrivate through isPrivate
Label through getLabel and setLabel
Level through getLevel
NamedElement through getNamedElement
Type through getType
URL through getURL
View through getView

Methods
setAction
setNamedElement
setNoteLink
setURL

Creation and access


To create an outline entry, use createEntry in Outline. To access outline
entries, use the navigation methods in Outline.

Alias property
Read-write. Name of an outline entry for programmatic access.

Defined in
OutlineEntry

Data type
String

Syntax
public String getAlias()
throws NotesException
public void setAlias(String value)
throws NotesException

2100 Domino Designer Programming Guide, Volume 3: JavaScript Classes


OutlineEntry class

Database property
Read-only. Database that is the resource link for an outline entry, or null.

Defined in
OutlineEntry

Data type
Database

Syntax
public Database getDatabase()
throws NotesException

Usage
This property applies if the outline entry type is
OUTLINE_TYPE_NOTELINK or OUTLINE_TYPE_NAMEDELEMENT
and the entry class is OUTLINE_CLASS_DATABASE,
OUTLINE_CLASS_DOCUMENT, or OUTLINE_CLASS_VIEW.

Document property
Read-only. Document that is the resource link for an outline entry, or null.

Defined in
OutlineEntry

Data type
Document

Syntax
public Document getDocument()
throws NotesException

Usage
This property applies if the outline entry type is
OUTLINE_TYPE_NOTELINK and the entry class is
OUTLINE_CLASS_DOCUMENT.

Chapter 10: Java Classes A–Z 2101


OutlineEntry class

EntryClass property
Read-only. Class of outline entry.

Defined in
OutlineEntry

Data type
int

Syntax
public int getEntryClass()
throws NotesException

Legal values
OutlineEntry.OUTLINE_CLASS_DATABASE
OutlineEntry.OUTLINE_CLASS_DOCUMENT
OutlineEntry.OUTLINE_CLASS_FORM
OutlineEntry.OUTLINE_CLASS_FOLDER
OutlineEntry.OUTLINE_CLASS_FRAMESET
OutlineEntry.OUTLINE_CLASS_NAVIGATOR
OutlineEntry.OUTLINE_CLASS_PAGE
OutlineEntry.OUTLINE_CLASS_UNKNOWN
OutlineEntry.OUTLINE_CLASS_VIEW

Formula property
Read-only. Formula of an action outline, or an empty string.

Defined in
OutlineEntry

Data type
String

2102 Domino Designer Programming Guide, Volume 3: JavaScript Classes


OutlineEntry class

Syntax
public String getFormula()
throws NotesException

Usage
This property applies if the outline entry type is
OUTLINE_TYPE_ACTION.

FrameText property
Read-write. The name of the target frame for the entry’s OnClick event.

Defined in
OutlineEntry

Data type
String

Syntax
public String getFrameText()
throws NotesException
public void setFrameText(String value)
throws NotesException

HasChildren property
Read-only. Indicates whether an entry contains child entries.

Defined in
OutlineEntry

Data type
boolean

Syntax
public boolean hasChildren()
throws NotesException

Legal values
true if the entry contains child entries
false if the entry does not contain child entries

Chapter 10: Java Classes A–Z 2103


OutlineEntry class

Example: HasChildren property


This agent gets all the entries in an outline. It separates the children by
dropping levels through a recursive function.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Outline outline = db.getOutline("DiscOutline");
System.out.println("*** " + outline.getName() + " ***");
OutlineEntry entry = outline.getFirst();
while (entry != null) {
System.out.println(entry.getLabel());
if (entry.hasChildren()) printChild(outline, entry);
entry = outline.getNextSibling(entry);
}
} catch(Exception e) {
e.printStackTrace();
}
}
void printChild(Outline outline, OutlineEntry entry) {
try {
entry = outline.getNext(entry);
String tabs = "";
for (int i=0; i<entry.getLevel(); i++)
tabs = tabs + "\t";
while (entry != null) {
System.out.println(tabs + entry.getLabel());
if (entry.hasChildren()) printChild(outline, entry);
entry = outline.getNextSibling(entry);
}
} catch(Exception e) {
e.printStackTrace();
}
}
}

2104 Domino Designer Programming Guide, Volume 3: JavaScript Classes


OutlineEntry class

ImagesText property
Read-write. The name of the image file used to add an icon to an entry.

Defined in
OutlineEntry

Data type
String

Syntax
public String getImagesText()
throws NotesException
public void setImagesText(String value)
throws NotesException

IsHidden property
Read-write. Indicates if an entry is hidden.

Defined in
OutlineEntry

Data type
boolean

Syntax
public boolean isHidden()
throws NotesException
public void setHidden(boolean value)
throws NotesException

Legal values
true if the entry is hidden
false if the entry displays in the UI

Chapter 10: Java Classes A–Z 2105


OutlineEntry class

IsInThisDB property
Read-only. Indicates if an entry refers to an element in the current database.

Defined in
OutlineEntry

Data type
boolean

Syntax
public boolean isInThisDB()
throws NotesException

Legal values
true if the entry is in the current database
false if the entry is not in the current database

IsPrivate property
Read-only. Indicates if an entry is specific to an individual.

Defined in
OutlineEntry

Data type
boolean

Syntax
public boolean isPrivate()
throws NotesException

Legal values
true if the entry is private
false if the entry is public

2106 Domino Designer Programming Guide, Volume 3: JavaScript Classes


OutlineEntry class

Label property
Read-write. Label (display text) for an entry.

Defined in
OutlineEntry

Data type
String

Syntax
public String getLabel()
throws NotesException
public void setLabel(String value)
throws NotesException

Level property
Read-only. The level of this entry.

Defined in
OutlineEntry

Data type
int

Syntax
public int getLevel()
throws NotesException

Usage
Level 0 is the top level.

NamedElement property
Read-only. Named element referenced by an outline entry, or an empty
string.

Defined in
OutlineEntry

Data type
String

Chapter 10: Java Classes A–Z 2107


OutlineEntry class

Syntax
public String getNamedElement()
throws NotesException

Usage
This property applies if the outline entry type is
OUTLINE_TYPE_NAMEDELEMENT.

Type property
Read-only. Type of outline entry.

Defined in
OutlineEntry

Data type
int

Syntax
public int getType()
throws NotesException

Legal values
OutlineEntry.OUTLINE_OTHER_FOLDERS_TYPE
OutlineEntry.OUTLINE_OTHER_UNKNOWN_TYPE
OutlineEntry.OUTLINE_OTHER_VIEWS_TYPE
OutlineEntry.OUTLINE_TYPE_ACTION
OutlineEntry.OUTLINE_TYPE_NAMEDELEMENT
OutlineEntry.OUTLINE_TYPE_NOTELINK
OutlineEntry.OUTLINE_TYPE_URL

URL property
Read-only. URL of an outline entry, or an empty string.

Defined in
OutlineEntry

Data type
String

2108 Domino Designer Programming Guide, Volume 3: JavaScript Classes


OutlineEntry class

Syntax
public String getURL()
throws NotesException

Usage
This property applies if the outline entry type is OUTLINE_TYPE_URL.

View property
Read-only. View that is the resource link for an outline entry, or null.

Defined in
OutlineEntry

Data type
View

Syntax
public View getView()
throws NotesException

Usage
This property applies if the outline entry type is
OUTLINE_TYPE_NOTELINK and the entry class is
OUTLINE_CLASS_DOCUMENT or OUTLINE_CLASS_VIEW.

setAction method
Specifies a formula for an action outline entry.

Defined in
OutlineEntry

Syntax
public boolean setAction(String formula)
throws NotesException

Parameter
String formula

A Domino formula.

Chapter 10: Java Classes A–Z 2109


OutlineEntry class

Return value
boolean

True if the action is set successfully.

Usage
This method sets the outline entry type to OUTLINE_TYPE_ACTION.

setNamedElement method
Specifies a named element for an outline entry.

Defined in
OutlineEntry

Syntax
public boolean setNamedElement(Database db, String elementName, int
entryClass)
throws NotesException

Parameters
Database db

The database containing the named element.


String elementName

The name of a database element.


int entryClass

The entry class to be assigned to the database element. See


getEntryClass for the legal values.

Return value
boolean

True if the named element is set successfully.

Usage
This method sets the outline entry type to
OUTLINE_TYPE_NAMEDELEMENT and the entry class as specified.

2110 Domino Designer Programming Guide, Volume 3: JavaScript Classes


OutlineEntry class

setNoteLink method
Specifies a resource link for an outline entry.

Defined in
OutlineEntry

Syntax
public boolean setNoteLink(Database db)
throws NotesException
public boolean setNoteLink(Document doc)
throws NotesException
public boolean setNoteLink(View view)
throws NotesException

Parameters
Database db

A database that is the resource link.


Document doc

A document that is a resource link.


View view

A view that is a resource link.

Return value
boolean

True if the link is set successfully.

Usage
This method sets the outline entry type to OUTLINE_TYPE_NOTELINK
and the entry class to OUTLINE_CLASS_DATABASE,
OUTLINE_CLASS_DOCUMENT, or OUTLINE_CLASS_VIEW
depending on the particular method.

Chapter 10: Java Classes A–Z 2111


Registration class

setURL method
Specifies a URL as the resource link for an outline entry.

Defined in
OutlineEntry

Syntax
public boolean setURL(String url)
throws NotesException

Parameter
String url

A URL.

Return value
boolean

True if the URL is set successfully.

Usage
This method sets the outline entry type to OUTLINE_TYPE_URL.

Registration class
Represents the creation or administration of an ID file.

Syntax
public class Registration extends Base

Containment
Contained by NotesSession class

Properties
CertifierIDFile property through getCertifierIDFile and setCertifierIDFile
CreateMailDb property through getCreateMailDb and setCreateMailDb
Expiration property through getExpiration and setExpiration
IDType property through getIDType and setIDType
IsNorthAmerican property through isNorthAmerican and
setNorthAmerican
MinPasswordLength property through getMinPasswordLength and
setMinPasswordLength

2112 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Registration class

OrgUnit property through getOrgUnit and setOrgUnit


RegistrationLog property through getRegistrationLog and
setRegistrationLog
RegistrationServer property through getRegistrationServer and
setRegistrationServer
StoreIDInAddressBook property through getStoreIDToAddressBook and
setStoreIDToAddressBook
UpdateAddressbook property through getUpdateAddressBook and
setUpdateAddressBook

Methods
addCertifierToAddressbook method
addServerToAddressbook method
addUserProfile method
addUserToAddressBook method
crossCertify method
deleteIDOnServer method
getIDFromServer method
getUserInfo method
recertify method
registerNewCertifier method
registerNewServer method
registerNewUser method
switchToID method

Creation
To create a new Registration object, use the createRegistration method
in Session.

Chapter 10: Java Classes A–Z 2113


Registration class

CertifierIDFile property
Read-write. The complete file specification of the certifier ID to use when
creating IDs.

Defined in
Registration

Data type
String

Syntax
public String getCertifierIDFile()
throws NotesException
public void setCertifierIDFile(String file)
throws NotesException

Usage
Specify the complete path, for example, c:\notes\data\cert.id.

CreateMailDb property
Read-write. Indicates whether a mail database is created with the ID file
when calling registerNewUser.

Defined in
Registration

Data type
boolean

Syntax
public boolean getCreateMailDb()
throws NotesException
public void setCreateMailDb(boolean flag)
throws NotesException

Legal values
True to create a mail database
False to not create a mail database; it will be created during setup

2114 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Registration class

Expiration property
Read-write. The expiration date to use when creating ID files.

Defined in
Registration

Data type
DateTime

Syntax
public DateTime getExpiration()
throws NotesException
public void setExpiration(DateTime date)
throws NotesException

Usage
Can be set to null.

IDType property
Read-write. The type of ID file to create when calling registerNewUser,
registerNewServer, and registerNewCertifier.

Defined in
Registration

Data type
int

Syntax
public int getIDType()
throws NotesException
public void setIDType(int type)
throws NotesException

Legal Values
ID_FLAT to create a flat ID
ID_HIERARCHICAL to create a hierarchical ID
ID_CERTIFIER to create an ID that depends on whether the certifier
ID is flat or hierarchical

Chapter 10: Java Classes A–Z 2115


Registration class

IsNorthAmerican property
Read-write. indicates whether an ID file is North American. Useful when
calling registerNewUser, registerNewServer, and registerNewCertifier.

Defined in
Registration

Data type
boolean

Syntax
public boolean isNorthAmerican()
throws NotesException
public void setNorthAmerican(boolean flag)
throws NotesException

Legal Values
True if the ID is North American.
False if the ID is not North American.

MinPasswordLength property
Read-write. The minimum number of characters required for a password in
an ID file when calling registerNewUser, registerNewServer, and
registerNewCertifier.

Defined in
Registration

Data type
int

Syntax
public int getMinPasswordLength()
throws NotesException
public void setMinPasswordLength(int len)
throws NotesException

Usage
This property defines the minimum password length required for
subsequent changes to the password by the user. The password used when
the certifier is created is not restricted by the MinPasswordLength property.

2116 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Registration class

OrgUnit property
Read-write. The organizational unit to use when creating ID files.

Defined in
Registration

Data type
String

Syntax
public String getOrgUnit()
throws NotesException
public void setOrgUnit(String unit)
throws NotesException

RegistrationLog property
Read-write. The log file to use when creating IDs.

Defined in
Registration class

Data type
String

Syntax
public String getRegistrationLog()
throws NotesException
public void setRegistrationLog(String name)
throws NotesException

RegistrationServer property
Read-write. The server to use when creating IDs. This property is used only
when the created ID is stored in the server Domino Directory, or when a
mail database is created for the new user.

Defined in
Registration

Data type
String

Chapter 10: Java Classes A–Z 2117


Registration class

Syntax
public String getRegistrationServer()
throws NotesException
public void setRegistrationServer(String server)
throws NotesException

StoreIDInAddressBook property
Read-write. Indicates whether the ID file is stored in the server’s Domino
Directory.

Defined in
Registration

Data type
boolean

Syntax
public boolean getStoreIDInAddressBook()
throws NotesException
public void setStoreIDInAddressBook(boolean flag)
throws NotesException

Legal Values
True to store the ID in the Domino Directory
False to not store the ID in the Domino Directory

UpdateAddressbook property
Read-write. Indicates whether the server entry in the Domino Directory is
updated when the ID file is created when calling registerNewUser,
registerNewServer, and registerNewCertifier.

Defined in
Registration class

Data type
boolean

2118 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Registration class

Syntax
public boolean getUpdateAddressBook()
throws NotesException
public void setUpdateAddressBook(boolean flag)
throws NotesException

Legal Values
True to update the Domino Directory.
False to not update the Doimino Directory.

addCertifierToAddressbook method
Adds the certifier ID file to the Domino Directory.

Defined in
Registration

Syntax
public boolean addCertifierToAddressBook(String idfile)
throws NotesException
public boolean addCertifierToAddressBook(String idfile, String
password, String location, String comment)
throws NotesException

Parameters
String idfile

The certifer ID file to be added to the Domino Directory. Specify the


complete path; for example, c:\notes\data\cert.id.
String password

The password for the certifier ID file.


String location

The contents of the location field in the Domino Directory record.


String comment

The contents of the comment field in the Domino Directory record.

Return value
boolean

True if the operation is successful; false otherwise.

Chapter 10: Java Classes A–Z 2119


Registration class

addServerToAddressbook method
Adds a server to the Domino Directory.

Defined in
NotesRegistration

Syntax
public boolean addServerToAddressBook(String idfile, String server,
String domain)
throws NotesException
public boolean addServerToAddressBook(String idfile, String server,
String domain, String userpw, String network, String adminname,
String title, String location, String comment)
throws NotesException

Parameters
String idfile

The ID file for the server to be added to the Domino Directory. Specify
the full path; for example, c:\notes\data\cert.id.
String server

The name of the server to be added to the Domino Directory.


String domain

The domain of the server to be added to the Domino Directory.


String userpw

The server password for the specified ID file.


String network

The notes named network (NNN) on which the server runs..


String adminname

The full name of the administrator of the server.


String title

The contents of the title field of the Domino Directory record.


String location

The contents of the location field of the Domino Directory record.


String comment

The contents of the comment field of the Domino Directory record.

2120 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Registration class

Return value
boolean

True if the operation is successful; false otherwise.

addUserProfile method
Adds a user profile document to the ID file.

Defined in
Registration

Syntax
public void addUserProfile(String username, String profile)
throws NotesException

Parameters
String username

The username to be added to the ID.


String profile

The name of the profile document to be added to the ID.

addUserToAddressbook method
Adds a user to the Domino Directory.

Defined in
Registration

Syntax
public boolean addUserToAddressBook(String idfile, String fullname,
String lastn)
throws NotesException
public boolean addUserToAddressBook(String idfile, String fullname,
String lastn, String userpw, String firstn, String middle, String
mailserv, String mailfilepath, String fwdaddr, String location,
String comment)
throws NotesException

Chapter 10: Java Classes A–Z 2121


Registration class

Parameters
String idfile

The ID file for the user to be added to the Domino Directory. Specify
the full path, for example, c:\notes\data\cert.id.
String fullname

The user’s full name.


String lastn

The user’s last name.


String userpw

The user password for the specified ID file.


String firstn

The user’s first name.


String middle

The user’s middle name.


String mailserv

The full name of the user’s mail server.


String mailfilepath

The full mail pathname for the specified ID file.


String fwdaddr

The user’s forwarding mail address.


String location

The contents of the location field in the Domino Directory record.


String comment

The contents of the comment field in the Domino Directory record.

Return value
boolean

True if the operation is successful; false otherwise.

2122 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Registration class

crossCertify method
Cross-certifies an ID file.

Defined in
Registration

Syntax
public boolean crossCertify(String idfile)
throws NotesException
public boolean crossCertify(String idfile, String certpw, String
comment)
throws NotesException

Parameters
String idfile

The ID file to be cross-certified. Specify the full path, for example,


c:\notes\data\cert.id.
String certpw

The password for the certifier ID file.


String comment

The contents of the comment field in the Domino Directory record.

Return value
boolean

True if the operation is successful; false otherwise.

deleteIDOnServer method
Deletes an ID file from the server.

Defined in
Registration

Syntax
public void deleteIDOnServer(String username, boolean isserverid)
throws NotesException

Chapter 10: Java Classes A–Z 2123


Registration class

Parameters
String username

The username attached to the ID file.


boolean isserverid

True if the name you query represents a server ID. False if the name is
that of a person. While the information always comes from the
designated server Domino Directory, this argument helps you to choose
a view to search.

getIDFromServer method
Gets an ID file from the server.

Defined in
Registration

Syntax
public void getIDFromServer(String username, String filepath,
boolean isserverid)
throws NotesException

Parameters
String username

The username attached to the ID file.


String filepath

The full path of the ID file.


boolean isserverid

True if the name you query represents a server ID. False if the name is
that of a person. While the information always comes from the
designated server Domino Directory, this argument helps you to choose
a view to search.

getUserInfo method
Gets information about the user from the server.

Defined in
NotesRegistration

2124 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Registration class

Syntax
public void getUserInfo(String username, StringBuffer mailserver,
StringBuffer mailfile, StringBuffer maildomain, StringBuffer
mailsystem, Vector profile)
throws NotesException

Parameters
String username

The username attached to the ID file.


StringBuffer mailserver

Returns the name of the user’s mail server.


StringBuffer mailfile

Returns the name of the user’s mail file.


StringBuffer maildomain

Returns the name of the user’s mail domain.


StringBuffer mailsystem

Returns the name of the user’s mail system.


Vector profile

Returns the user’s profile document.

Usage
The parameters, except for the first, are return values.

recertify method
Recertifies an ID file.

Defined in
Registration

Syntax
public boolean recertify(String idfile)
throws NotesException
public boolean recertify(String idfile, String certpw, String
comment)
throws NotesException

Chapter 10: Java Classes A–Z 2125


Registration class

Parameters
String idfile

The ID file to be recertified. Specify the full path, for example,


c:\notes\data\cert.id.
String certpw

The password for the certifier ID file.


String comment

The contents of the comment field in the Domino Directory record.

Return value
boolean

True if the operation is successful; false otherwise.

registerNewCertifier method
Registers a new certfier ID file.

Defined in
Registration

Syntax
public boolean registerNewCertifier(String org, String idfile,
String userpw)
throws NotesException
public boolean registerNewCertifier(String org, String idfile,
String certpw, String country, String userpw)
throws NotesException

Parameters
String org

The organization to which the new certifier ID belongs.


String idfile

The ID file to be registered. Specify the full path, for example,


c:\notes\data\cert.id.
String certpw

The password for the certifier ID file.


String country

The contents of the country field in the Domino Directory record.

2126 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Registration class

String userpw

The user’s password.

Return value
boolean

True if the operation is successful; false otherwise.

registerNewServer method
Registers a new server ID file.

Defined in
Registration

Syntax
public boolean registerNewServer(String server, String idfile,
String domain, String pw)
throws NotesException
public boolean registerNewServer(String server, String idfile,
String domain, String serverpw, String certpw, String location,
String comment, String network, String adminname, String title)
throws NotesException

Parameters
String server

The server name attached to the ID file.


String idfile

The ID file to be registered. Specify the complete path, for example,


c:\notes\data\server.id.
String domain

The domain to which the server belongs.


String serverpw

The password for the server ID file.


String certpw

The password for the certifier ID file.


String location

The contents of the location field in the Domino Directory record.

Chapter 10: Java Classes A–Z 2127


Registration class

String comment

The contents of the comment field in the Domino Directory record.


String network

The Notes named network (NNN) on which the server runs.


String adminname

The full name of the server administartor.


String title

The contents of the title field in the Domino Directory record.

Return value
boolean

True if the operation is successful; false otherwise.

registerNewUser method
Registers a new server ID file.

Defined in
Registration

Syntax
public boolean registerNewUser(String lastn, String idfile, String
server)
throws NotesException
public boolean registerNewUser(String lastn, String idfile, String
server, String firstn, String middle, String certpw, String
location, String comment, String maildbpath, String forward, String
userpw)
throws NotesException

Parameters
String lastn

The last name of the user to be registered.


String idfile

The ID file to be registered. Specify the complete path; for example,


c:\notes\data\cert.id.
String server

The name of the server containing the user’s mail file.

2128 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Registration class

String firstn

Optional. The user’s first name.


String middle

Optional. The user’s middle initial.


String certpw

Optional. The password for the certifier ID file.


String location

Optional. The contents of the location field in the Domino


Directory record.
String comment

Optional. The contents of the comment field in the Domino


Directory record.
String maildbpath

Optional. The path of the user’s mail file relative to the mail directory;
for example, mail\jones.nsf.
String forward

Optional. The forwarding domain for the user’s mail file.


String userpw

Optional. The user’s password.

Return value
boolean

True if the operation is successful; false otherwise.

switchToID method
Switches to a different ID file.

Defined in
Registration

Syntax
public String switchToID(String idfile, String userpw)
throws NotesException

Chapter 10: Java Classes A–Z 2129


Replication class

Parameters
String idfile

The ID file to which you want to switch. Specify the complete path; for
example, c:\notes\data\cert.id.
String userpw

The user’s password.

Return Value
String

The username that corresponds to the ID file to which you have


switched.

Replication class
Represents the replication settings of a database.

Syntax
public class Replication extends Base

Containment
Contained by: Database

Properties
CutoffDate through getCutoffDate
CutoffInterval through getCutoffInterval and setCutoffInterval
IsAbstract through isAbstract and setAbstract
IsCutoffDelete through isCutoffDelete and setCutoffDelete
IsDisabled through isDisabled and setDisabled
IsDoNotBrowse through isDoNotBrowse and setDoNotBrowse
IsDoNotCatalog through isDoNotCatalog and setDoNotCatalog
IsHideDesign through isHideDesign and setHideDesign
IsIgnoreDeletes through isIgnoreDeletes and setIgnoreDeletes
IsIgnoreDestDeletes through isIgnoreDestDeletes and setIgnoreDestDeletes
IsMultiDbIndex through isMultiDbIndex and setMultiDbIndex

2130 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Replication class

IsNeverReplicate through isNeverReplicate and setNeverReplicate


IsNoChronos through isNoChronos and setNoChronos
Priority through getPriority and setPriority

Methods
clearHistory
reset
save

Creation
Each Database object has exactly one associated Replication object. Use
getReplicationInfo in Database to get the Replication object.

Example: Replication class


This agent prints the replication properties for the current database.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Replication replication = db.getReplicationInfo();
if (replication.isDisabled() ^
replication.isNeverReplicate())
System.out.println("Replication is disabled");
else {
System.out.println("Replication is enabled");
String p = null;
switch (replication.getPriority()) {
case Replication.CNOTES_REPLCONST_PRIORITYHIGH :
p = "high";
case Replication.CNOTES_REPLCONST_PRIORITYLOW :
p = "low";
case Replication.CNOTES_REPLCONST_PRIORITYMED :
p = "medium";
case Replication.CNOTES_REPLCONST_PRIORITYNOTSET :
p = "not set"; }
System.out.println("Priority is " + p); }
if (replication.isNoChronos())
System.out.println("Background agents are disabled");
else
System.out.println("Background agents are enabled");
if (replication.isAbstract())

Chapter 10: Java Classes A–Z 2131


Replication class

System.out.println("Truncate large documents and


remove attachments");
else
System.out.println
("Do not truncate large documents and keep
attachments");
if (replication.isCutoffDelete()) {
System.out.println("Cutoff date is "
+ replication.getCutoffDate());
System.out.println("Cutoff interval is " +
replication.getCutoffInterval()); }
else
System.out.println("Cutoff delete not in effect");
if (replication.isDoNotBrowse())
System.out.println("Do not show in \"Open Database\"
box");
else
System.out.println("Show in \"Open Database\" box");
if (replication.isDoNotCatalog())
System.out.println("Do not list in catalog.nsf");
else
System.out.println("List in catalog.nsf");
if (replication.isHideDesign())
System.out.println("Hide design");
else
System.out.println("Do not hide design");
if (replication.isIgnoreDeletes())
System.out.println("Do not replicate deletions");
else
System.out.println("Replicate deletions");
if (replication.isIgnoreDestDeletes())
System.out.println
("Do not replicate destination deletions");
else
System.out.println("Replicate destination deletions");
if (replication.isMultiDbIndex())
System.out.println("Allow in multi-database
indexing");
else
System.out.println
("Do not allow in multi-database indexing");

} catch(Exception e) {
e.printStackTrace();
}
}
}

2132 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Replication class

IsAbstract property
Read-write. Indicates if large documents should be truncated and
attachments removed during replication.

Defined in
Replication

Data type
boolean

Syntax
public boolean isAbstract()
throws NotesException
public void setAbstract(boolean bValue)
throws NotesException

Legal values
True to truncate large documents and remove attachments
False to replicate large documents in their entirety

Example: IsAbstract property


This agent toggles the IsAbstract property.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Replication replication = db.getReplicationInfo();
if (replication.isAbstract())
replication.setAbstract(false);
else
replication.setAbstract(true);
replication.save();
System.out.println("Abstract = " +
replication.isAbstract());
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 2133


Replication class

CutoffDate property
Read-only. Today’s date plus the cutoff interval.

Defined in
Replication

Data type
DateTime

Syntax
public DateTime getCutoffDate()
throws NotesException

Example: CutoffDate, IsCutoffDelete, and CutoffInterval properties


This agent sets a cutoff date based on the agent comment.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
Database db = agentContext.getCurrentDatabase();
Replication replication = db.getReplicationInfo();
if (agent.getComment() == null) {
replication.setCutoffDelete(false);
System.out.println("No cutoff date"); }
else {
Integer i = new Integer(agent.getComment());
replication.setCutoffDelete(true);
replication.setCutoffInterval(i.longValue());
System.out.println("Cutoff date is " +
replication.getCutoffDate()); }
replication.save();
} catch(Exception e) {
e.printStackTrace();
}
}
}

2134 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Replication class

CutoffInterval property
Read-write. Number of days after which documents are automatically
deleted if isCutoffDelete is in effect.

Defined in
Replication

Data type
long

Syntax
public long getCutoffInterval()
throws NotesException
public void setCutoffInterval(long interval)
throws NotesException

IsCutoffDelete property
Read-write. Indicates if documents that are older than the cutoff date
should be automatically deleted.

Defined in
Replication

Data type
boolean

Syntax
public boolean isCutoffDelete()
throws NotesException
public void setCutoffDelete(boolean bValue)
throws NotesException

Legal values
True to automatically delete documents that are older than the
cutoff date
False to not delete old documents

Chapter 10: Java Classes A–Z 2135


Replication class

IsDisabled property
Read-write. Indicates if replication is disabled.

Defined in
Replication

Data type
boolean

Syntax
public boolean isDisabled()
throws NotesException
public void setDisabled(boolean bValue)
throws NotesException

Legal values
True to disable replication
False to enable replication

Usage
You can disable replication with this property and isNeverReplicate. This
property is accessible through the UI while isNeverReplicate is not.

Example: IsDisabled property, IsNeverReplicate property, clearHistory


method, save method
This agent clears the replication history and disables replication. If the agent
comment is “NEVER,” replication is disabled so that it cannot be enabled
through the UI.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
Database db = agentContext.getCurrentDatabase();
Replication replication = db.getReplicationInfo();
replication.clearHistory();
replication.setDisabled(true);
if (agent.getComment() != null)
if (agent.getComment().equalsIgnoreCase("NEVER"))
replication.setNeverReplicate(true);

2136 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Replication class

replication.save();
} catch(Exception e) {
e.printStackTrace();
}
}
}

IsDoNotBrowse property
Read-write. Indicates if a database should not be shown in the “Open
Database” dialog box.

Defined in
Replication

Data type
boolean

Syntax
public boolean isDoNotBrowse()
throws NotesException
public void setDoNotBrowse(boolean bValue)
throws NotesException

Legal values
True to not show the database in the “Open Database” dialog box
False to how the database in the “Open Database” dialog box

Example: IsDoNotBrowse property


This agent toggles the IsDoNotBrowse property.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Replication replication = db.getReplicationInfo();
if (replication.isDoNotBrowse())
replication.setDoNotBrowse(false);
else
replication.setDoNotBrowse(true);
replication.save();
System.out.println("DoNotBrowse = " +

Chapter 10: Java Classes A–Z 2137


Replication class

replication.isDoNotBrowse());
} catch(Exception e) {
e.printStackTrace();
}
}
}

IsDoNotCatalog property
Read-write. Indicates if a database should not be listed in the database
catalog (catalog.nsf).

Defined in
Replication

Data type
boolean

Syntax
public boolean isDoNotCatalog()
throws NotesException
public void setDoNotCatalog(boolean bValue)
throws NotesException

Legal values
True to not list the database in the database catalog
False to list the database in the database catalog

Example: IsDoNotCatalog property


This agent toggles the IsDoNotCatalog property.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Replication replication = db.getReplicationInfo();
if (replication.isDoNotCatalog())
replication.setDoNotCatalog(false);
else
replication.setDoNotCatalog(true);
replication.save();
System.out.println("DoNotCatalog = " +

2138 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Replication class

replication.isDoNotCatalog());
} catch(Exception e) {
e.printStackTrace();
}
}
}

IsHideDesign property
Read-write. Indicates if a database design should be hidden.

Defined in
Replication

Data type
boolean

Syntax
public boolean isHideDesign()
throws NotesException
public void setHideDesign(boolean bValue)
throws NotesException

Legal values
True to hide the database design
False to not hide the database design

Example: IsHideDesign property


This agent toggles the IsHideDesign property.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Replication replication = db.getReplicationInfo();
if (replication.isHideDesign())
replication.setHideDesign(false);
else
replication.setHideDesign(true);
replication.save();
System.out.println("HideDesign = " +
replication.isHideDesign());

Chapter 10: Java Classes A–Z 2139


Replication class

} catch(Exception e) {
e.printStackTrace();
}
}
}

IsIgnoreDeletes property
Read-write. Indicates if deletions should not be replicated.

Defined in
Replication

Data type
boolean

Syntax
public boolean isIgnoreDeletes()
throws NotesException
public void setIgnoreDeletes(boolean bValue)
throws NotesException

Legal values
True to not replicate deletions
False to replicate deletions

Example: IsIgnoreDeletes property


This agent toggles the IsIgnoreDeletes property.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Replication replication = db.getReplicationInfo();
if (replication.isIgnoreDeletes())
replication.setIgnoreDeletes(false);
else
replication.setIgnoreDeletes(true);
replication.save();
System.out.println("IgnoreDeletes = " +

2140 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Replication class

replication.isIgnoreDeletes());
} catch(Exception e) {
e.printStackTrace();
}
}
}

IsIgnoreDestDeletes property
Read-write. Indicates if deletions should not be replicated to destination
databases.

Defined in
Replication

Data type
boolean

Syntax
public boolean isIgnoreDestDeletes()
throws NotesException
public void setIgnoreDestDeletes(boolean bValue)
throws NotesException

Legal values
True to not replicate deletions to destination databases
False to replicate deletions to destination databases

Example: IsIgnoreDestDeletes property


This agent toggles the IsIgnoreDestDeletes property.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Replication replication = db.getReplicationInfo();
if (replication.getIsIgnoreDestDeletes())
replication.setIgnoreDestDeletes(false);
else
replication.setIgnoreDestDeletes(true);
replication.save();
System.out.println("IgnoreDestDeletes = " +

Chapter 10: Java Classes A–Z 2141


Replication class

replication.isIgnoreDestDeletes());
} catch(Exception e) {
e.printStackTrace();
}
}
}

IsMultiDbIndex property
Read-write. Indicates if a database can be included in multi-database
indexing.

Defined in
Replication

Data type
boolean

Syntax
public boolean isMultiDbIndex()
throws NotesException
public void setMultiDbIndex(boolean bValue)
throws NotesException

Legal values
True to include the database in multi-database indexing
False to not include the database in multi-database indexing

Example: IsMultiDbIndex property


This agent toggles the IsMultiDbIndexing property.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Replication replication = db.getReplicationInfo();
if (replication.isMultiDbIndex())
replication.setMultiDbIndex(false);
else
replication.setMultiDbIndex(true);
replication.save();
System.out.println("MultiDbIndex = " +

2142 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Replication class

replication.isMultiDbIndex());
} catch(Exception e) {
e.printStackTrace();
}
}
}

IsNeverReplicate property
Read-write. Indicates if replication is disabled.

Defined in
Replication

Data type
boolean

Syntax
public boolean isNeverReplicate()
throws NotesException
public void setNeverReplicate(boolean bValue)
throws NotesException

Legal values
True to disable replication
False to enable replication

Usage
You can disable replication with this property and isDisabled. This property
is not accessible through the UI while isDisabled is.

IsNoChronos property
Read-write. Indicates if background agents are disabled.

Defined in
Replication

Data type
boolean

Chapter 10: Java Classes A–Z 2143


Replication class

Syntax
public boolean isNoChronos()
throws NotesException
public void setNoChronos(boolean bValue)
throws NotesException

Legal values
True to disable background agents
False to enable background agents

Example: IsNoChronos property


This agent toggles the IsNoChronos property.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Replication replication = db.getReplicationInfo();
if (replication.isNoChronos())
replication.setNoChronos(false);
else
replication.setNoChronos(true);
replication.save();
System.out.println("NoChronos = " +
replication.isNoChronos());
} catch(Exception e) {
e.printStackTrace();
}
}
}

Priority property
Read-write. Replication priority.

Defined in
Replication

Data type
int

2144 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Replication class

Syntax
public int getPriority()
throws NotesException
public void setPriority(int priority)
throws NotesException

Legal values
Replication.DB_REPLICATION_PRIORITY_HIGH
Replication.DB_REPLICATION_PRIORITY_LOW
Replication.DB_REPLICATION_PRIORITY_MED
Replication.DB_REPLICATION_PRIORITY_NOTSET

Example: Priority property


This agent changes the replication priority depending on the agent
comment.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
Database db = agentContext.getCurrentDatabase();
Replication replication = db.getReplicationInfo();
if (agent.getComment() == null) {
replication.setPriority
(Replication.CNOTES_REPLCONST_PRIORITYNOTSET);
System.out.println("Priority is not set"); }
else if (agent.getComment().equalsIgnoreCase("HIGH")) {
replication.setPriority
(Replication.CNOTES_REPLCONST_PRIORITYHIGH);
System.out.println("Priority is high"); }
else if (agent.getComment().equalsIgnoreCase("LOW")) {
replication.setPriority
(Replication.CNOTES_REPLCONST_PRIORITYLOW);
System.out.println("Priority is low"); }
else if (agent.getComment().equalsIgnoreCase("MEDIUM")) {
replication.setPriority
(Replication.CNOTES_REPLCONST_PRIORITYMED);
System.out.println("Priority is medium"); }

Chapter 10: Java Classes A–Z 2145


Replication class

} catch(Exception e) {
e.printStackTrace();
}
}
}

clearHistory method
Clears the replication history.

Defined in
Replication

Syntax
public int clearHistory()
throws NotesException

reset method
Resets the replication properties to their last saved values.

Defined in
Replication

Syntax
public int reset()
throws NotesException

save method
Saves the replication properties. If you don’t call save before closing the
database, any changes to the replication properties are lost.

Defined in
Replication

Syntax
public int save()
throws NotesException

2146 Domino Designer Programming Guide, Volume 3: JavaScript Classes


RichTextItem class

RichTextItem class
Represents an item of type rich text.

Syntax
public class RichTextItem extends Item

Base class
Inherits from: Item

Containment
Contained by: Document
Contains: EmbeddedObject and RichTextStyle

Property
EmbeddedObjects through getEmbeddedObjects

Methods
addNewLine
addPageBreak
addTab
appendDocLink
appendParagraphStyle
appendRTItem
appendStyle
appendText
embedObject
getEmbeddedObject
getFormattedText

Creation
To create a new RichTextItem object, use createRichTextItem in Document.

Chapter 10: Java Classes A–Z 2147


RichTextItem class

Access
To access an existing RichTextItem object, use getFirstItem in Document.
You must explicitly cast the return value to RichTextItem.
Because RichTextItem inherits from Item, all of the Item properties and
methods can be used on a RichTextItem, too.
When you change the value of a RichTextItem object, the change is not
written to disk until you call save for the parent Document object.

Examples: RichTextItem class


1. This agent creates a rich text item and appends text to it.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Document doc = db.createDocument();
Item subject = doc.replaceItemValue("Subject",
"Project description");
RichTextItem body = doc.createRichTextItem("Body");
body.appendText("Cartoon book for children
ages 9-12");
// Print text of subject and body
System.out.println(subject.getText());
System.out.println(body.getText());

// Save the document


doc.save(true, true);
} catch(Exception e) {
e.printStackTrace();
}
}
}

2. This agent gets a rich-text item.


import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =

2148 Domino Designer Programming Guide, Volume 3: JavaScript Classes


RichTextItem class

session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
Document doc = dc.getFirstDocument();
Item subject = doc.getFirstItem("Subject");
RichTextItem body =
(RichTextItem)doc.getFirstItem("Body");
// Print text of subject and body
System.out.println(subject.getText());
System.out.println(body.getText());
} catch(Exception e) {
e.printStackTrace();
}
}
}

EmbeddedObjects property
Read-only. All the embedded objects, object links, and file attachments
contained in a rich-text item.
Note EmbeddedObjects is not supported under OS/2, under UNIX, and
on the Macintosh.

Defined in
RichTextItem

Data type
java.util.Vector; elements are EmbeddedObject

Syntax
public java.util.Vector getEmbeddedObjects()
throws NotesException

Usage
This property includes OLE/1 and OLE/2 embedded objects and object
links as well as file attachments.
If you need access to OLE/2 embedded objects that exist on a document but
are not part of a rich-text item (for example, because the object was
originally created on the document’s form), use the EmbeddedObjects
property in Document.

Chapter 10: Java Classes A–Z 2149


RichTextItem class

Example: EmbeddedObjects property


This agent
import lotus.domino.*;
import java.util.Vector;
import java.util.Enumeration;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
Document doc = dc.getFirstDocument();
while (doc != null) {
RichTextItem body =
(RichTextItem)doc.getFirstItem("Body");
System.out.println(doc.getItemValueString("Subject"));
Vector v = body.getEmbeddedObjects();
Enumeration e = v.elements();
while (e.hasMoreElements()) {
EmbeddedObject eo = (EmbeddedObject)e.nextElement();
System.out.println("\t" + eo.getName());
}
doc = dc.getNextDocument();
}
} catch(NotesException e) {
System.out.println(e.id + " " + e.text);
e.printStackTrace();
}
}
}

addNewLine method
Appends one or more new lines (carriage returns) to the end of a rich-text
item.

Defined in
RichTextItem

2150 Domino Designer Programming Guide, Volume 3: JavaScript Classes


RichTextItem class

Syntax
public void addNewLine()
throws NotesException
public void addNewLine(int count)
throws NotesException
public void addNewLine(int count, boolean newparagraph)
throws NotesException

Parameters
int count

The number of new lines to append.


boolean newparagraph

If true (default), forces the new line to be a paragraph separator. If false,


the new line is added, but does not force a new paragragh.

Example: addNewLine, addPageBreak, addTab, and appendText


methods
This agent creates a rich-text item, appends text, and adds new lines, page
breaks, and tabs.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Document doc = db.createDocument();
Item subject = doc.replaceItemValue("Subject", "Rich text
item");
RichTextItem body = doc.createRichTextItem("Body");
body.appendText("This is the first sentence.");
body.appendText(" This is the second sentence.");
body.addNewLine(2);
body.appendText("This is a new paragraph.");
body.addPageBreak();
body.appendText("Column 1");
body.addTab();
body.appendText("Column 2");
body.addNewLine();
body.appendText("Element A1");
body.addTab();
body.appendText("Element B1");

Chapter 10: Java Classes A–Z 2151


RichTextItem class

body.addNewLine();
body.appendText("Element A2");
body.addTab();
body.appendText("Element B2");
// Save the document
doc.save(true, true);
} catch(Exception e) {
e.printStackTrace();
}
}
}

addPageBreak method
Appends a page break to the end of a rich-text item.

Defined in
RichTextItem

Syntax
public void addPageBreak()
throws NotesException
public void addPageBreak(RichTextParagraphStyle pstyle)
throws NotesException

Parameters
RichTextParagraphStyle pstyle
Starts the new page with the specified paragraph style.

addTab method
Appends one or more tabs to the end of a rich-text item.

Defined in
RichTextItem

Syntax
public void addTab()
throws NotesException
public void addTab(int count)
throws NotesException

2152 Domino Designer Programming Guide, Volume 3: JavaScript Classes


RichTextItem class

Parameter
int count

The number of tabs to append.

appendDocLink method
Adds a doclink to the end of a rich-text item.

Defined in
RichTextItem

Syntax
public void appendDocLink(Document doc)
throws NotesException
public void appendDocLink(Database db)
throws NotesException
public void appendDocLink(View vw)
throws NotesException
public void appendDocLink(Document doc, String comment)
throws NotesException
public void appendDocLink(Database db, String comment)
throws NotesException
public void appendDocLink(View vw, String comment)
throws NotesException
public void appendDocLink(Document doc, String comment, String
hotspottext)
throws NotesException
public void appendDocLink(Database db, String comment, String
hotspottext)
throws NotesException
public void appendDocLink(View vw, String comment, String
hotspottext)
throws NotesException

Parameters
Document doc

The document to which you want to link.


Database db

The database to which you want to link.

Chapter 10: Java Classes A–Z 2153


RichTextItem class

Database vw

The view to which you want to link.


String comment

The text that appears when a user presses and holds the mouse over the
link.
String hotspottext

Boxed text that appears that the user clicks to follow the link. This text
appears in place of a token.

Example: appendDocLink method


This agent creates a rich text field and appends doc links.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Document doc = db.createDocument();
doc.replaceItemValue("Subject", "Doc links");
doc.replaceItemValue("Form", "Memo");
RichTextItem body = doc.createRichTextItem("Body");
body.appendText("Here are the links:");
body.addNewLine(2);
body.appendDocLink(db, db.getTitle(), "Database link");
body.addNewLine();
body.appendDocLink(doc,
doc.getItemValueString("Subject"),
"Document link");
// Send the document
doc.send("Pierre LaPierre");
} catch(Exception e) {
e.printStackTrace();
}
}
}

2154 Domino Designer Programming Guide, Volume 3: JavaScript Classes


RichTextItem class

appendParagraphStyle method
Appends a paragraph style to the end of a rich text item. Text following the
paragraph style is rendered using the attributes of that paragraph style.

Defined in
RichTextItem

Syntax
public void appendParagraphFile(RichTextParagraphStyle pstyle)
throws NotesException

Parameter
RichTextParagraphStyle pstyle

The paragraph style to be appended.

Usage
See RichTextParagraphStyle for details and examples.

appendRTItem method
Appends the contents of one rich text item to the end of another rich text
item.

Defined in
RichTextItem

Syntax
public void appendRTItem(RichTextItem item)
throws NotesException

Parameter
RichTextItem item

The item to be appended. Cannot be null.

Example: appendRTItem method


This agent creates a rich text item and appends the contents of another rich
text item.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();

Chapter 10: Java Classes A–Z 2155


RichTextItem class

// (Your code goes here)


Database db = agentContext.getCurrentDatabase();
Document doc = db.createDocument();
doc.replaceItemValue("Subject", "Copy of first
document");
doc.replaceItemValue("Form", "Memo");
RichTextItem body = doc.createRichTextItem("Body");
body.appendText("Here is the body of the first
document:");
body.addNewLine(2);
DocumentCollection dc = db.getAllDocuments();
Document doc1 = dc.getFirstDocument();
RichTextItem rti =
(RichTextItem)doc1.getFirstItem("Body");
body.(rti);
// Send the document
doc.send("Robert Perron");
} catch(NotesException e) {
System.out.println(e.id + " " + e.text);
e.printStackTrace();
}
}
}

appendStyle method
Appends a style to the end of a rich text item. Text following the style is
rendered using the attributes of that style until another style is appended.

Defined in
RichTextItem

Syntax
public void appendStyle(RichTextStyle style)
throws NotesException

Parameter
RichTextStyle style

The style to be appended.

Usage
This method does not affect text appended by appendRTItem.
See RichTextStyle for details and examples.

2156 Domino Designer Programming Guide, Volume 3: JavaScript Classes


RichTextItem class

appendText method
Appends text to the end of a rich text item. The text is rendered in the
current style of the item.

Defined in
RichTextItem

Syntax
public void appendText(String text)
throws NotesException

Parameter
String text

The text to append.

embedObject method
Given the name of a file or an application, does one of the following:
Attaches the file you specify to a rich-text item.
Embeds an object in a rich-text item. The object is created using either
the application or the file you specify.
Places an object link in a rich-text item. The link is created using the file
you specify.
Note EmbedObject is not supported under OS/2, under UNIX, or on
the Macintosh.

Defined in
RichTextItem

Syntax
public EmbeddedObject embedObject(int type, String class, String
source, String name)
throws NotesException

Parameters
int type

One of the following:


EmbeddedObject.EMBED_ATTACHMENT
EmbeddedObject.EMBED_OBJECT
EmbeddedObject.EMBED_OBJECTLINK

Chapter 10: Java Classes A–Z 2157


RichTextItem class

String class

If you are using EMBED_OBJECT and want to create an empty


embedded object from an application, use this parameter to specify
the name of the application (for example, “123Worksheet”) and
specify null for source. Case sensitive.
If you are using EMBED_OBJECTLINK or EMBED_ATTACHMENT,
specify an empty string (“”).
String source

If you are using EMBED_OBJECT and want to create an embedded


object from a file, use this parameter to specify the name of the file,
and specify null for class.
If you are using EMBED_ATTACHMENT or EMBED_OBJECTLINK,
use this parameter to specify the name of the file to attach or link.
String name

String. Name by which you can reference the EmbeddedObject later.


Can be null.

Return value
EmbeddedObject

The newly attached file, embedded object, or linked object.

Usage
Files can be attached on any supported platform, but objects and links can
only be created on platforms supporting OLE.
Files can be embedded as OLE/2 objects only on platforms supporting OLE,
but they can be embedded as OLE/1 objects on any supported platform (if
the file is of a supported type, such as a Lotus® application data file).

Example: embedObject method


This agent creates a rich-text item and embeds an attachment.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Document doc = db.createDocument();
doc.replaceItemValue("Subject", "Attachment");
RichTextItem body = doc.createRichTextItem("Body");

2158 Domino Designer Programming Guide, Volume 3: JavaScript Classes


RichTextItem class

body.appendText("Here is the attachment:");


body.addNewLine(2);
body.embedObject(EmbeddedObject.EMBED_ATTACHMENT,
null, "c:\\notesr50\\notes.ini", "notesini");
// Save the document
doc.save(true, true);
} catch(NotesException e) {
System.out.println(e.id + " " + e.text);
e.printStackTrace();
}
}
}

getEmbeddedObject method
Given the name of a file attachment, embedded object, or object link in a
rich-text item, returns the corresponding EmbeddedObject.
Note getEmbeddedObject is not supported under OS/2, under UNIX, and
on the Macintosh.

Defined in
RichTextItem

Syntax
public EmbeddedObject getEmbeddedObject(String name)
throws NotesException

Parameter
String name

String. The name of the object to find.


To find a file attachment, specify its file name. Specify just the file
name not the full path.
To find an embedded object or object link, use the name of the object
or link as it appears in the InfoBox, or as designated in the
embedObject method.

Return value
EmbeddedObject

The object, if found. Otherwise, returns null.

Usage
If you modify the object returned by getEmbeddedObject, the changes are
saved but the rendering of the object in the Domino document is not
updated until you manually activate the object.

Chapter 10: Java Classes A–Z 2159


RichTextItem class

Example: getEmbeddedObject method


This agent examines the documents in a database to see which ones contain
a specified embedded object.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
Document doc = dc.getFirstDocument();
while (doc != null) {
RichTextItem body =
(RichTextItem)doc.getFirstItem("Body");
if (body.getEmbeddedObject("notes.ini") != null)
System.out.println("Found notes.ini in " +
doc.getItemValueString("Subject"));
doc = dc.getNextDocument();
}
} catch(NotesException e) {
System.out.println(e.id + " " + e.text);
e.printStackTrace();
}
}
}

getFormattedText method
Returns the contents of a rich-text item as plain text.

Defined in
RichTextItem

Syntax
public String getFormattedText(boolean tabstrip, int linelen, int
maxlen)
throws NotesException

Parameters
boolean tabstrip

If true, tabs are stripped out. If false, tabs are not stripped out.

2160 Domino Designer Programming Guide, Volume 3: JavaScript Classes


RichTextItem class

int linelen

Number of characters at which to wrap lines of text. Set to 0 for the


default. Use this parameter only if the line contains whitespace. For
example, “This is a school.” Words without whitespace will not be
wrapped.
int maxlen

Maximum number of characters to return. Set to 0 for the default.

Return value
String

The contents of the rich-text item, as plain text.

Usage
This method strips out non-text data, such as bitmaps and file attachments.

Example: GetFormattedText method


This agent gets the formatted text from a rich-text item.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
Document doc = dc.getFirstDocument();
while (doc != null) {
RichTextItem body =
(RichTextItem)doc.getFirstItem("Body");
System.out.println(doc.getItemValueString("Subject"));
System.out.println(body.getFormattedText(false, 0, 0) +
"\n");
doc = dc.getNextDocument();
}
} catch(NotesException e) {
System.out.println(e.id + " " + e.text);
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 2161


RichTextParagraphStyle class

RichTextParagraphStyle class
Represents rich text paragraph attributes.

Syntax
public class RichTextParagraphStyle extends Base

Containment
Contained by: Session

Properties
Alignment through getAlignment and setAlignment
FirstLineLeftMargin through getFirstLineLeftMargin and
setFirstLineLeftMargin
InterLineSpacing through getInterLineSpacing and setInterLineSpacing
LeftMargin through getLeftMargin and setLeftMargin
Pagination through getPagination and setPagination
RightMargin through getRightMargin and setRightMargin
SpacingAbove through getSpacingAbove and setSpacingAbove
SpacingBelow through getSpacingBelow and setSpacingBelow
Tabs through getTabs

Methods
clearAllTabs
setTab
setTabs

Creation and access


To create a new RichTextParagraphStyle object, use
createRichTextParagraphStyle in Session.
Use a RichTextParagraphStyle object with appendParagraphStyle of
RichTextItem. Text that follows a rich text paragraph style assumes the
attributes of the rich text paragraph style.

Example: RichTextParagraphStyle class


This agent defines two rich-text paragraph styles and applies each.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {

2162 Domino Designer Programming Guide, Volume 3: JavaScript Classes


RichTextParagraphStyle class

try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Document doc = db.createDocument();
Item subject = doc.replaceItemValue
("Subject", "Rich text paragraph style");
RichTextItem body = doc.createRichTextItem("Body");
RichTextParagraphStyle h = headerStyle(session);
RichTextParagraphStyle b = bodyStyle(session);
body.appendParagraphStyle(h);
body.appendText("Header");
body.appendParagraphStyle(b);
for (int i=0; i<16; i++)
body.appendText("Line one of body. ");
body.addNewLine();
for (int i=0; i<16; i++)
body.appendText("Line two of body. ");
// Save the document
doc.save(true, true);
} catch(Exception e) {
e.printStackTrace();
}
}

RichTextParagraphStyle headerStyle(Session s) {
RichTextParagraphStyle r=null;
try {
r = s.createRichTextParagraphStyle();
r.setAlignment(RichTextParagraphStyle.ALIGN_CENTER);
r.setPagination
(RichTextParagraphStyle.PAGINATE_KEEP_WITH_NEXT);
r.setSpacingAbove
(RichTextParagraphStyle.SPACING_SINGLE);
r.setSpacingBelow(
RichTextParagraphStyle.SPACING_DOUBLE);

} catch(Exception e) {
e.printStackTrace();
}

return r;
}

RichTextParagraphStyle bodyStyle(Session s) {
RichTextParagraphStyle r=null;
try {
r = s.createRichTextParagraphStyle();

Chapter 10: Java Classes A–Z 2163


RichTextParagraphStyle class

r.setAlignment(RichTextParagraphStyle.ALIGN_LEFT);
r.setSpacingAbove(RichTextParagraphStyle.SPACING_SINGLE);
r.setSpacingBelow
(RichTextParagraphStyle.SPACING_ONE_POINT_50);
r.setInterLineSpacing(RichTextParagraphStyle.SPACING_SINGLE);
r.setLeftMargin(RichTextParagraphStyle.RULER_ONE_INCH);
r.setFirstLineLeftMargin
((int)(RichTextParagraphStyle.RULER_ONE_INCH * 1.5));
r.setRightMargin(0);

} catch(Exception e) {
e.printStackTrace();
}

return r;
}
}

Alignment property
Read-write. Horizontal alignment of text in each paragraph.

Defined in
RichTextParagraphStyle

Data type
int

Syntax
public int getAlignment()
throws NotesException
public void setAlignment(int value)
throws NotesException

Legal values
RichTextParagraphStyle.ALIGN_CENTER
RichTextParagraphStyle.ALIGN_FULL
RichTextParagraphStyle.ALIGN_LEFT
RichTextParagraphStyle.ALIGN_NOWRAP
RichTextParagraphStyle.ALIGN_RIGHT

2164 Domino Designer Programming Guide, Volume 3: JavaScript Classes


RichTextParagraphStyle class

FirstLineLeftMargin property
Read-write. Left margin of first line of each paragraph.

Defined in
RichTextParagraphStyle

Data type
int

Syntax
public int getFirstLineLeftMargin()
throws NotesException
public void setFirstLineLeftMargin(int value)
throws NotesException

Legal values
RichTextParagraphStyle.RULER_ONE_CENTIMETER
RichTextParagraphStyle.RULER_ONE_INCH

Usage
You can apply arithmetic to the constants to obtain other measurements.
For example, RULER_ONE_CENTIMETER * 2 for two centimeters or
(int)(RULER_ONE_INCH * 0.75) for three-quarters of an inch. The actual
int value is in “twips,” where one centimeter is 537 twips and one inch is
1440 twips.

InterLineSpacing property
Read-write. Vertical spacing between lines in each paragraph.

Defined in
RichTextParagraphStyle

Data type
int

Syntax
public int getInterLineSpacing()
throws NotesException
public void setInterLineSpacing(int value)
throws NotesException

Chapter 10: Java Classes A–Z 2165


RichTextParagraphStyle class

Legal values
RichTextParagraphStyle.SPACING_DOUBLE
RichTextParagraphStyle.SPACING_ONE_POINT_50
RichTextParagraphStyle.SPACING_SINGLE

LeftMargin property
Read-write. Left margin of each line except the first in each paragraph.

Defined in
RichTextParagraphStyle

Data type
int

Syntax
public int getLeftMargin()
throws NotesException
public void setLeftMargin(int value)
throws NotesException

Legal values
RichTextParagraphStyle.RULER_ONE_CENTIMETER
RichTextParagraphStyle.RULER_ONE_INCH

Usage
You can apply arithmetic to the constants to obtain other measurements.
For example, RULER_ONE_CENTIMETER * 2 for two centimeters or
(int)(RULER_ONE_INCH * 0.75) for three-quarters of an inch. The actual
int value is in “twips,” where one centimeter is 537 twips and one inch is
1440 twips.

Pagination property
Read-write. How page breaks affect each paragraph.

Defined in
RichTextParagraphStyle

Data type
int

2166 Domino Designer Programming Guide, Volume 3: JavaScript Classes


RichTextParagraphStyle class

Syntax
public int getPagination()
throws NotesException
public void setPagination(int value)
throws NotesException

Legal values
RichTextParagraphStyle.PAGINATE_BEFORE
RichTextParagraphStyle.PAGINATE_DEFAULT
RichTextParagraphStyle.PAGINATE_KEEP_TOGETHER
RichTextParagraphStyle.PAGINATE_KEEP_WITH_NEXT

RightMargin property
Read-write. Right margin of each line in each paragraph.

Defined in
RichTextParagraphStyle

Data type
int

Syntax
public int getRightMargin()
throws NotesException
public void setRightMargin(int value)
throws NotesException

Legal values
RichTextParagraphStyle.RULER_ONE_CENTIMETER
RichTextParagraphStyle.RULER_ONE_INCH

Usage
You can apply arithmetic to the constants to obtain other measurements.
For example, RULER_ONE_CENTIMETER * 2 for two centimeters or
(int)(RULER_ONE_INCH * 0.75) for three-quarters of an inch. The actual
int value is in “twips,” where one centimeter is 537 twips and one inch is
1440 twips.

Chapter 10: Java Classes A–Z 2167


RichTextParagraphStyle class

SpacingAbove property
Read-write. Vertical spacing above each paragraph.

Defined in
RichTextParagraphStyle

Data type
int

Syntax
public int getSpacingAbove()
throws NotesException
public void setSpacingAbove(int value)
throws NotesException

Legal values
RichTextParagraphStyle.SPACING_DOUBLE
RichTextParagraphStyle.SPACING_ONE_POINT_50
RichTextParagraphStyle.SPACING_SINGLE

SpacingBelow property
Read-write. Vertical spacing below each paragraph.

Defined in
RichTextParagraphStyle

Data type
int

Syntax
public int getSpacingBelow()
throws NotesException
public void setSpacingBelow(int value)
throws NotesException

Legal values
RichTextParagraphStyle.SPACING_DOUBLE
RichTextParagraphStyle.SPACING_ONE_POINT_50
RichTextParagraphStyle.SPACING_SINGLE

2168 Domino Designer Programming Guide, Volume 3: JavaScript Classes


RichTextParagraphStyle class

Tabs property
Read-only. Tabs in a rich-text paragraph style.

Defined in
RichTextParagraphStyle

Data type
java.util.Vector; elements are RichTextTab

Syntax
public java.util.Vector getTabs()
throws NotesException

Return value
java.util.Vector

A vector of RichTextTab elements representing the tabs in the rich-text


paragraph style.

Usage
See RichTextTab for additional information and an example.

clearAllTabs method
Clears all tabs in a rich-text paragraph style.

Defined in
RichTextParagraphStyle

Syntax
public void clearAllTabs()
throws NotesException

Usage
See RichTextTab for additional information and an example.

Chapter 10: Java Classes A–Z 2169


RichTextParagraphStyle class

setTab method
Sets a tab in a rich-text paragraph style.

Defined in
RichTextParagraphStyle

Syntax
public void setTab(int position, int type)
throws NotesException

Parameters
int position

RichTextParagraphStyle.RULER_ONE_CENTIMETER
RichTextParagraphStyle.RULER_ONE_INCH
int type

RichTextParagraphStyle.TAB_CENTER
RichTextParagraphStyle.TAB_DECIMAL
RichTextParagraphStyle.TAB_LEFT
RichTextParagraphStyle.TAB_RIGHT

Usage
See RichTextTab for additional information and an example.
You can apply arithmetic to the position constants to obtain other
measurements. For example, RULER_ONE_CENTIMETER * 2 for two
centimeters or (int)(RULER_ONE_INCH * 0.75) for three-quarters of an
inch. The actual int value is in “twips,” where one centimeter is 537 twips
and one inch is 1440 twips.

setTabs method
Sets tabs at even intervals in a rich-text paragraph style.

Defined in
RichTextParagraphStyle

2170 Domino Designer Programming Guide, Volume 3: JavaScript Classes


RichTextParagraphStyle class

Syntax
public void setTabs(int count, int startpos, int interval)
throws NotesException
public void setTabs(int count, int startpos, int interval, int type)
throws NotesException

Parameters
int count

Number of tabs to be set.


int startpos

RichTextParagraphStyle.RULER_ONE_CENTIMETER
RichTextParagraphStyle.RULER_ONE_INCH
int interval

RichTextParagraphStyle.RULER_ONE_CENTIMETER
RichTextParagraphStyle.RULER_ONE_INCH
int type

RichTextParagraphStyle.TAB_CENTER
RichTextParagraphStyle.TAB_DECIMAL
RichTextParagraphStyle.TAB_LEFT
RichTextParagraphStyle.TAB_RIGHT

Usage
See RichTextTab for additional information and an example.
You can apply arithmetic to the position and interval constants to obtain
other measurements. For example, RULER_ONE_CENTIMETER * 2 for two
centimeters or (int)(RULER_ONE_INCH * 0.75) for three-quarters of an
inch. The actual int value is in “twips,” where one centimeter is 537 twips
and one inch is 1440 twips.

Chapter 10: Java Classes A–Z 2171


RichTextStyle class

RichTextStyle class
Represents rich text attributes.

Syntax
public class RichTextStyle extends Base

Containment
Contained by: Session and RichTextItem

Properties
Bold through getBold and setBold
Color through getColor and setColor
Effects through getEffects and setEffects
Font through getFont and setFont
FontSize through getFontSize and setFontSize
Italic through getItalic and setItalic
Parent through getParent
PassThruHTML through getPassThruHTML and setPassThruHTML
StrikeThrough through getStrikeThrough and setStrikeThrough
Underline through getUnderline and setUnderline

Creation and access


To create a new RichTextStyle object, use createRichTextStyle in Session.
Use a RichTextStyle object with appendStyle of RichTextItem. Text that
follows a rich-text style assumes the attributes of the rich-text style.
At creation, all the RichTextStyle properties are STYLE_NO_CHANGE.

Example: RichTextStyle class, and Bold, Color, Effects, Font,


FontSize, Italic, Parent, StrikeThrough, and Underline properties
This agent writes a text using various styles.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Document doc = db.createDocument();

2172 Domino Designer Programming Guide, Volume 3: JavaScript Classes


RichTextStyle class

Item subject = doc.replaceItemValue("Subject",


"Rich text tab");
RichTextItem body = doc.createRichTextItem("Body");
// Create and define styles
RichTextStyle header = session.createRichTextStyle();
header.setBold(RichTextStyle.YES);
header.setColor(RichTextStyle.COLOR_DARK_BLUE);
header.setEffects(RichTextStyle.EFFECTS_SHADOW);
header.setFont(RichTextStyle.FONT_ROMAN);
header.setFontSize(14);
RichTextStyle byline = session.createRichTextStyle();
byline.setBold(RichTextStyle.NO);
byline.setColor(RichTextStyle.COLOR_BLACK);
byline.setEffects(RichTextStyle.EFFECTS_NONE);
byline.setItalic(RichTextStyle.YES);
byline.setFontSize(10);
RichTextStyle normal = session.createRichTextStyle();
normal.setItalic(RichTextStyle.NO);
normal.setUnderline(RichTextStyle.NO);
normal.setStrikeThrough(RichTextStyle.NO);
RichTextStyle underline = session.createRichTextStyle();
underline.setUnderline(RichTextStyle.YES);
RichTextStyle strike = session.createRichTextStyle();
strike.setStrikeThrough(RichTextStyle.YES);
// Generate Body item
body.appendStyle(header);
body.appendText("Header");
body.addNewLine();
body.appendStyle(byline);
body.appendText("by " +
byline.getParent().getCommonUserName());
body.addNewLine(2);
body.appendStyle(normal);
for (int i=0; i<11; i++)
body.appendText("Sentence of normal text. ");
body.appendStyle(underline);
body.appendText("Underlined text.");
body.appendStyle(normal);
for (int i=0; i<11; i++)
body.appendText(" Sentence of normal text.");
body.appendText(" ");
body.appendStyle(strike);
body.appendText("Strikethrough text.");
body.appendStyle(normal);
for (int i=0; i<11; i++)
body.appendText(" Sentence of normal text.");

Chapter 10: Java Classes A–Z 2173


RichTextStyle class

// Save the document


doc.save(true, true);
} catch(NotesException e) {
System.out.println(e.id + " " + e.text);
e.printStackTrace();
}
}
}

Bold property
Read-write. Bold rich-text attribute.

Defined in
RichTextStyle

Data type
int

Syntax
public int getBold()
throws NotesException
public void setBold(int value)
throws NotesException

Legal values
RichTextStyle.YES for bold
RichTextStyle.NO for non-bold
RichTextStyle.STYLE_NO_CHANGE to maintain previous state
RichTextStyle.MAYBE to maintain previous state

Color property
Read-write. Color rich-text attribute as listed below.

Defined in
RichTextStyle

Data type
int

2174 Domino Designer Programming Guide, Volume 3: JavaScript Classes


RichTextStyle class

Syntax
public int getColor()
throws NotesException
public void setColor(int value)
throws NotesException

Legal values
RichTextStyle.COLOR_BLACK
RichTextStyle.COLOR_BLUE
RichTextStyle.COLOR_CYAN
RichTextStyle.COLOR_DARK_BLUE
RichTextStyle.COLOR_DARK_CYAN
RichTextStyle.COLOR_DARK_GREEN
RichTextStyle.COLOR_DARK_MAGENTA
RichTextStyle.COLOR_DARK_RED
RichTextStyle.COLOR_DARK_YELLOW
RichTextStyle.COLOR_GRAY
RichTextStyle.COLOR_GREEN
RichTextStyle.COLOR_LIGHT_GRAY
RichTextStyle.COLOR_MAGENTA
RichTextStyle.COLOR_RED
RichTextStyle.COLOR_WHITE
RichTextStyle.COLOR_YELLOW
RichTextStyle.STYLE_NO_CHANGE to maintain the previous state
RichTextStyle.MAYBE to maintain previous state

Effects property
Read-write. Effects as listed below.

Defined in
RichTextStyle

Data type
int

Chapter 10: Java Classes A–Z 2175


RichTextStyle class

Syntax
public int getEffects()
throws NotesException
public void setEffects(int value)
throws NotesException

Legal values
RichTextStyle.EFFECTS_EMBOSS
RichTextStyle.EFFECTS_EXTRUDE
RichTextStyle.EFFECTS_NONE
RichTextStyle.EFFECTS_SHADOW
RichTextStyle.EFFECTS_SUBSCRIPT
RichTextStyle.EFFECTS_SUPERSCRIPT
RichTextStyle.STYLE_NO_CHANGE to maintain the previous state
RichTextStyle.MAYBE to maintain previous state

Font property
Read-write. Font rich-text attribute as listed below.

Defined in
RichTextStyle

Data type
int

Syntax
public int getFont()
throws NotesException
public void setFont(int value)
throws NotesException

Legal values
RichTextStyle.FONT_COURIER
RichTextStyle.FONT_HELV
RichTextStyle.FONT_ROMAN
RichTextStyle.STYLE_NO_CHANGE to maintain the previous state
RichTextStyle.MAYBE to maintain previous state

2176 Domino Designer Programming Guide, Volume 3: JavaScript Classes


RichTextStyle class

FontSize property
Read-write. Font size in points.

Defined in
RichTextStyle

Data type
int

Syntax
public int getFontSize()
throws NotesException
public void setFontSize(int value)
throws NotesException

Legal values
An integer value in the range 1-250 representing a font size
RichTextStyle.STYLE_NO_CHANGE to maintain the previous state
RichTextStyle.MAYBE to maintain previous state

Italic property
Read-write. Italic rich-text attribute.

Defined in
RichTextStyle

Data type
int

Syntax
public int getItalic()
throws NotesException
public void setItalic(int value)
throws NotesException

Legal values
RichTextStyle.YES for italic
RichTextStyle.NO for non-italic
RichTextStyle.STYLE_NO_CHANGE to maintain the previous state
RichTextStyle.MAYBE to maintain previous state

Chapter 10: Java Classes A–Z 2177


RichTextStyle class

Parent property
Read-only. The session that contains a RichTextStyle object.

Defined in
RichTextStyle

Data type
Session

Syntax
public Session getParent()
throws NotesException

StrikeThrough property
Read-write. Strikethrough rich-text attribute.

Defined in
RichTextStyle

Data type
int

Syntax
public int getStrikeThrough()
throws NotesException
public void setStrikeThrough(int value)
throws NotesException

Legal values
RichTextStyle.YES for strikethrough
RichTextStyle.NO for non-strikethrough
RichTextStyle.STYLE_NO_CHANGE to maintain the previous state
RichTextStyle.MAYBE to maintain previous state

2178 Domino Designer Programming Guide, Volume 3: JavaScript Classes


RichTextTab class

Underline property
Read-write. Underline rich-text attribute.

Defined in
RichTextStyle

Data type
int

Syntax
public int getUnderline()
throws NotesException
public void setUnderline(int value)
throws NotesException

Legal values
RichTextStyle.YES for underline
RichTextStyle.NO for non-underline
RichTextStyle.STYLE_NO_CHANGE to maintain the previous state
RichTextStyle.MAYBE to maintain previous state

RichTextTab class
Represents a tab in a rich text paragraph style.

Syntax
public class RichTextTab extends Base

Containment
Contained by: RichTextParagraphStyle

Properties
Position through getPosition
Type through getType

Methods
clear

Creation and access


To create a RichTextTab object, use getTabs in RichTextParagraphStyle.
To set tabs, use setTab and setTabs in RichTextParagraphStyle.

Chapter 10: Java Classes A–Z 2179


RichTextTab class

To clear tabs, use clear in RichTextTab and clearAllTabs in


RichTextParagraphStyle.
To interrogate tabs, use getPosition and getType in RichTextTab.
To insert tabs in rich text, use addTab in RichTextItem.

Example: RichTextTab class


This agent sets tabs in a first rich text paragraph style, then copies the tabs
from the first style to a second rich text paragraph style and clears the last
tab. The agent then applies each style to a paragraph of text.
import lotus.domino.*;
import java.util.Vector;
import java.util.Enumeration;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Document doc = db.createDocument();
Item subject = doc.replaceItemValue("Subject",
"Rich text tab");
RichTextItem body = doc.createRichTextItem("Body");
RichTextParagraphStyle b1 =
session.createRichTextParagraphStyle();
RichTextParagraphStyle b2 =
session.createRichTextParagraphStyle();
// Define para style b1
b1.clearAllTabs();
b1.setTabs(3, RichTextParagraphStyle.RULER_ONE_INCH * 3,
RichTextParagraphStyle.RULER_ONE_INCH * 2,
RichTextParagraphStyle.TAB_LEFT);
// Set b2 tabs same as b1
b2.clearAllTabs();
Enumeration b1tabs = b1.getTabs().elements();
while (b1tabs.hasMoreElements()) {
RichTextTab b1tab = (RichTextTab)b1tabs.nextElement();
b2.setTab(b1tab.getPosition(), b1tab.getType());
}
// Clear last tab
RichTextTab b2tab =
(RichTextTab)b2.getTabs().lastElement();
b2tab.clear();
// Append para style b1 and write para
body.appendParagraphStyle(b1);
body.appendText("Column 1");

2180 Domino Designer Programming Guide, Volume 3: JavaScript Classes


RichTextTab class

body.addTab();
body.appendText("Column 2");
body.addTab();
body.appendText("Column 3");
body.addTab();
body.appendText("Column 4");
// Append para style b2 and write para
body.appendParagraphStyle(b2);
body.appendText("Column 1");
body.addTab();
body.appendText("Column 2");
body.addTab();
body.appendText("Column 3");
// Save the document
doc.save(true, true);
} catch(Exception e) {
e.printStackTrace();
}
}
}

Position property
Read-only. Position of a tab in a rich text paragraph style.

Defined in
RichTextTab

Data type
int

Syntax
public int getPosition()
throws NotesException

Legal values
RichTextParagraphStyle.RULER_ONE_CENTIMETER
RichTextParagraphStyle.RULER_ONE_INCH

Usage
You can apply arithmetic to the constants to obtain other measurements.
For example, RULER_ONE_CENTIMETER * 2 for two centimeters or
(int)(RULER_ONE_INCH * 0.75) for three-quarters of an inch.
The returned int value is in “twips,” where one centimeter is 537 twips and
one inch is 1440 twips.

Chapter 10: Java Classes A–Z 2181


Session class

Type property
Read-only. Type of tab.

Defined in
RichTextTab

Data type
int

Syntax
public int getType()
throws NotesException

Legal values
RichTextParagraphStyle.TAB_CENTER
RichTextParagraphStyle.TAB_DECIMAL
RichTextParagraphStyle.TAB_LEFT
RichTextParagraphStyle.TAB_RIGHT

clear method
Clears a tab.

Defined in
RichTextTab

Syntax
public void clear()
throws NotesException

Session class
Is the root of the Domino Objects containment hierarchy, providing access
to the other Domino objects, and represents the Domino environment of the
current program.

Syntax
public class Session extends Base
throws NotesException

2182 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Session class

Containment
Contained by: AgentBase, NotesFactory
Contains: AgentContext, Database, DateRange, DateTime, DbDirectory,
International, Log, Name, Newsletter, Registration,
RichTextParagraphStyle, RichTextStyle

Properties
AddressBooks through getAddressBooks
AgentContext through getAgentContext
CommonUserName through getCommonUserName
International through getInternational
IsOnServer through isOnServer
NotesVersion through getNotesVersion
Platform through getPlatform
ServerName through getServerName
UserName through getUserName
UserNameList through getUserNameList
UserNameObject through getUserNameObject

Methods
createDateRange
createDateTime
createLog
createName
createNewsletter
createRegistration
createRichTextParagraphStyle
createRichTextStyle
evaluate
freeTimeSearch
getDatabase
getDbDirectory
getEnvironmentString

Chapter 10: Java Classes A–Z 2183


Session class

getEnvironmentValue
getURLDatabase
resolve
setEnvironmentVar

Creation and access


For stand-alone applications, use one of the NotesFactory.createSession
methods.
For agents and applets, use AgentBase.getSession().
To access the current session from a Database object, use the Parent
property in Database

Usage
For a local session, the Session object represents the machine on which the
code is running. A reference to the current server such as a null server
parameter means the local Notes/Domino environment. You can access
servers connected to the local environment by specifying their names.
For a remote (IIOP) session, the Session object represents the Domino server
handling the remote requests. A reference to the current server such as a
null server parameter means that Domino server. You cannot access other
servers.

Example: Session class


This application creates a new Session object and accesses its properties.
import java.util.*;
import lotus.domino.*;
public class sessionprops extends NotesThread
{
public static void main(String argv[])
{
sessionprops t = new sessionprops();
t.start();
}
public void runNotes()
{
try
{
Session s = NotesFactory.createSession();
System.out.println("User name = " +
(String)s.getUserName());
Name no = s.getUserNameObject();
if (no.isHierarchical())
System.out.println("Common name = " +

2184 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Session class

(String)s.getCommonUserName());
System.out.println("Domino " +
(String)s.getNotesVersion() + " running on " +
(String)s.getPlatform());
System.out.println("***Address books***");
Database db;
Vector books = s.getAddressBooks();
Enumeration e = books.elements();
while (e.hasMoreElements()) {
db = (Database)e.nextElement();
String fn = db.getFileName();
String server;
if (db.getServer() != null)
server = db.getServer();
else
server = "Local";
String title = db.getTitle();
System.out.println(server + " " + fn + " \"" +
title + "\"");
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
}

AddressBooks property
Read-only. The Domino Directories and Personal Address Books that are
known to the current session.

Defined in
Session

Data type
java.util.Vector; elements are Database

Syntax
public java.util.Vector getAddressBooks()
throws NotesException

Usage
To find out if an address book is a Domino Directory or a Personal Address
Book, use isPublicAddressBook and isPrivateAddressBook of Database.

Chapter 10: Java Classes A–Z 2185


Session class

If the program runs on a workstation, both Domino Directories and


Personal Address Books are included. If the program runs on a server or
through remote (IIOP) calls, only Domino Directories on the server are
included.
A database retrieved through getAddressBooks is closed. The following
Database methods are available on the closed database: getFileName,
getFilePath, isOpen, isPrivateAddressBook, isPublicAddressBook,
getParent, and getServer. To access all the properties and methods, you
must explicitly open the database. See open in Database.

Example: AddressBooks property


This application prints the server name (or “Local”), file name, and title of
all the Domino Directories and Personal Address Books known to the
current session.
import java.util.*;
import lotus.domino.*;
class addressbooks extends NotesThread
{
public static void main(String argv[])
{
addressbooks t = new addressbooks();
t.start();
}
public void runNotes()
{
try
{
Session s = NotesFactory.createSession();
Database db;
Vector books = s.getAddressBooks();
Enumeration e = books.elements();
while (e.hasMoreElements()) {
db = (Database)e.nextElement();
String fn = db.getFileName();
String server;
if (db.getServer() != null)
server = db.getServer();
else
server = "Local";
String title = db.getTitle();
System.out.println(server + " " + fn + " \"" + title +
"\"");
}
}

2186 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Session class

catch (Exception e)
{
e.printStackTrace();
}
}
}

AgentContext property
Read-only. Represents the agent environment of the current program, if an
agent is running it.
Note This property is illegal for remote (IIOP) calls.

Defined in
Session

Data type
AgentContext

Syntax
public AgentContext getAgentContext()
throws NotesException

Usage
If the current program is not running from an agent, this property
returns null.
See the AgentContext class for descriptions and examples.

CommonUserName property
Read-only. The common name of the user that created the session.

Defined in
Session

Data type
String

Syntax
public String getCommonUserName()
throws NotesException

Chapter 10: Java Classes A–Z 2187


Session class

Usage
If the user name is flat (non-hierarchical), CommonUserName is the same
as UserName.

Example: CommonUserName property


The following agent prints the common user name.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() { try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
String u = session.getCommonUserName();
System.out.println("Common user name = " + u);
} catch(Exception e) {
e.printStackTrace();
}
}
}

International property
Read-only. The international (regional) settings for the session’s operating
environment.

Defined in
Session

Data type
International

Syntax
public International getInternational()
throws NotesException

Usage
See the International class for descriptions and examples.

2188 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Session class

IsOnServer property
Read-only. Indicates if the session is running on a server.

Defined in
Session

Data type
boolean

Syntax
public boolean isOnServer()
throws NotesException

Legal values
true if the program is running on a server
false if the program is running on a workstation

Usage
A remote (IIOP) session always runs on a server.
A local session is running on a server if it is an agent in a server-based
database, and the agent has one of the following triggers:
When new mail arrives
When documents have been created or modified
When documents have been pasted
On schedule hourly, daily, weekly, or monthly
All other programs run on a workstation.

Example: IsOnServer property


This agent gets names.nsf from the user’s mail server if the program is
running on a server, and from the local Domion data directory otherwise.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db;
if (session.isOnServer()) {

Chapter 10: Java Classes A–Z 2189


Session class

String ms = session.getEnvironmentString("MailServer",
true);
db = session.getDatabase(ms, "names.nsf"); }
else {
db = session.getDatabase(null, "names.nsf"); }
System.out.println("Title of names.nsf: \""
+ db.getTitle() + "\"");
} catch(Exception e) {
e.printStackTrace();
}
}
}

NotesVersion property
Read-only. The release of Domino the session is running on.

Defined in
Session

Data type
String

Syntax
public String getNotesVersion()
throws NotesException

Example: NotesVersion property


This application displays the release number of Domino installed in the
local program and data directories.
import lotus.domino.*;
class version extends NotesThread
{
public static void main(String argv[])
{
version t = new version();
t.start();
}
public void runNotes()
{
try
{
Session s = NotesFactory.createSession();
String v = s.getNotesVersion();
System.out.println("Domino version = " + v);
}

2190 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Session class

catch (Exception e)
{
e.printStackTrace();
}
}
}

Platform property
Read-only. The name of the platform the session is running on.

Defined in
Session

Data type
String

Syntax
public String getPlatform()
throws NotesException

Legal Values
“Macintosh” Macintosh
“MS-DOS” MS-DOS
“Netware” NetWare
“OS/2v1” OS/2® 16-bit
“OS/2v2” OS/2 32-bit
“Windows/16” Windows 16-bit
“Windows/32” Windows 32-bit
“UNIX” UNIX (Sun, SCO, HP-UX, AIX®)

Example: Platform property


This application prints the name of the platform.
import lotus.domino.*;
class platform extends NotesThread
{
public static void main(String argv[])
{
platform t = new platform();
t.start();
}

Chapter 10: Java Classes A–Z 2191


Session class

public void runNotes()


{
try
{
Session s = NotesFactory.createSession();
String p = s.getPlatform();
System.out.println("Platform = " + p);
}
catch (Exception e)
{
e.printStackTrace();
}
}
}

ServerName property
Read-only. The full name of the server that the session is running on.

Defined in
Session

Data type
String

Syntax
public String getServerName()
throws NotesException

Usage
If the server name is hierarchical, this property returns the fully
distinguished name.
This property is null if the session is not running on a server.

Example: ServerName property


This agent prints the name of the server.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
String u = session.getServerName();
System.out.println("Server name = " + u);

2192 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Session class

} catch(Exception e) {
e.printStackTrace();
}
}
}

UserName property
Read-only. The full name of the user or server that created the session.

Defined in
Session

Data type
String

Syntax
public String getUserName()
throws NotesException

Usage
If the user name is hierarchical, this property returns the fully distinguished
name. To get only the common name, use the CommonUserName property.

Example: UserName property


The following agent prints the user name.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
String u = session.getUserName();
System.out.println("User name = " + u);
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 2193


Session class

UserNameList property
Read-only. The name of the user or server that created the session, and the
alternate name if it exists.

Defined in
Session

Data type
java.util.Vector; elements are Name

Syntax
public java.util.Vector getUserNameList()
throws NotesException

Usage
If the user does not have an alternate name, getUserNameList returns a
vector of one element containing the user name. If the user does have an
alternate name, getUserNameList returns a vector of two elements
containing the user name and the alternate user name.

UserNameObject property
Read-only. The name, in the form of a Name object, of the user or server
that created the session.

Defined in
Session

Data type
Name

Syntax
public Name getUserNameObject()
throws NotesException

Example: UserNameObject property


This agent gets a Name object for the current user and prints the common
user name.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext(); //

2194 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Session class

(Your code goes here)


Name no = session.getUserNameObject();
String u = no.getCommon();
System.out.println("Common user name = " + u); }
catch(Exception e) {
e.printStackTrace();
}
}
}

createDateRange method
Creates a new DateRange object.

Defined in
Session

Syntax
public DateRange createDateRange()
throws NotesException
public DateRange createDateRange(DateTime startt, DateTime endt)
throws NotesException
public DateRange createDateRange(java.util.Date startt,
java.util.Date endt)
throws NotesException

Parameters
DateTime startt

The starting date-time of the range. Cannot be null.


DateTime endt

The ending date-time of the range. Cannot be null.


Date startt

The starting date-time of the range using a java.util.Date object.


Date endt

The ending date-time of the range using a java.util.Date object.

Chapter 10: Java Classes A–Z 2195


Session class

Return value
DateRange

The newly-created DateRange object.

Usage
See the DateRange class for descriptions and examples.

createDateTime method
Creates a DateTime object that represents a specified date and time.

Defined in
Session

Syntax
public DateTime createDateTime(String date)
throws NotesException
public DateTime createDateTime(java.util.Date date)
throws NotesException

Parameters
String date

The date and time you want the object to represent. See DateTime for
formats. An invalid date-time or empty string results in an “Invalid
date” exception.
java.util.Date date

The date and time you want the object to represent using a
java.util.Date object.

Return value
DateTime

The newly-created date-time.

Usage
See DateTime for descriptions and examples.

2196 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Session class

createLog method
Creates a new Log object with the name you specify.

Defined in
Session

Syntax
public Log createLog(String name)
throws NotesException

Parameter
String name

A name that identifies the log.

Return value
Log

The newly-created log.

Usage
See the Log class for descriptions and examples.

createName method
Creates a new Name object.

Defined in
Session

Syntax
public Name createName(String name)
throws NotesException
public Name createName(String name, String lang)
throws NotesException

Parameters
String name

A user or server name. If the name is not in the format of an


abbreviated or canonical hierarchical name, it is treated as a flat name.
String lang

A language associated with the user name. For primary user names, the
language should be null. For alternate user names, a language can be
specified. See the Language property in Name.

Chapter 10: Java Classes A–Z 2197


Session class

Return value
Name

The new Name object.

Usage
See the Name class for descriptions and examples.

createNewsletter method
Given a DocumentCollection containing the documents you want, creates a
new Newsletter.

Defined in
Session

Syntax
public Newsletter createNewsletter(DocumentCollection collection)
throws NotesException

Parameter
DocumentCollection collection

The documents that you want included in the newsletter. Can be null.

Return value
Newsletter

The newly created newsletter.

Usage
See the Newsletter for descriptions and examples.

createRegistration method
Creates a new Registration object.
Note This property is illegal for remote (IIOP) calls.

Defined in
Session

Syntax
public Registration createRegistration()
throws NotesException

2198 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Session class

Return value
Registration

The newly-created Registration object.

Usage
See the Registration class for descriptions and examples.

createRichTextParagraphStyle method
Creates a new RichTextParagraphStyle object.

Defined in
Session

Syntax
public RichTextParagraphStyle createRichTextParagraphStyle()
throws NotesException

Return value
RichTextParagraphStyle

The newly-created RichTextParagraphStyle object.

Usage
See the RichTextParagraphStyle class for descriptions and examples.

createRichTextStyle method
Creates a new RichTextStyle object.

Defined in
Session

Syntax
public RichTextStyle createRichTextStyle()
throws NotesException

Return value
RichTextStyle

The newly-created RichTextStyle object.

Usage
See the RichTextStyle class for descriptions and examples.

Chapter 10: Java Classes A–Z 2199


Session class

evaluate method
Evaluates a Domino formula.

Defined in
Session

Syntax
public java.util.Vector evaluate(String formula)
throws NotesException
public java.util.Vector evaluate(String formula, Document doc)
throws NotesException

Parameters
String formula

The formula.
Document doc

The formula context. Cannot be null.

Return value
java.util.Vector

The result of the evaluation. A scalar result is returned in firstElement.

Usage
If the formula contains the name of a field, you must use the 2-parameter
method. The formula takes the field from the document specified as
parameter 2.
@Functions that affect the user interface do not work in evaluate. These
include: @Command, @DbManager, @DbName, @DbTitle, @DDEExecute,
@DDEInitiate, @DDEPoke, @DDETerminate, @DialogBox, @PickList,
@PostedCommand, @Prompt, and @ViewTitle.
You cannot change a document with evaluate; you can only get a result. To
change a document, write the result to the document with a method such as
Document.replaceItemValue.

Examples: evaluate method


1. This agent applies the @ProperCase @function to the Subject field in
every document of the current database.
import lotus.domino.*;
import java.util.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {

2200 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Session class

Session session = getSession();


AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
Document doc;
for (int j=0; j<dc.getCount(); j++)
{
doc = dc.getNthDocument(j+1);
Vector v = session.evaluate("@ProperCase(Subject)",
doc);
doc.replaceItemValue("Subject", v.firstElement());
doc.save(true, false);
}
} catch(Exception e) {
e.printStackTrace();
}
}
}

2. This agent applies the @Sum @function to the Amount field (which
allows multiple values) in each document and prints the result.
import lotus.domino.*;
import java.util.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
Document doc;
System.out.println("Count = " + dc.getCount());
for (int j=0; j<dc.getCount(); j++)
{
doc = dc.getNthDocument(j+1);
Vector v = session.evaluate("@Sum(Amount)", doc);
System.out.println(v.firstElement() + " " +
doc.getItemValue("Subject"));
}
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 2201


Session class

freeTimeSearch method
Searches for free time slots for calendaring and scheduling.

Defined in
Session

Syntax
public java.util.Vector freeTimeSearch(DateRange window, int
duration, Object names, boolean firstfit)
throws NotesException

Parameters
DateRange window

Starting and ending times within which to search for a match. Cannot
be null.
int duration

The length in minutes of the free-time interval you want to schedule.


Object names

String or vector of strings. The name or names of the people or groups


whose free time you want to schedule. Cannot be null.
boolean firstfit

True if you just want the first matching date range. False if you want all
matching times.

Return value
java.util.Vector

Each member of the vector is a DateRange object. The vector is null if


there are no matches.

Example: freeTimeSearch method


This application finds the first 60-minute time slot available for three
people.
import java.util.*;
import lotus.notes.*;
class free extends NotesThread
{
public static void main(String argv[])
{
free t = new free();
t.start();
}

2202 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Session class

public void runNotes()


{
try
{
Session s = Session.newInstance();
DateRange window = s.createDateRange();
window.setStartDateTime(s.createDateTime("Today"));
window.setEndDateTime(s.createDateTime("Tomorrow"));
Vector names = new Vector(3);
names.addElement("Robert Erronpay");
names.addElement("Kerry Oodwardway");
names.addElement("Marybeth Enakermay");
Vector freetime = s.freeTimeSearch
(window, 60, names, true);
if (freetime == null) System.out.println("No time
slots");
else for (int i=0; i<freetime.size(); i++)
{
DateRange dr = (DateRange)freetime.elementAt(i);
DateTime sdt = dr.getStartDateTime();
DateTime edt = dr.getEndDateTime();
System.out.println("Start = " + sdt.getLocalTime());
System.out.println(" End = " + edt.getLocalTime());
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
}

getDatabase method
Creates a Database object that represents the database located at the server
and file name you specify, and opens the database, if possible.

Defined in
Session

Syntax
public Database getDatabase(String server, String db)
throws NotesException
public Database getDatabase(String server, String db, boolean
createonfail)
throws NotesException

Chapter 10: Java Classes A–Z 2203


Session class

Parameters
String server

The name of the server on which the database resides. Use null to
indicate the session’s environment. Must be null for remote (IIOP)
operations.
String db

The file name and location of the database within the Domino data
directory. Use a full path name if the database is not within the Domino
data directory.
boolean createonfail

If true, creates a Database object even if the specified database cannot


be opened. If false or omitted, returns null if the database cannot be
opened.

Return value
Database

A Database object that can be used to access the database you have
specified.

Usage
See the Database class for descriptions and examples.

getDbDirectory method
Creates a new DbDirectory object using the name of the server you want to
access.

Defined in
Session

Syntax
public DbDirectory getDbDirectory(String server)
throws NotesException

Parameter
String server

The name of the server with database files you want to navigate. Use
null to indicate the session’s environment. Must be null for remote
(IIOP) operations.

2204 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Session class

Return value
DbDirectory

The directory on the server you specified.

Usage
See the DbDirectory class for descriptions and examples.

getEnvironmentString method
Given the name of a string or numeric environment variable, retrieves its
value.

Defined in
Session

Syntax
public String getEnvironmentString(String vname)
throws NotesException
public String getEnvironmentString(String vname, boolean issystem)
throws NotesException

Parameters
String vname

The name of the environment variable to get.


boolean issystem

If true, the method uses the exact name of the environment variable. If
false or omitted, the method prepends “$” to the name before retrieving
its value.

Return value
String

The value of the environment variable.

Usage
This method retrieves the environment variable from the notes.ini file for
the current session.

Chapter 10: Java Classes A–Z 2205


Session class

Examples: getEnvironmentString method


1. This application gets the value of the $EnvLoc environment variable.
import lotus.domino.*;
class getenvstring extends NotesThread
{
public static void main(String argv[])
{
getenvstring t = new getenvstring();
t.start();
}
public void runNotes()
{
try
{
Session s = NotesFactory.createSession();
String envloc = s.getEnvironmentString("EnvLoc",
false);
if (envloc == null)
System.out.println("No $EnvLoc");
else
System.out.println("$EnvLoc = " + envloc);
}
catch (Exception e)
{
e.printStackTrace();
}
}
}

2. This application gets the value of the MailServer system environment


variable.
import lotus.domino.*;
class getenvstring2 extends NotesThread
{
public static void main(String argv[])
{
getenvstring2 t = new getenvstring2();
t.start();
}
public void runNotes()
{
try
{
Session s = NotesFactory.createSession();
String ms = s.getEnvironmentString("MailServer",
true);
if (ms == null)
System.out.println("No MailServer");

2206 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Session class

else
System.out.println("MailServer = " + ms);
}
catch (Exception e)
{
e.printStackTrace();
}
}
}

getEnvironmentValue method
Given the name of a numeric environment variable, retrieves its value.

Defined in
Session

Syntax
public Object getEnvironmentValue(String vname)
throws NotesException
public Object getEnvironmentValue(String vname, boolean issystem)
throws NotesException

Parameter
String vname

The name of the environment variable to get.


boolean issystem

If true, the method uses the exact name of the environment variable. If
false or omitted, the method prepends “$” to the name before retrieving
its value.

Return value
Object

The value of the environment variable.

Usage
This method retrieves the environment variable from the notes.ini file for
the current session.
Do not use this method for string values.

Chapter 10: Java Classes A–Z 2207


Session class

Examples: getEnvironmentValue method


1. This application gets the value of the environment variable $EnvNum.
import lotus.domino.*;
class getenvval extends NotesThread
{
public static void main(String argv[])
{
getenvval t = new getenvval();
t.start();
}
public void runNotes()
{
try
{
Session s = NotesFactory.createSession();
Object envnum = s.getEnvironmentValue("EnvNum",
false);
if (envnum == null)
System.out.println("No $EnvNum");
else
System.out.println("$EnvNum = " + envnum);
}
catch (Exception e)
{
e.printStackTrace();
}
}
}

2. This application gets the value of the system environment variable .


import lotus.domino.*;
class getenvval2 extends NotesThread
{
public static void main(String argv[])
{
getenvval2 t = new getenvval2();
t.start();
}
public void runNotes()
{
try
{
Session s = NotesFactory.createSession();
Object tz = s.getEnvironmentValue("TimeZone", true);
if (tz == null)
System.out.println("No TimeZone");
else
System.out.println("TimeZone = " + tz);

2208 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Session class

}
catch (Exception e)
{
e.printStackTrace();
}
}
}

getURLDatabase method
Finds and opens the default Web Navigator database.

Defined in
Session

Syntax
public Database getURLDatabase()
throws NotesException

Return value
Database

A Database object representing the default Web Navigator database.

Example: getURLDatabase method


This application opens the default Web navigator database.
import lotus.domino.*;
class geturldb extends NotesThread
{
public static void main(String argv[])
{
geturldb t = new geturldb();
t.start();
}
public void runNotes()
{
try
{
Session s = NotesFactory.createSession();
Database db = s.getURLDatabase();
System.out.println
("Title of URL database: \"" + db.getTitle() + "\"");
if (db.isOpen()) System.out.println("Is open");
else System.out.println("Not open");
}
catch (Exception e)
{

Chapter 10: Java Classes A–Z 2209


Session class

e.printStackTrace();
}
}
}

resolve method
Returns the Domino object that a URL addresses.

Defined in
Session

Syntax
public Base resolve(String url)
throws NotesException

Parameters
String url

A URL that addresses a Domino object.

Return value
Base

A Database, View, Form, Document, or Agent object. You must cast the
return value to the expected type.

setEnvironmentVar method
Sets the value of a string or numeric environment variable.

Defined in
Session

Syntax
public void setEnvironmentVar(String vname, Object value)
throws NotesException
public void setEnvironmentVar(String vname, Object value, boolean
issystem)
throws NotesException

Parameters
String vname

The name of the environment variable to set.

2210 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Session class

Object value

The value of the environment variable. Date values are converted


to strings.
boolean issystem

If true, no dollar sign character (“$”) is prepended to the variable name.


If false or omitted, a dollar sign is prepended.

Usage
If an environment variable called vname already exists, it is assigned the
new value. Otherwise, a new environment variable is added to the notes.ini
(or Notes Preferences) file.
SetEnvironmentVar prepends a dollar sign character (“$”) to the name
before setting the value of the environment variable, unless you specify
issystem as false or have already included a “$” as the first character of the
name. When you examine the environment variable in the notes.ini (or
Notes Preferences) file, you see the “$” character. When retrieving
environment variables with the getEnvironmentString or
getEnvironmentValue methods, you have the option of including or
omitting the “$” from the variable name.
The environment variable is set in the notes.ini file for the current session.

Examples: setEnvironmentVar method


1. This application sets the value of the $HomeTown environment
variable to “Tokyo.”
import lotus.domino.*;
class setenvvar extends NotesThread
{
public static void main(String argv[])
{
setenvvar t = new setenvvar();
t.start();
}
public void runNotes()
{
try
{
Session s = NotesFactory.createSession();
s.setEnvironmentVar("HomeTown", "Tokyo",
false);
}
catch (Exception e)
{
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 2211


View class

2. This application sets the value of the MailServer system environment


variable to “Tornado.”
import lotus.domino.*;
class setenvvar2 extends NotesThread
{
public static void main(String argv[])
{
setenvvar2 t = new setenvvar2();
t.start();
}
public void runNotes()
{
try
{
Session s = NotesFactory.createSession();
s.setEnvironmentVar("MailServer", "Tornado",
true);
}
catch (Exception e)
{
e.printStackTrace();
}
}
}

View class
Represents a view or folder of a database and provides access to
documents within it.

Syntax
public class View extends Base

Containment
Contained by: Database
Contains: Document, DateTime, ViewColumn, ViewEntry,
ViewEntryCollection, ViewNavigator

Properties
Aliases through getAliases
AllEntries through getAllEntries
BackgroundColor through getBackgroundColor

2212 Domino Designer Programming Guide, Volume 3: JavaScript Classes


View class

ColumnCount through getColumnCount


ColumnNames through getColumnNames
Columns through getColumns
Created through getCreated
HeaderLines through getHeaderLines
IsAutoUpdate through isAutoUpdate and setAutoUpdate
IsCalendar through isCalendar
IsCategorized through isCategorized
IsConflict through isConflict
IsDefaultView through isDefaultView
IsFolder through isFolder
IsHierarchical through isHierarchical
IsModified through isModified
IsPrivate through isPrivate
IsProtectReaders through isProtectReaders and setProtectReaders
LastModified through getLastModified
Name through getName
Parent through getParent
Readers through getReaders and setReaders
RowLines through getRowLines
Spacing through getSpacing
TopLevelEntryCount through getTopLevelEntryCount
UniversalID through getUniversalID

Methods
clear
createViewNav
createViewNavFrom
createViewNavFromCategory
createViewNavFromChildren
createViewNavFromDescendants

Chapter 10: Java Classes A–Z 2213


View class

createViewNavMaxLevel
FTSearch
getAllDocumentsByKey
getAllEntriesByKey
getChild
getColumn
getDocumentByKey
getEntryByKey
getFirstDocument
getLastDocument
getNextDocument
getNextSibling
getNthDocument
getParentDocument
getPrevDocument
getPrevSibling
refresh
remove

Access
You access a view or folder through the Database object that contains it.
There are two ways:
To access a view or folder when you know its name or alias, use
getView.
To access all the views and folders in a database, use getViews.
Returned is a View object or a vector of View objects that represent public
views and/or folders in the database. If a program runs on a workstation,
the View objects may also represent personal views and folders.
To access a view or folder when you have a view entry, use getParent in
ViewEntry.

2214 Domino Designer Programming Guide, Volume 3: JavaScript Classes


View class

Usage
A View object provides access to ViewEntry, ViewEntryCollection, and
ViewNavigator objects:
A ViewEntry object represents a row in the view and can be a
document, category, or total. A document entry provides a handle to
the associated Document object.
A ViewEntryCollection object provides access to selected or all
document ViewEntry objects. (Excluded are category and total
ViewEntry objects.)
A ViewNavigator object provides methods for navigating through
selected or all ViewEntry and Document objects.
A View object provides access to ViewColumn objects, which contain
information on each column in the view.

Examples: View class


1. This agent finds the “By Category” view in a database and gets the first
document in the view.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = session.getDatabase
("FrenchFry", "NotesUA\\progwork");
View view = db.getView("By Category");
Document doc = view.getFirstDocument();
System.out.println
(doc.getItemValueString("Subject"));
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 2215


View class

2. This agent finds the “($All)” hidden view in a database and gets the
first document in the view.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = session.getDatabase
("FrenchFry", "NotesUA\\progwork");
View view = db.getView("($All)");
Document doc = view.getFirstDocument();
System.out.println
(doc.getItemValueString("Subject"));
} catch(Exception e) {
e.printStackTrace();
}
}
}
3. This agent finds the default view in a database.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = session.getDatabase
("FrenchFry", "NotesUA\\progwork");
Vector views = db.getViews();
View view = null;
for (int i=0; i<views.size(); i++) {
view = (View)views.elementAt(i);
if (view.isDefaultView()) break; }
System.out.println
(view.getName() + " is the default view");
} catch(Exception e) {
e.printStackTrace();
}
}
}

2216 Domino Designer Programming Guide, Volume 3: JavaScript Classes


View class

Aliases property
Read-only. The aliases of a view.

Defined in
View

Data type
java.util.Vector; elements are String

Syntax
public java.util.Vector getAliases()
throws NotesException

Usage
This property does not return the name of the view. Use getName to return
the name.
Old-style aliases that are in the name field, separated from the name by
vertical bars, are returned as part of the name.

Example: Aliases property


This agent displays the name and aliases for each view.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Vector views = db.getViews();
for (int i=0; i<views.size(); i++) {
View view = (View)views.elementAt(i);
Vector aliases = view.getAliases();
if (aliases.size() == 0)
System.out.println
(view.getName() + " has no aliases");
else if (aliases.size() == 1)
System.out.println
(view.getName() + " has 1 alias");
else
System.out.println
(view.getName() + " has " +
aliases.size() + " aliases");
for (int j=0; j<aliases.size(); j++)

Chapter 10: Java Classes A–Z 2217


View class

System.out.println
("\t" + aliases.elementAt(j)); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

AllEntries property
Read-only. The document entries in a view in view order.

Defined in
View

Data type
ViewEntryCollection

Syntax
public ViewEntryCollection getAllEntries()
throws NotesException

Usage
A view entry collection contains only document entries (no categories or
totals).
If a view is filtered by FTSearch, this property returns the entries in the
filtered view.

Example: AllEntries property


This agent prints the number of document entries in a view.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
ViewEntryCollection vec = view.getAllEntries();
System.out.println("\"By Category\" view has " +
vec.getCount() + " entries");

2218 Domino Designer Programming Guide, Volume 3: JavaScript Classes


View class

} catch(Exception e) {
e.printStackTrace();
}
}
}

BackgroundColor property
Read-only. The background color of a view.

Defined in
View

Data type
int

Syntax
public int getBackgroundColor()
throws NotesException

Legal values
RichTextStyle.COLOR_BLACK
RichTextStyle.COLOR_WHITE
RichTextStyle.COLOR_RED
RichTextStyle.COLOR_GREEN
RichTextStyle.COLOR_BLUE
RichTextStyle.COLOR_MAGENTA
RichTextStyle.COLOR_YELLOW
RichTextStyle.COLOR_CYAN
RichTextStyle.COLOR_DARK_RED
RichTextStyle.COLOR_DARK_GREEN
RichTextStyle.COLOR_DARK_BLUE
RichTextStyle.COLOR_DARK_MAGENTA
RichTextStyle.COLOR_DARK_YELLOW
RichTextStyle.COLOR_DARK_CYAN
RichTextStyle.COLOR_GRAY
RichTextStyle.COLOR_LIGHT_GRAY

Chapter 10: Java Classes A–Z 2219


View class

Example: BackgroundColor property


This agent prints the background color of a view.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
String msg = null;
switch(view.getBackgroundColor()) {
case RichTextStyle.COLOR_BLACK :
msg = "black"; break;
case RichTextStyle.COLOR_WHITE :
msg = "white"; break;
case RichTextStyle.COLOR_RED :
msg = "red"; break;
case RichTextStyle.COLOR_GREEN :
msg = "green"; break;
case RichTextStyle.COLOR_BLUE :
msg = "blue"; break;
case RichTextStyle.COLOR_MAGENTA :
msg = "magenta"; break;
case RichTextStyle.COLOR_YELLOW :
msg = "yellow"; break;
case RichTextStyle.COLOR_CYAN :
msg = "cyan"; break;
case RichTextStyle.COLOR_DARK_RED :
msg = "dark red"; break;
case RichTextStyle.COLOR_DARK_GREEN :
msg = "dark green"; break;
case RichTextStyle.COLOR_DARK_BLUE :
msg = "dark blue"; break;
case RichTextStyle.COLOR_DARK_MAGENTA :
msg = "dark magenta"; break;
case RichTextStyle.COLOR_DARK_YELLOW :
msg = "dark yellow"; break;
case RichTextStyle.COLOR_DARK_CYAN :
msg = "dark cyan"; break;
case RichTextStyle.COLOR_GRAY :
msg = "gray"; break;
case RichTextStyle.COLOR_LIGHT_GRAY :
msg = "light gray"; break;
default :
msg = "unknown"; }
System.out.println

2220 Domino Designer Programming Guide, Volume 3: JavaScript Classes


View class

("Background color of \"By Category\" is " + msg);


} catch(Exception e) {
e.printStackTrace();
}
}
}

ColumnCount property
Read-only. The number of columns in a view.

Defined in
View

Data type
int

Syntax
public int getColumnCount()
throws NotesException

Example: ColumnCount and ColumnNames properties


This agent prints the number of columns in a view and the names of the
columns.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
int count = view.getColumnCount();
System.out.println
("\"By Category\" has " + count + " columns:");
Vector columnNames = view.getColumnNames();
for (int i=0; i<columnNames.size(); i++) {
System.out.println("\t#" + new Integer(i+1) + "\t" +
(String)columnNames.elementAt(i)); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 2221


View class

ColumnNames property
Read-only. The names of the columns in a view.

Defined in
View

Data type
java.util.Vector; elements are String

Syntax
public java.util.Vector getColumnNames()
throws NotesException

Usage
The order of the column names in the vector corresponds to the order of the
columns in the view, from left to right.

Columns property
Read-only. The columns in a view.

Defined in
View

Data type
java.util.Vector; elements are ViewColumn

Syntax
public java.util.Vector getColumns()
throws NotesException

Usage
The order of ViewColumn objects in the vector corresponds to the order of
the columns in the view, from left to right.

Example: Columns property


This agent prints the title of each column in a view.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();

2222 Domino Designer Programming Guide, Volume 3: JavaScript Classes


View class

// (Your code goes here)


Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
Vector columns = view.getColumns();
for (int i=0; i<columns.size(); i++) {
ViewColumn column = (ViewColumn)columns.elementAt(i);
if (column.getTitle() == "")
System.out.println("No title");
else
System.out.println(column.getTitle()); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

Created property
Read-only. The date and time when a view was created.

Defined in
View

Data type
DateTime

Syntax
public DateTime getCreated()
throws NotesException

Example: Created property


This agent prints the creation date of a view.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
DateTime cdate = view.getCreated();
System.out.println
("Creation date = " + cdate.getLocalTime());

Chapter 10: Java Classes A–Z 2223


View class

} catch(Exception e) {
e.printStackTrace();
}
}
}

HeaderLines property
Read-only. The number of lines in the header of a view.

Defined in
View

Data type
int

Syntax
public int getHeaderLines()
throws NotesException

Example: HeaderLines, IsCategorized, IsHierarchical, RowLines,


Spacing, and TopLevelEntryCount properties
This agent prints the number of header lines, number of row lines, spacing
interval, top-level entry count, and hierarchical status for all categorized
views in the current database.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Vector views = db.getViews();
for (int i=0; i<views.size(); i++) {
View view = (View)views.elementAt(i);
if (view.isCategorized()) {
System.out.println(view.getName());
System.out.println
("\tHeaderLines = " + view.getHeaderLines());
System.out.println
("\tRowLines = " + view.getRowLines());
System.out.println
("\tSpacing = " + view.getSpacing());
System.out.println

2224 Domino Designer Programming Guide, Volume 3: JavaScript Classes


View class

("\tTopLevelEntryCount = " +
view.getTopLevelEntryCount());
System.out.println
("\tIsHierarchical = " + view.isHierarchical());
}
}
} catch(Exception e) {
e.printStackTrace();
}
}
}

IsAutoUpdate property
Read-write. Indicates whether the View object is updated before a
navigation operation if the view has changed since being opened or
refreshed.

Defined in
View

Data type
boolean

Syntax
public boolean isAutoUpdate()
throws NotesException
public void setAutoUpdate(boolean flag)
throws NotesException

Legal values
true if the view is automatically updated (default for local operations)
false if the view is not automatically updated (default for remote IIOP
operations)
Usage
If this value is false, the View object is not updated unless you call refresh.
You may want to set this value to false to save time.
If this value is true for remote (IIOP) operations, caching is turned off.

Chapter 10: Java Classes A–Z 2225


View class

Example: IsAutoUpdate property


This agent turns off automatic updating in a view.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
// Turn off auto-update before proceeding
view.setAutoUpdate(false);
System.out.println
("Auto-update is " + view.isAutoUpdate());
// Work in view
// ...
} catch(Exception e) {
e.printStackTrace();
}
}
}

IsCalendar property
Read-only. Indicates whether a view is a calendar view.

Defined in
View

Data type
boolean

Syntax
public boolean isCalendar()
throws NotesException

Legal values
true if the view is a calendar view
false if the view is not a calendar view

Example: IsCalendar and isConflict properties


This agent displays whether each view in the current database is a calendar
view or a standard outline view, and whether conflict checking is in effect
for a calendar view.

2226 Domino Designer Programming Guide, Volume 3: JavaScript Classes


View class

import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Vector views = db.getViews();
for (int i=0; i<views.size(); i++) {
View view = (View)views.elementAt(i);
String cal = null;
if (view.isCalendar()) {
cal = "calendar view";
if (view.isConflict())
cal = cal + " with conflict checking";
else
cal = cal + " without conflict checking"; }
else
cal = "standard outline view";
System.out.println
(view.getName() + " is a " + cal); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

IsCategorized property
Read-only. Indicates whether a view is categorized.

Defined in
View

Data type
boolean

Syntax
public boolean isCategorized()
throws NotesException

Legal values
true if the view is categorized
false if the view is not categorized

Chapter 10: Java Classes A–Z 2227


View class

IsConflict property
Read-only. Indicates whether a view is enabled for conflict checking.

Defined in
View

Data type
boolean

Syntax
public boolean isConflict()
throws NotesException

Legal values
true if the view is enabled for conflict checking
false if the view is not enabled for conflict checking

IsDefaultView property
Read-only. Indicates whether a view is the default view of the database.

Defined in
View

Data type
boolean

Syntax
public boolean isDefaultView()
throws NotesException

Legal values
true if the view is the default view
false if the view is not the default view

Example: IsDefaultView property


This agent finds the default view in the current database.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();

2228 Domino Designer Programming Guide, Volume 3: JavaScript Classes


View class

// (Your code goes here)


Database db = agentContext.getCurrentDatabase();
Vector views = db.getViews();
for (int i=0; i<views.size(); i++) {
View view = (View)views.elementAt(i);
if (view.isDefaultView()) {
System.out.println
("The default view is \"" +
view.getName() + "\"");
break; } }
} catch(Exception e) {
e.printStackTrace();
}
}
}

IsFolder property
Read-only. Indicates whether a View object represents a folder.

Defined in
View

Data type
boolean

Syntax
public boolean isFolder()
throws NotesException

Legal values
true if the View object represents a folder
false if the View object represents a view

Example: IsFolder property


This agent displays whether each view object in the current database is a
view or a folder.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();

Chapter 10: Java Classes A–Z 2229


View class

Vector views = db.getViews();


for (int i=0; i<views.size(); i++) {
View view = (View)views.elementAt(i);
String f = null;
if (view.isFolder())
f = "folder";
else
f = "view";
System.out.println
(view.getName() + " is a " + f);
}
} catch(Exception e) {
e.printStackTrace();
}
}
}

IsHierarchical property
Read-only. Indicates whether a view shows response documents in a
hierarchy.

Defined in
View

Data type
boolean

Syntax
public boolean isHierarchical()
throws NotesException

Legal values
true if the view is hierarchical
false if the view is not hierarchical

IsModified property
Read-only. Indicates whether a view is modified.

Defined in
View

Data type
boolean

2230 Domino Designer Programming Guide, Volume 3: JavaScript Classes


View class

Syntax
public boolean isModified()
throws NotesException

Legal values
true if the view is modified
false if the view is not modified

IsPrivate property
Read-only. Indicates whether a view is private or private on first use.

Defined in
View

Data type
boolean

Syntax
public boolean isPrivate()
throws NotesException

Legal values
true if the view is private
false if the view is shared

Example: IsPrivate property


This agent displays whether each view in the current database is private or
shared.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Vector views = db.getViews();
for (int i=0; i<views.size(); i++) {
View view = (View)views.elementAt(i);
if (view.isPrivate())
System.out.println("View is private");
else

Chapter 10: Java Classes A–Z 2231


View class

System.out.println("View is shared");
}
} catch(Exception e) {
e.printStackTrace();
}
}
}

IsProtectReaders property
Read-write. Protects $Readers items from being overwritten by replication.

Defined in
View class

Data type
boolean

Syntax
public boolean isProtectReaders()
throws NotesException
public void setProtectReaders(boolean flag)
throws NotesException

Legal values
true if $Readers items are protected
false if $Readers items are not protected

Example: IsProtectReaders property


This agent toggles protection for the readers field.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
if (view.isProtectReaders()) {
view.setProtectReaders(false);
System.out.println
("Protect readers is not set"); }
else {
view.setProtectReaders(true);

2232 Domino Designer Programming Guide, Volume 3: JavaScript Classes


View class

System.out.println
("Protect readers is set"); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

LastModified property
Read-only. The date that a view was last modified.

Defined in
View

Data type
DateTime

Syntax
public DateTime getLastModified()
throws NotesException

Example: LastModified property


This agent gets the last modified date of the By Category view of the
current database.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Vector views = db.getViews();
for (int i=0; i<views.size(); i++) {
View view = (View)views.elementAt(i);
System.out.println
(view.getName() + " last modified on " +
view.getLastModified());
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 2233


View class

Name property
Read-only. The name of a view.

Defined in
View

Data type
String

Syntax
public String getName()
throws NotesException

Usage
Use getAliases to get the aliases.
Old-style aliases that are in the name field, separated from the name by
vertical bars, are returned as part of the name.

Example: Name property


This agent gets the names of all the views in the current database.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Vector views = db.getViews();
for (int i=0; i<views.size(); i++) {
View view = (View)views.elementAt(i);
System.out.println(view.getName()); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

2234 Domino Designer Programming Guide, Volume 3: JavaScript Classes


View class

Parent property
Read-only. The database to which a view belongs.

Defined in
View

Data type
Database

Syntax
public Database getParent()
throws NotesException

Example: Parent property


This agent compares the title of the current database with the parent of the
current view. They should be the same.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
Database pdb = view.getParent();
if (db.getTitle().equals(pdb.getTitle()))
System.out.println
("Db title and parent db title are the same");
else
System.out.println
("Db title and parent db title differ - oops");
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 2235


View class

Readers property
Read-write. The contents of the $Readers field associated with the view.

Defined in
View class

Data type
java.util.Vector; elements are String

Syntax
public java.util.Vector getReaders()
throws NotesException
public void setReaders(java.util.Vector reader)
throws NotesException

Usage
Setting this property replaces prior values.
Set the property to null to remove all reader restrictions.

Example: Readers property


This agent adds a name to the readers field.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
Vector readers = view.getReaders();
readers.addElement(agent.getComment());
setReaders(readers);
System.out.println("Contents of $Readers:");
for (int i=0; i<readers.size(); i++)
System.out.println("\t" + readers.elementAt(i));
} catch(Exception e) {
e.printStackTrace();
}
}
}

2236 Domino Designer Programming Guide, Volume 3: JavaScript Classes


View class

RowLines property
Read-only. The number of lines in each row of a view.

Defined in
View

Data type
int

Syntax
public int getRowLines()
throws NotesException

Spacing property
Read-only. The spacing between rows of a view.

Defined in
View

Data type
int

Syntax
public int getSpacing()
throws NotesException

Legal values
View.SPACING_DOUBLE
View.SPACING_ONE_POINT_25
View.SPACING_ONE_POINT_50
View.SPACING_ONE_POINT_75
View.SPACING_SINGLE

Chapter 10: Java Classes A–Z 2237


View class

TopLevelEntryCount property
Read-only. The number of top-level entries in a view.

Defined in
View

Data type
int

Syntax
public int getTopLevelEntryCount()
throws NotesException

Usage
If the view is categorized, this count is the number of main categories.
If the view has totals, this count includes the grand total.

UniversalID property
Read-only. The universal ID of a view, which is a 32-character hexadecimal
value that uniquely identifies a view across all replicas of a database.

Defined in
View

Data type
String

Syntax
public String getUniversalID()
throws NotesException

Usage
A typical universal ID looks like this:
FF864D9ACB6E2210752561BC005867C6.

Example: UniversalID property


This agent gets the universal IDs of all the views in the current database.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();

2238 Domino Designer Programming Guide, Volume 3: JavaScript Classes


View class

AgentContext agentContext = session.getAgentContext();


// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Vector views = db.getViews();
System.out.println("Universal IDs for views:");
for (int i=0; i<views.size(); i++) {
View view = (View)views.elementAt(i);
System.out.println
(view.getUniversalID() + "\t" + view.getName()); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

clear method
Clears the full-text search filtering on a view.

Defined in
View

Syntax
public void clear()
throws NotesException

Usage
Subsequent calls to getDocument methods get all documents in the view,
not just the search results.

createViewNav method
Creates a view navigator for all entries in a view.

Defined in
View

Syntax
public ViewNavigator createViewNav()
throws NotesException
public ViewNavigator createViewNav(int cacheSize)
throws NotesException

Chapter 10: Java Classes A–Z 2239


View class

Parameters
int cacheSize

The size of the navigator cache in view entries. Legal values are 0 (no
cache) through 128 (default). Applies only to remote (IIOP) operations.

Return value
ViewNavigator

The new view navigator.

Usage
The navigator contains all entries even if the view is filtered for a full-text
search. Use a ViewEntryCollection object to navigate a view filtered by a
full-text search.
An empty view results in an empty navigator. All navigation methods
return null.
The cache enhances performance for iterative processing of entries using
the navigation methods that do not take a parameter.

Example: createViewNav method


This agent gets all the entries in a view.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
ViewNavigator nav = view.createViewNav();
int n = 0;
String t = null;
ViewEntry entry = nav.getFirst();
while (entry != null) {
n++;
if (entry.isCategory()) t = "category";
else if (entry.isDocument()) t = "document";
else if (entry.isTotal()) t = "total";
System.out.println("Entry #" + n + " is a " + t);
entry = nav.getNext(); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

2240 Domino Designer Programming Guide, Volume 3: JavaScript Classes


View class

createViewNavFrom method
Creates a view navigator for all entries in a view starting at a
specified entry.

Defined in
View

Syntax
public ViewNavigator createViewNavFrom(Object entry)
throws NotesException
public ViewNavigator createViewNavFrom(Object entry, int cacheSize)
throws NotesException

Parameters
Object entry

A Document or ViewEntry object representing the starting entry.


Cannot be null.
int cacheSize

The size of the navigator cache in view entries. Legal values are 0 (no
cache) through 128 (default). Applies only to remote (IIOP) operations.

Return value
ViewNavigator

The new view navigator.

Usage
The first entry in the navigator is the specified entry. The remaining entries
are all the entries in the view that follow the first entry.
If the object is not found, the result is an empty navigator. All navigation
methods return null.
The cache enhances performance for iterative processing of entries using
the navigation methods that do not take a parameter.

Example: createViewNavFrom method


This agent gets all the entries in a view starting at the first document in
“Category 2.”
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();

Chapter 10: Java Classes A–Z 2241


View class

AgentContext agentContext = session.getAgentContext();


// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
Document doc = view.getDocumentByKey("Category 2");
ViewNavigator nav = view.createViewNavFrom(doc);
int n = 0;
String t = null;
ViewEntry entry = nav.getFirst();
while (entry != null) {
n++;
if (entry.isCategory()) t = "category";
else if (entry.isDocument()) t = "document";
else if (entry.isTotal()) t = "total";
System.out.println("Entry #" + n + " is a " + t);
entry = nav.getNext(); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

createViewNavFromCategory method
Creates a view navigator for all entries in a view under a specified category.

Defined in
View

Syntax
public ViewNavigator createViewNavFromCategory(String categoryName)
throws NotesException
public ViewNavigator createViewNavFromCategory(String categoryName,
int cacheSize)
throws NotesException

Parameters
String categoryName

The name of a category in the view.


int cacheSize

The size of the navigator cache in view entries. Legal values are 0 (no
cache) through 128 (default). Applies only to remote (IIOP) operations.

2242 Domino Designer Programming Guide, Volume 3: JavaScript Classes


View class

Return value
ViewNavigator

The new view navigator.

Usage
The entries in the navigator are all the entries in the view under the
specified category. The category entry itself is excluded.
If the category does not exist, the result is an empty navigator. All
navigation methods return null.
Subcategories can be specified using backslash notation (don’t forget to
escape the backslashes), for example, “Asia\\Korea” means the
subcategory “Korea” under the main category “Asia.”
The cache enhances performance for iterative processing of entries using
the navigation methods that do not take a parameter.

Example: createViewNavFromCategory method


This agent gets all the entries in “category 2” of a view.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
ViewNavigator nav =
view.createViewNavFromCategory("category 2");
int n = 0;
String t = null;
ViewEntry entry = nav.getFirst();
while (entry != null) {
n++;
if (entry.isCategory()) t = "category";
else if (entry.isDocument()) t = "document";
else if (entry.isTotal()) t = "total";
System.out.println("Entry #" + n + " is a " + t);
entry = nav.getNext(); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 2243


View class

createViewNavFromChildren method
Creates a view navigator for the immediate children of a specified entry.

Defined in
View

Syntax
public ViewNavigator createViewNavFromChildren(Object entry)
throws NotesException
public ViewNavigator createViewNavFromChildren(Object entry, int
cacheSize)
throws NotesException

Parameters
Object entry

A Document or ViewEntry object representing the parent entry. Cannot


be null.
int cacheSize

The size of the navigator cache in view entries. Legal values are 0 (no
cache) through 128 (default). Applies only to remote (IIOP) operations.

Return value
ViewNavigator

The new view navigator.

Usage
The entries in the navigator are all the entries in the view that fall
hierarchically at the next level under the specified entry. The parent entry
itself is excluded.
If the entry has no children, the result is an empty navigator. All navigation
methods return null.
The cache enhances performance for iterative processing of entries using
the navigation methods that do not take a parameter.

Example: createViewNavFromChildren method


This agent gets all the entries that are immediate children of the first entry
under “category 2.”
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();

2244 Domino Designer Programming Guide, Volume 3: JavaScript Classes


View class

AgentContext agentContext = session.getAgentContext();


// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
Document doc = view.getDocumentByKey("category 2");
ViewNavigator nav = view.createViewNavFromChildren(doc);
int n = 0;
String t = null;
ViewEntry entry = nav.getFirst();
while (entry != null) {
n++;
if (entry.isCategory()) t = "category";
else if (entry.isDocument()) t = "document";
else if (entry.isTotal()) t = "total";
System.out.println("Entry #" + n + " is a " + t);
entry = nav.getNext(); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

createViewNavFromDescendants method
Creates a view navigator for all the descendants of a specified entry.

Defined in
View

Syntax
public ViewNavigator createViewNavFromDescendants(Object entry)
throws NotesException
public ViewNavigator createViewNavFromDescendants(Object entry, int
cacheSize)
throws NotesException

Parameters
Object entry

A Document or ViewEntry object representing the parent entry. Cannot


be null.
int cacheSize

The size of the navigator cache in view entries. Legal values are 0 (no
cache) through 128 (default). Applies only to remote (IIOP) operations.

Chapter 10: Java Classes A–Z 2245


View class

Return value
ViewNavigator

The new view navigator.

Usage
The entries in the navigator are the entries in the view that fall
hierarchically at all levels under the specified entry. The parent itself is
excluded.
If the entry has no children, the result is an empty navigator. All navigation
methods return null.
The cache enhances performance for iterative processing of entries using
the navigation methods that do not take a parameter.

Example: createViewNavFromDescendants method


This agent gets all the entries that are descendants of the first entry under
“category 2.”
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
Document doc = view.getDocumentByKey("category 2");
ViewNavigator nav =
view.createViewNavFromDescendants(doc);
int n = 0;
String t = null;
ViewEntry entry = nav.getFirst();
while (entry != null) {
n++;
if (entry.isCategory()) t = "category";
else if (entry.isDocument()) t = "document";
else if (entry.isTotal()) t = "total";
System.out.println("Entry #" + n + " is a " + t);
entry = nav.getNext(); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

2246 Domino Designer Programming Guide, Volume 3: JavaScript Classes


View class

createViewNavMaxLevel method
Creates a view navigator for all entries in a view down to a specified level.

Defined in
View

Syntax
public ViewNavigator createViewNavMaxLevel(int level)
throws NotesException
public ViewNavigator createViewNavMaxLevel(int level, int cacheSize)
throws NotesException

Parameters
int level

The maximum level of navigation 0 (top level) through 30 (default).


int cacheSize

The size of the navigator cache in view entries. Legal values are 0 (no
cache) through 128 (default). Applies only to remote (IIOP) operations.

Return value
ViewNavigator

The new view navigator.

Usage
The entries in the navigator are all the entries in the view at levels 0 through
the specified level.
An empty view results in an empty navigator. All navigation methods
return null.
The cache enhances performance for iterative processing of entries using
the navigation methods that do not take a parameter.

Example: createViewNavMaxLevel method


This agent gets all the top-level entries in a view.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();

Chapter 10: Java Classes A–Z 2247


View class

View view = db.getView("By Category");


ViewNavigator nav = view.createViewNavMaxLevel(0);
int n = 0;
String t = null;
ViewEntry entry = nav.getFirst();
while (entry != null) {
n++;
if (entry.isCategory()) t = "category";
else if (entry.isDocument()) t = "document";
else if (entry.isTotal()) t = "total";
System.out.println("Entry #" + n + " is a " + t);
entry = nav.getNext(); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

FTSearch method
Conducts a full-text search on all documents in a view and filters the view
so it represents only those documents that match the full-text query. This
method does not find word variants.

Defined in
View

Syntax
public int FTSearch(String query)
throws NotesException
public int FTSearch(String query, int maxdocs)
throws NotesException

Parameters
String query

The full-text query. See below.


int maxdocs

The maximum number of documents you want returned from the


search. If you want to receive all documents that match the query,
specify 0.

2248 Domino Designer Programming Guide, Volume 3: JavaScript Classes


View class

Return value
int

The number of documents in the view after the search. Each of these
documents matches the query.

Usage
If the database is not full-text indexed, this method works, but less
efficiently. To test for an index, use isFTIndexed. To create an index on a
local database, use updateFTIndex.
After calling FTSearch, you can use the regular View methods to navigate
the view. The methods navigate to a subset of the documents in the view.
For example, getAllEntries returns only those entries that match the full-text
query, getFirstDocument returns the first document in the view that
matches the full-text query, getLastDocument returns the last document in
the view that matches the full-text query, and so on.
Use the clear to clear the full-text search filtering. The View methods now
navigate to the full set of documents in the view.

Query syntax
To search for a word or phrase, enter the word or phrase as is, except that
search keywords must be enclosed in quotes. Remember to escape quotes if
you are inside a literal.
Wildcards, operators, and other syntax are permitted. For the complete
syntax rules, see “To use operators to refine a search” in Notes 5 help.

Examples: FTSearch and clear methods


1. This agent full-text searches the “Transportation” view on the word
“bicycle.” The agent then puts the documents in the filtered view into
the “Two-wheeled vehicles” folder. The agent then clears the view and
puts the documents of the unfiltered view into the “Vehicles” folder.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("Transportation");
db.updateFTIndex(true);
int count = view.FTSearch("bicycle");
// View is filtered
if (count == 0)

Chapter 10: Java Classes A–Z 2249


View class

System.out.println("No bicycles found");


else {
System.out.println(count + " bicycle(s) found");
Document doc = view.getFirstDocument();
while (doc != null) {
doc.putInFolder("Two-wheeled vehicles");
doc = view.getNextDocument(doc); } }
// Clear the full-text search
view.clear();
// View is no longer filtered
Document doc = view.getFirstDocument();
while (doc != null) {
doc.putInFolder("Vehicles");
doc = view.getNextDocument(doc); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

2. This agent full-text searches the “By Category” view on a word or


words supplied by the user as the agent comment. The agent then
prints the number of documents located and the value of the Subject
item of each document in the filtered view.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Agent agent = agentContext.getCurrentAgent();
String searchString = agent.getComment();
View view = db.getView("By Category");
db.updateFTIndex(true);
int count = view.FTSearch(searchString, 0);
if (count == 0)
System.out.println("Nothing found");
else {
System.out.println(count + " found");
Document doc = view.getFirstDocument();
while (doc != null) {

2250 Domino Designer Programming Guide, Volume 3: JavaScript Classes


View class

System.out.println(doc.getItemValueString("Subject"));
doc = view.getNextDocument(doc); } }
} catch(Exception e) {
e.printStackTrace();
}
}
}

getAllDocumentsByKey method
Finds documents based on their column values within a view. You create a
key or vector of keys, where each key corresponds to a value in a sorted
column in the view. The method returns all documents whose column
values match the keys.

Defined in
View

Syntax
public DocumentCollection getAllDocumentsByKey(java.util.Vector
keys)
throws NotesException
public DocumentCollection getAllDocumentsByKey(Object key)
throws NotesException
public DocumentCollection getAllDocumentsByKey(java.util.Vector
keys, boolean exact)
throws NotesException
public DocumentCollection getAllDocumentsByKey(Object key, boolean
exact)
throws NotesException

Parameters
java.util.Vector keys

String, Number, DateTime, or DateRange objects that are compared to


sorted columns in the view. The first element in the vector is compared
to the first sorted column in the view; the second element is compared
to the second sorted column; and so on.
Object key

A String, Number, DateTime, or DateRange object that is compared to


the first sorted column in the view.

Chapter 10: Java Classes A–Z 2251


View class

boolean exact

True if you want to find an exact match. If you specify false or omit this
parameter, a partial match succeeds.

Return value
DocumentCollection

All documents in the view whose column values match each of the
keys. If no documents match, the collection is empty and the count
is zero.

Usage
This method returns all the documents whose column values match the
keys. To locate just the first document, use getDocumentByKey.
Documents returned by this method are in no particular order, and do not
provide access to column values. Use getAllEntriesByKey for these
capabilities.
The use of partial matches with multiple keys may result in missed
documents. If the first key is partial and the second column does not sort
the same with the partial key as with the exact key, documents that fall out
of sequence are missed.

Examples: getAllDocumentsByKey method


1. This agent gets all the documents in the category “Spanish leather” in
the By Category view of the current database, and puts them in the
Boots folder.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
DocumentCollection dc =
view.getAllDocumentsByKey("Spanish leather", false);
dc.putAllInFolder("Boots");
} catch(Exception e) {
e.printStackTrace();
}
}
}

2252 Domino Designer Programming Guide, Volume 3: JavaScript Classes


View class

2. This agent gets all the documents in the category “Boots” and the
subcategory “Spanish leather” in the By Category view of the current
database, and puts them in the Boots folder.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
Vector v = new Vector();
v.addElement("Boots");
v.addElement("Spanish leather");
Document doc =
view.getDocumentByKey(v, false);
doc.putInFolder("Boots");
} catch(Exception e) {
e.printStackTrace();
}
}
}

getAllEntriesByKey method
Finds view entries of type document based on their column values within a
view. You create a key or vector of keys, where each key corresponds to a
value in a sorted column in the view. The method returns all entries whose
column values match the keys.

Defined in
View

Syntax
public ViewEntryCollection getAllEntriesByKey(java.util.Vector keys)
throws NotesException
public ViewEntryCollection getAllEntriesByKey(Object key)
throws NotesException

Chapter 10: Java Classes A–Z 2253


View class

public ViewEntryCollection getAllEntriesByKey(java.util.Vector keys,


boolean exact)
throws NotesException
public ViewEntryCollection getAllEntriesByKey(Object key, boolean
exact)
throws NotesException

Parameters
java.util.Vector keys

String, Number, DateTime, or DateRange objects that are compared to


sorted columns in the view. The first element in the vector is compared
to the first sorted column in the view; the second element is compared
to the second sorted column; and so on.
Object key

A String, Number, DateTime, or DateRange object that is compared to


the first sorted column in the view.
boolean exact

True if you want to find an exact match. If you specify false or omit this
parameter, a partial match succeeds.

Return value
ViewEntryCollection

All entries of type document in the view whose column values match
each of the keys. If no entries match, the collection is empty and the
count is zero.

Usage
This method returns all the view entries of type document whose column
values match the keys. To locate just the first entry, use getEntryByKey.
Entries returned by this method are in view order and provide access to
column values, unlike getAllDocumentsByKey.
The use of partial matches with multiple keys may result in missed
entries. If the first key is partial and the second column does not sort the
same with the partial key as with the exact key, entries that fall out of
sequence are missed.

Examples: getAllEntriesByKey method


1. This example gets all document entries in the category “Spanish
leather” in the By Category view of the current database.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {

2254 Domino Designer Programming Guide, Volume 3: JavaScript Classes


View class

try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
ViewEntryCollection vec =
view.getAllEntriesByKey("Spanish leather", false);
System.out.println("Number of entries found = " +
vec.getCount());
} catch(Exception e) {
e.printStackTrace();
}
}
}

2. This example gets all document entries in the category “Boots” and the
subcategory “Spanish leather” in the By Category view of the current
database.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
Vector v = new Vector();
v.addElement("Boots");
v.addElement("Spanish leather");
ViewEntryCollection vec =
view.getAllEntriesByKey(v, false);
System.out.println("Number of entries = " +
vec.getCount());
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 2255


View class

getChild method
Given a document in a view, returns the first response to the document.

Defined in
View

Syntax
public Document getChild(Document doc)
throws NotesException

Parameter
Document doc

Any document in the view. Cannot be null.

Return value
Document

The first response document to the parameter you specify. Returns null
if there are no responses to the document.

Usage
To find additional response documents, use getNextSibling. The
combination of getChild and getNextSibling allows you to access a
document responses, sorted in the same order that they appear in a view.
To get all the immediate responses for a document unsorted, use
getResponses in Document.
If you’ve filtered the view with the FTSearch method, getChild returns the
next document in the view, regardless of level.

Example: getChild and getNextSibling methods


This agent gets the first document sorted by the key “Internet” and all its
response documents to two levels.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
Document doc = view.getDocumentByKey("Internet");
System.out.println
("Project name: " + doc.getItemValueString("Subject"));
Document response = view.getChild(doc);

2256 Domino Designer Programming Guide, Volume 3: JavaScript Classes


View class

Document rtor;
while (response != null) {
System.out.println
("\t" + response.getItemValueString("Subject"));
rtor = view.getChild(response);
while (rtor != null) {
System.out.println
("\t\t" + rtor.getItemValueString("Subject"));
rtor = view.getNextSibling(rtor); }
response = view.getNextSibling(response); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

getColumn method
Returns a specified column in a view.

Defined in
View

Syntax
public ViewColumn getColumn(int columnNumber)
throws NotesException

Parameter
int columnNumber

A column number where 1 is the first column. Cannot be less than 1 or


greater than the number of columns in the view.

Return value
ViewColumn

The specified column.

Example: getColumn method


This agent gets the title of the first column in a view.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)

Chapter 10: Java Classes A–Z 2257


View class

Database db = agentContext.getCurrentDatabase();
View view = db.getView("All Documents");
ViewColumn column = view.getColumn(1);
String title = column.getTitle();
if (title.length() == 0) title = "No title";
System.out.println
("First column is \"" + title + "\"");
} catch(Exception e) {
e.printStackTrace();
}
}
}

getDocumentByKey method
Finds a document based on its column values within a view. You create a
key or vector of keys, where each key corresponds to a value in a sorted
column in the view. The method returns the first document with column
values that match the keys.

Defined in
View

Syntax
public Document getDocumentByKey(java.util.Vector keys)
throws NotesException
public Document getDocumentByKey(Object key)
throws NotesException
public Document getDocumentByKey(java.util.Vector keys, boolean
exact)
throws NotesException
public Document getDocumentByKey(Object key, boolean exact)
throws NotesException

Parameters
java.util.Vector keys

String, Number, DateTime, or DateRange objects that are compared to


sorted columns in the view. The first element in the vector is compared
to the first sorted column in the view; the second element is compared
to the second sorted column; and so on.
Object key

A String, Number, DateTime, or DateRange object that is compared to


the first sorted column in the view.

2258 Domino Designer Programming Guide, Volume 3: JavaScript Classes


View class

boolean exact

True if you want to find an exact match. If you specify false or omit this
parameter, a partial match succeeds.

Return value
Document

The first document in the view with column valuesthat match the keys.
Returns null if there are no matching documents.

Usage
This method returns only the first document with column values that match
the strings you indicate. To locate all matching documents, use
getAllDocumentsByKey.

Examples: getDocumentByKey method


1. This agent gets the first document in the first category that begins with
“Spanish” in the By Category view of the current database.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
Document doc =
view.getDocumentByKey("Spanish leather", false);
if (doc != null)
doc.putInFolder("Boots");
} catch(Exception e) {
e.printStackTrace();
}
}
}
2. This agent gets the first document in the category “Boots” in the
subcategory “Spanish leather” in the By Category view of the current
database.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =

Chapter 10: Java Classes A–Z 2259


View class

session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
Vector v = new Vector();
v.addElement("Boots");
v.addElement("Spanish leather");
Document doc =
view.getDocumentByKey(v, false);
doc.putInFolder("Boots");
} catch(Exception e) {
e.printStackTrace();
}
}
}

getEntryByKey method
Finds a view entry based on its column values within a view. You create a
key or vector of keys, where each key corresponds to a value in a sorted
column in the view. The method returns the first entry with column values
that match the keys.

Defined in
View

Syntax
public ViewEntry getEntryByKey(java.util.Vector keys)
throws NotesException
public ViewEntry getEntryByKey(Object key)
throws NotesException
public ViewEntry getEntryByKey(java.util.Vector keys, boolean exact)
throws NotesException
public ViewEntry getEntryByKey(Object key, boolean exact)
throws NotesException

Parameters
java.util.Vector keys

String, Number, DateTime, or DateRange objects that are compared to


sorted columns in the view. The first element in the vector is compared
to the first sorted column in the view; the second element is compared
to the second sorted column; and so on.

2260 Domino Designer Programming Guide, Volume 3: JavaScript Classes


View class

Object key

A String, Number, DateTime, or DateRange object that is compared to


the first sorted column in the view.
boolean exact

True if you want to find an exact match. If you specify false or omit this
parameter, a partial match succeeds.

Return value
ViewEntry

The first entry in the view with column values that match the keys.
Returns null if there are no matching entries.

Usage
This method returns only the first entry with column values that match the
strings you indicate. To locate all matching documents, use
getAllEntriesByKey.

Examples: getEntryByKey method


1. This agent gets the first entry in the first category that begins with
“Spanish” in the By Category view of the current database.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
ViewEntry entry =
view.getEntryByKey("Spanish leather", false);
if (entry != null) {
Vector v = entry.getColumnValues();
for (int i=0; i<v.size(); i++)
System.out.println((i+1) + " " +
v.elementAt(i)); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 2261


View class

2. This agent gets the first entry in the category “Boots” in the subcategory
“Spanish leather” in the By Category view of the current database.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
Vector v = new Vector();
v.addElement("Boots");
v.addElement("Spanish leather");
ViewEntry entry =
view.getEntryByKey(v, false);
if (entry != null) {
Vector columns = entry.getColumnValues();
for (int i=0; i<columns.size(); i++)
System.out.println((i+1) + " " +
columns.elementAt(i)); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

getFirstDocument method
Returns the first document in a view.

Defined in
View

Syntax
public Document getFirstDocument()
throws NotesException

Return value
Document

The first document in the view. Returns null if there are no documents
in the view.

2262 Domino Designer Programming Guide, Volume 3: JavaScript Classes


View class

Usage
If the view is filtered by FTSearch, this method returns the first document in
the filtered view.
The ViewNavigator and ViewEntryCollection classes provide more efficient
methods for navigating views and accessing entries.

Example: getFirstDocument method


This agent gets the first document in the By Category view of the current
database.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
System.out.println
("***By Category view - first document***");
Document doc = view.getFirstDocument();
System.out.println
("\t" + doc.getItemValueString("Subject"));
} catch(Exception e) {
e.printStackTrace();
}
}
}

getLastDocument method
Returns the last document in a view.

Defined in
View

Syntax
public Document getLastDocument()
throws NotesException

Return value
Document

The last document in the view. Returns null if there are no documents
in the view.

Chapter 10: Java Classes A–Z 2263


View class

Usage
If the view is filtered by FTSearch, this method returns the last document in
the filtered view.
The ViewNavigator and ViewEntryCollection classes provide more efficient
methods for navigating views and accessing entries.

Example: getLastDocument method


This agent gets the last document in the By Category view of the current
database.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
System.out.println
("***By Category view - last document***");
Document doc = view.getLastDocument();
System.out.println
("\t" + doc.getItemValueString("Subject"));
} catch(Exception e) {
e.printStackTrace();
}
}
}

getNextDocument method
Given a document in a view, returns the document immediately following
it.

Defined in
View

Syntax
public Document getNextDocument(Document doc)
throws NotesException

Parameter
Document doc

Any document in the view. Cannot be null.

2264 Domino Designer Programming Guide, Volume 3: JavaScript Classes


View class

Return value
Document

The document in the view following the specified parameter. Returns


null if there are no more documents in the view.

Usage
This method returns the next document in the view regardless of what type
of document it is (document, response, or response-to-response). If you
want the next sibling document in the view, use getNextSibling.
If the view is filtered by FTSearch, this method returns the next document
in the filtered view.
The ViewNavigator and ViewEntryCollection classes provide more efficient
methods for navigating views and accessing entries.

Example: getNextDocument method


This agent gets all the documents in the By Category view of the current
database.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
System.out.println
("***By Category view - all documents***");
Document doc = view.getFirstDocument();
while (doc != null) {
System.out.println
("\t" + doc.getItemValueString("Subject"));
doc = view.getNextDocument(doc); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 2265


View class

getNextSibling method
Given a document in a view, returns the document immediately following
it at the same level. If you send the method a main document, the next main
document in the view is returned. If you send a response document, the
next response document with the same parent is returned.
If the view is categorized, the next sibling is in the same category as the
original document.

Defined in
View

Syntax
public Document getNextSibling(Document doc)
throws NotesException

Parameter
Document doc

Any document in the view. Cannot be null.

Return value
Document

The document following the parameter, at the same level in the view.
Returns null if there are no more siblings.

Usage
You can use getNextSibling to:
Move from one main document to the next, skipping any response
documents in between
Visit the response documents of a particular parent document (use
getChild to find the first response)
Visit the response-to-response documents of a particular parent
document (use getChild to find the first response-to-response)
If you filtered the view with FTSearch, getNextSibling returns the next
document in the view, regardless of level.

Siblings
Two documents are siblings if:
They are both main documents, or
They are both responses or response-to-responses and they share the
same parent document

2266 Domino Designer Programming Guide, Volume 3: JavaScript Classes


View class

The last sibling


This method returns null when the parameter is:
The last main document in a view
The last response (or response-to-response) to a particular parent

getNthDocument method
Returns the document at a specified position in the top level of a view.

Defined in
View

Syntax
public Document getNthDocument(int n)
throws NotesException

Parameter
int n

Integer. A number indicating the document to return. Use 1 to indicate


the first document in the view, 2 to indicate the second document, and
so on.

Return value
Document

The document in the nth position in the view. Returns null if there is no
document at the specified position.

Usage
This method accesses only top-level (main) documents in a view; response
documents are excluded.
In a categorized view, this method returns only the first document in each
main category (not each subcategory).
If you do not have reader access to the specified document, this method
returns the next document to which you have reader access. If you
increment n, the increment is relative to the actual value of n, not the
document that was accessed. So you will access the same document
repeatedly until that document actually is the nth document.
This method is useful when used in combination with FTSearch, which
returns the number of documents that remain in a view after it’s been
filtered with a full-text search.

Chapter 10: Java Classes A–Z 2267


View class

Example: getNthDocument method


This agent performs a full-text search on the By Category view in the
current database. Once the folder is filtered so that it contains only those
documents with the words “DELETE ME,” the agent removes each of these
documents. It then clears the full-text search.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
Document doc;
db.updateFTIndex(true);
int count = view.FTSearch("DELETE ME", 0);
for (int i=0; i<count; i++) {
doc = view.getNthDocument(i+1);
doc.remove(true); }
view.clear();
} catch(Exception e) {
e.printStackTrace();
}
}
}

getParentDocument method
Given a response document in a view, returns its parent document.

Defined in
View

Syntax
public Document getParentDocument(Document doc)
throws NotesException

Parameter
Document doc

Any document in the view. Cannot be null.

2268 Domino Designer Programming Guide, Volume 3: JavaScript Classes


View class

Return value
Document

The parent of the parameter (the document to which the parameter is a


response). If you have filtered the view using FTSearch,
getParentDocument returns the previous document in the view,
regardless of level. Returns null for a main document.

Usage
The document returned by getParentDocument may be a main document, a
response, or a response-to-response.

Example: getParentDocument and getPrevSibling methods


This agent finds the parent of the last document in the By Category view of
the current database and counts its direct response documents.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
Document doc = view.getLastDocument();
if (doc.isResponse()) {
Document parent = view.getParentDocument(doc);
System.out.print
("Last document in \"By Category\" is \"" +
parent.getItemValueString("Subject") + "\"");
int count = 1;
doc = view.getPrevSibling(doc);
while (doc != null) {
count++;
doc = view.getPrevSibling(doc); }
System.out.println
(" with " + count + " responses"); }
else
System.out.println
("Last document in \"By Category\" is \"" +
doc.getItemValueString("Subject") + "\"");
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 2269


View class

getPrevDocument method
Given a document in a view, returns the document immediately
preceding it.

Defined in
View

Syntax
public Document getPrevDocument(Document doc)
throws NotesException

Parameter
Document doc

Any document in the view. Cannot be null.

Return value
Document

The document preceding the parameter. Returns null if there is no


preceding document.

Usage
If the view is filtered by FTSearch, this method returns the next document
in the filtered view.
The ViewNavigator and ViewEntryCollection classes provide more efficient
methods for navigating views and accessing entries.

Example: getPrevDocument method


This agent gets all the documents in the By Category view of the current
database in reverse order.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
System.out.println
("***By Category view - all documents in reverse***");
Document doc = view.getLastDocument();
while (doc != null) {
System.out.println
("\t" + doc.getItemValueString("Subject"));

2270 Domino Designer Programming Guide, Volume 3: JavaScript Classes


View class

doc = view.getPrevDocument(doc); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

getPrevSibling method
Given a document in a view, returns the document immediately preceding
it at the same level. If you use this method on a main document, the
preceding main document in the view is returned. If you use it on a
response document, the preceding response document with the same
parent is returned.
If the view is categorized, the previous sibling is in the same category as the
original document.

Defined in
View

Syntax
public Document getPrevSibling(Document doc)
throws NotesException

Parameter
Document doc

Any document in the view. Cannot be null.

Return value
Document

The document preceding the parameter, at the same level. Returns null
if there is no previous sibling in the view.

Usage
You can use getPrevSibling to move from one main document to the next,
skipping any response documents in between.
If you filtered the view using FTSearch, getPrevSibling returns the previous
document in the view, regardless of level.

Chapter 10: Java Classes A–Z 2271


View class

Siblings
Two documents are siblings if:
They are both main documents, or
They are both responses or response-to-responses and share the same
parent document.

The first sibling


This method returns null when the parameter is:
The first main document in a view
The first response (or response-to-response) to a particular parent

refresh method
Updates view contents with any changes that have occurred to the database
since the View object was created, or since the last refresh.

Defined in
View

Syntax
public void refresh()
throws NotesException

Usage
Navigation through a view is not normally affected by changes to the
actual database, since the View object is a snapshot of the view contents
at a particular time. Additions and deletions to the view that occur after
the View object is created may not be reflected in the View object until you
call refresh.
After a refresh, existing ViewEntry objects may contain invalid information.
They should not be used for navigation or the creation of ViewNavigator
objects.
If isAutoUpdate is true, refresh occurs automatically on every navigation in
the view.
For remote (IIOP) operations, refresh invalidates the cache.

2272 Domino Designer Programming Guide, Volume 3: JavaScript Classes


View class

Example: refresh method


This agent refreshes the view before retrieving a document from it if the
view was modified.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
// Open view and sleep for 10 seconds
View view = db.getView("By Category");
sleep(10000);
// Meanwhile someone else may have modified the view
view.refresh();
// Do your work
Document getdoc = view.getDocumentByKey("Latest news");
if (getdoc == null)
System.out.println("getdoc is null");
else
System.out.println(getdoc.getItemValueString("Subject"));
} catch(Exception e) {
e.printStackTrace();
}
}
}

remove method
Permanently removes a view from a database.

Defined in
View

Syntax
public void remove()
throws NotesException

Usage
The removed view may still appear in the user interface until the user closes
and opens the database.
A subsequent call to a method of the view, or a method of a navigator based
on the view, throws an exception.

Chapter 10: Java Classes A–Z 2273


ViewColumn class

Example: remove method


This agent deletes the view specified by the user in the agent comment from
the current database.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Agent agent = agentContext.getCurrentAgent();
View view = db.getView(agent.getComment());
System.out.println
("Removing " + view.getName());
view.remove();
} catch(Exception e) {
e.printStackTrace();
}
}
}

ViewColumn class
Represents a column in a view or folder.

Syntax
public class ViewColumn extends Base

Containment
Contained by: View

Properties
Alignment through getAlignment
DateFmt through getDateFmt
FontColor through getFontColor
FontFace through getFontFace
FontPointSize through getFontPointSize
FontStyle through getFontStyle
Formula through getFormula
HeaderAlignment through getHeaderAlignment

2274 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewColumn class

IsAccentSensitiveSort through isAccentInsensitiveSort


IsCaseSensitiveSort through isCaseInsensitiveSort
IsCategory through isCategory
IsField through isField
IsFormula through isFormula
IsHidden through isHidden
IsHideDetail through isHideDetail
IsIcon through isIcon
IsResize through isResize
IsResortAscending through isResortAscending
IsResortDescending through isResortDescending
IsResortToView through isResortToView
IsResponse through isResponse
IsSecondaryResort through isSecondaryResort
IsSecondaryResortDescending through isSecondaryResortDescending
IsShowTwistie through isShowTwistie
IsSortDescending through isSortDescending
IsSorted through isSorted
ItemName through getItemName
ListSep through getListSep
NumberAttrib through getNumberAttrib
NumberDigits through getNumberDigits
NumberFormat through getNumberFormat
Parent through getParent
Position through getPosition
TimeDateFmt through getTimeDateFormat
TimeFormat through getTimeFormat
TimeZoneFmt through getTimeZoneFormat
Title through getTitle
Width through getWidth

Chapter 10: Java Classes A–Z 2275


ViewColumn class

Access
You access an existing ViewColumn object through the view or folder that
contains it. Use getColumns or getColumn in View.

Examples: ViewColumn class and Title property


1. This agent prints the title (or “No title”) and position of each column in
the “By Category” view of the current database.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
System.out.println("By Category view");
Vector columns = view.getColumns();
if (columns.size() != 0) {
for (int i=0; i<columns.size(); i++) {
ViewColumn column =
(ViewColumn)columns.elementAt(i);
String vtitle = column.getTitle();
if (vtitle == "") vtitle = "No title";
System.out.println("\t" +
column.getPosition() + " " + vtitle); } }
} catch(Exception e) {
e.printStackTrace();
}
}
}
2. This agent prints the title (or “No title”) and position of the first sorted
column in the “By Category” view of the current database.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
System.out.println("By Category view");

2276 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewColumn class

Vector columns = view.getColumns();


ViewColumn column = null;
boolean gotIt = false;
if (columns.size() != 0) {
for (int i=0; i<columns.size(); i++) {
column = (ViewColumn)columns.elementAt(i);
if (column.isSorted()) {
gotIt = true; break; } }
if (gotIt) {
String vtitle = column.getTitle();
if (vtitle == "") vtitle = "No title";
System.out.println("First sorted column is \"" +
vtitle + "\" in position " +
column.getPosition()); }
else
System.out.println("No sorted columns"); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

Alignment property
Read-only. The alignment of data in a column.

Defined in
ViewColumn

Data type
int

Syntax
public int getAlignment()
throws NotesException

Legal values
ViewColumn.ALIGN_CENTER
ViewColumn.ALIGN_LEFT
ViewColumn.ALIGN_RIGHT

Example: Alignment and HeaderAlignment properties


This agent prints the alignment of the column and the column header.
import lotus.domino.*;
import java.util.Vector;

Chapter 10: Java Classes A–Z 2277


ViewColumn class

public class JavaAgent extends AgentBase {

String theAlignment(int n) {
String align = null;
switch (n) {
case ViewColumn.ALIGN_CENTER : align = "center"; break;
case ViewColumn.ALIGN_LEFT : align = "left";break;
case ViewColumn.ALIGN_RIGHT : align = "right"; break; }
return align; }
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
Vector columns = view.getColumns();
for (int i=0; i<columns.size(); i++) {
ViewColumn column = (ViewColumn)columns.elementAt(i);
System.out.println(column.getPosition() +
" Alignment = " + theAlignment(column.getAlignment())
+ ", Header alignment = " +
theAlignment(column.getHeaderAlignment())); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

DateFmt property
Read-only. The format of date data in a column.

Defined in
ViewColumn

Data type
int

Syntax
public int getDateFmt()
throws NotesException

2278 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewColumn class

Legal values
ViewColumn.DT_MD (month and day)
ViewColumn.DT_YM (year and month)
ViewColumn.DT_Y4M (4-digit year and month)
ViewColumn.DT_YMD (year, month, and day)

Example: DateFmt, TimeDateFmt, TimeFmt, and TimeZoneFmt


properties
This agent prints the column formatting information associated with dates
and times.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("All Documents");
Vector columns = view.getColumns();
for (int i=0; i<columns.size(); i++) {
ViewColumn column = (ViewColumn)columns.elementAt(i);
String tdf = null;
switch (column.getTimeDateFmt()) {
case ViewColumn.FMT_DATE : tdf = "Date only"; break;
case ViewColumn.FMT_DATETIME : tdf = "Date and
time"; break;
case ViewColumn.FMT_TIME : tdf = "Time only"; break;
case ViewColumn.FMT_TODAYTIME : tdf = "Today
and time"; break; }
String df = null;
switch (column.getDateFmt()) {
case ViewColumn.FMT_MD : df = "MD"; break;
case ViewColumn.FMT_YM : df = "YM"; break;
case ViewColumn.FMT_YMD : df = "YMD"; break;
case ViewColumn.FMT_Y4M : df = "Y4M"; break; }
String tf = null;
switch (column.getTimeFmt()) {
case ViewColumn.FMT_H : tf = "H"; break;
case ViewColumn.FMT_HM : tf = "HM"; break;
case ViewColumn.FMT_HMS : tf = "HMS"; break;
default : tf = "not a time format"; }
String zf = null;
switch (column.getTimeZoneFmt()) {
case ViewColumn.FMT_ALWAYS : zf = "always" ;

Chapter 10: Java Classes A–Z 2279


ViewColumn class

case ViewColumn.FMT_NEVER : zf = "never" ;


case ViewColumn.FMT_SOMETIMES : zf = "sometimes";
default : zf = "not zoned"; }
System.out.println(column.getPosition() +
" " + tdf + " " + df + " " + tf + " " + zf); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

FontColor property
Read-only. The font color of data in a column.

Defined in
ViewColumn

Data type
int

Syntax
public int getFontColor()
throws NotesException

Legal values
RichTextStyle.COLOR_BLACK
RichTextStyle.COLOR_BLUE
RichTextStyle.COLOR_CYAN
RichTextStyle.COLOR_DARK_BLUE
RichTextStyle.COLOR_DARK_CYAN
RichTextStyle.COLOR_DARK_GREEN
RichTextStyle.COLOR_DARK_MAGENTA
RichTextStyle.COLOR_DARK_RED
RichTextStyle.COLOR_DARK_YELLOW
RichTextStyle.COLOR_GRAY
RichTextStyle.COLOR_GREEN
RichTextStyle.COLOR_LIGHT_GRAY
RichTextStyle.COLOR_MAGENTA

2280 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewColumn class

RichTextStyle.COLOR_RED
RichTextStyle.COLOR_WHITE
RichTextStyle.COLOR_YELLOW

Example: FontColor, FontFace, FontSize, and FontStyle properties


This agent prints the column information associated with fonts.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("All Documents");
Vector columns = view.getColumns();
for (int i=0; i<columns.size(); i++) {
ViewColumn column = (ViewColumn)columns.elementAt(i);
String fc = null;
switch (column.getFontColor()) {
case RichTextStyle.COLOR_BLACK :
fc = "black"; break;
case RichTextStyle.COLOR_WHITE :
fc = "white"; break;
case RichTextStyle.COLOR_RED :
fc = "red"; break;
case RichTextStyle.COLOR_GREEN :
fc = "green"; break;
case RichTextStyle.COLOR_BLUE :
fc = "blue"; break;
case RichTextStyle.COLOR_MAGENTA :
fc = "magenta"; break;
case RichTextStyle.COLOR_YELLOW :
fc = "yellow"; break;
case RichTextStyle.COLOR_CYAN :
fc = "cyan"; break;
case RichTextStyle.COLOR_DARK_RED :
fc = "dark red"; break;
case RichTextStyle.COLOR_DARK_GREEN :
fc = "dark green"; break;
case RichTextStyle.COLOR_DARK_BLUE :
fc = "dark blue"; break;
case RichTextStyle.COLOR_DARK_MAGENTA :
fc = "dark magenta"; break;
case RichTextStyle.COLOR_DARK_YELLOW :
fc = "dark yellow"; break;

Chapter 10: Java Classes A–Z 2281


ViewColumn class

case RichTextStyle.COLOR_DARK_CYAN :
fc = "dark cyan"; break;
case RichTextStyle.COLOR_GRAY :
fc = "gray"; break;
case RichTextStyle.COLOR_LIGHT_GRAY :
fc = "light gray"; break;
default : fc = "no color"; }
String fs = null;
if ((column.getFontStyle() & ViewColumn.FONT_BOLD) ==
ViewColumn.FONT_BOLD) fs = "bold";
else fs = "plain";
if ((column.getFontStyle() &
ViewColumn.FONT_ITALIC) ==
ViewColumn.FONT_ITALIC) fs = fs + " italic";
if ((column.getFontStyle() &
ViewColumn.FONT_UNDERLINE) ==
ViewColumn.FONT_UNDERLINE) fs = fs + " underline";
if ((column.getFontStyle() &
ViewColumn.FONT_STRIKEOUT) ==
ViewColumn.FONT_STRIKEOUT) fs = fs + " strikeout";
System.out.println(column.getPosition() + " " +
column.getFontFace() + " " + column.getFontPointSize()
+ " " + fs + " " + fc); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

FontFace property
Read-only. The font face of data in a column.

Defined in
ViewColumn

Data type
String

Syntax
public String getFontFace()
throws NotesException

2282 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewColumn class

FontPointSize property
Read-only. The font point size of data in a column.

Defined in
ViewColumn

Data type
int

Syntax
public int getFontPointSize()
throws NotesException

FontStyle
Read-only. The font style of data in a column.

Defined in
ViewColumn

Data type
int

Syntax
public int getFontStyle()
throws NotesException

Legal values
ViewColumn.FONT_BOLD
ViewColumn.FONT_ITALIC
ViewColumn.FONT_UNDERLINE
ViewColumn.FONT_STRIKEOUT

Usage
The font style can have multiple values. For example, the style might be
ViewColumn.FONT_BOLD and ViewColumn.FONT_ITALIC.

Chapter 10: Java Classes A–Z 2283


ViewColumn class

Formula property
Read-only. The formula for a column, if applicable.

Defined in
ViewColumn

Data type
String

Syntax
public String getFormula()
throws NotesException

Usage
If the column is a field, this property usually returns an empty string, but in
some cases returns the field name. To reliably access the field name, use
getItemName.
If the column is a simple function, this property returns the @function
formula equivalent. For example, if the column is the simple function
Creation Date, this property returns “@Created.”
If the column is a formula, this property returns the entire formula.

Example: Formula, isField, isFormula, ItemName, and Position


properties
For each column in the “By Category” view of the current database, this
agent prints the column formula or the column item name, depending on
how the column is calculated.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
System.out.println("\"By Category\" view");
Vector columns = view.getColumns();
String colAction = null;
for (int i=0; i<columns.size(); i++) {
ViewColumn column = (ViewColumn)columns.elementAt(i);
String vtitle = column.getTitle();
if (vtitle == "") vtitle = "No title";

2284 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewColumn class

System.out.println("\n" + column.getPosition() +
" " + vtitle);
if (column.isFormula())
colAction = column.getFormula();
else if (column.isField())
colAction = column.getItemName();
System.out.println(colAction); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

HeaderAlignment property
Read-only. The alignment of the header in a column.

Defined in
ViewColumn

Data type
int

Syntax
public int getHeaderAlignment()
throws NotesException

Legal values
ViewColumn.ALIGN_CENTER
ViewColumn.ALIGN_LEFT
ViewColumn.ALIGN_RIGHT

IsAccentSensitiveSort property
Read-only. Indicates if a column is sorted with regard to accent.

Defined in
ViewColumn

Data type
boolean

Chapter 10: Java Classes A–Z 2285


ViewColumn class

Syntax
public boolean isAccentSensitiveSort()
throws NotesException

Legal values
True if the column is sorted with regard to accent.
False if the column is sorted without regard to accent.

IsCaseSensitiveSort property
Read-only. Indicates if a column is sorted with regard to case.

Defined in
ViewColumn

Data type
boolean

Syntax
public boolean isCaseSensitiveSort()
throws NotesException

Legal values
True if the column is sorted with regard to case.
False if the column is sorted without regard to case.

IsCategory property
Read-only. Indicates if a column is categorized.

Defined in
ViewColumn

Data type
boolean

Syntax
public boolean isCategory()
throws NotesException

2286 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewColumn class

Legal values
True if the column is categorized.
False if the column is not categorized.

Usage
If isCategory returns true, isSorted also returns true, since columns that are
categorized must also be sorted.

IsField property
Read-only. Indicates if column values are based on field values.

Defined in
ViewColumn

Data type
boolean

Syntax
public boolean isField()
throws NotesException

Legal values
True if the column is based on field values.
False if the column is not based on field values.

Usage
This property returns true if the column is a field.

IsFormula property
Read-only. Indicates if column values are based on a formula.

Defined in
ViewColumn

Data type
boolean

Syntax
public boolean isFormula()
throws NotesException

Chapter 10: Java Classes A–Z 2287


ViewColumn class

Legal values
True if the column is based on a formula.
False if the column is not based on a formula.

Usage
This property returns true in the following cases:
The column is a simple function.
The column is a formula, even if the formula is a field name or
evaluates to a field name.

IsHidden property
Read-only. Indicates if a column is hidden.

Defined in
ViewColumn

Data type
boolean

Syntax
public boolean isHidden()
throws NotesException

Legal values
True if the column is hidden.
False if the column is not hidden.

IsHideDetail property
Read-only. Indicates if the details for total columns are hidden.

Defined in
ViewColumn

Data type
boolean

Syntax
public boolean isHideDetail()
throws NotesException

2288 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewColumn class

Legal values
True if the details for totals are hidden.
False if the details for totals are displayed.

Example: IsHideDetail, IsIcon, and IsResize properties


This agent prints information about the IsHideDetail, IsIcon, and IsResize
properties.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
System.out.println("\"By Category\" view");
Vector columns = view.getColumns();
for (int i=0; i<columns.size(); i++) {
ViewColumn column = (ViewColumn)columns.elementAt(i);
String vtitle = column.getTitle();
if (vtitle == "") vtitle = "No title";
System.out.println("\n" + column.getPosition() +
" " + vtitle);
if (column.isHideDetail())
System.out.println
("Hide details for total columns");
if (column.isIcon())
System.out.println
("Column values displayed as icons");
if (column.isResize())
System.out.println("Column is resizable"); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 2289


ViewColumn class

IsIcon property
Read-only. Indicates if column values are displayed as icons.

Defined in
ViewColumn

Data type
boolean

Syntax
public boolean isIcon()
throws NotesException

Legal values
True if column values are displayed as icons.
False if column values are not displayed as icons.

IsResize property
Read-only. Indicates if a column is resizable.

Defined in
ViewColumn

Data type
boolean

Syntax
public boolean isResize()
throws NotesException

Legal values
True if a column is resizable.
False if a column is not resizable.

IsResortAscending property
Read-only. Indicates if a resortable column can be resorted in ascending
order.

Defined in
ViewColumn

2290 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewColumn class

Data type
boolean

Syntax
public boolean isResortAscending()
throws NotesException

Legal values
True if a resortable column can be resorted in ascending order.
False if a resortable column cannot be resorted in ascending order.

IsResortDescending property
Read-only. Indicates if a resortable column can be resorted in descending
order.

Defined in
ViewColumn

Data type
boolean

Syntax
public boolean isResortDescending()
throws NotesException

Legal values
True if a resortable column can be resorted in descending order.
False if a resortable column cannot be resorted in descending order.

IsResortToView property
Read-only. Indicates if a sorted column is resortable, that is, if the user can
click on the column header to resort.

Defined in
ViewColumn

Data type
boolean

Chapter 10: Java Classes A–Z 2291


ViewColumn class

Syntax
public boolean isResortToView()
throws NotesException

Legal values
True if a column is resortable.
False if a column is resortable.

IsResponse property
Read-only. Indicates if a column contains only response documents.

Defined in
ViewColumn

Data type
boolean

Syntax
public boolean isResponse()
throws NotesException

Legal values
True if the column contains only response documents.
False if the column contains any kind of document.

Example: IsResponse property


This agent prints whether the “By Author” view of the current database
contains a response-only column.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Author");
Vector columns = view.getColumns();
ViewColumn column = null;
boolean gotIt = false;
for (int i=0; i<columns.size(); i++) {
column = (ViewColumn)columns.elementAt(i);
if (column.isResponse()) {

2292 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewColumn class

gotIt = true; break; } }


if (gotIt)
System.out.println
("At least one response-only column");
else
System.out.println
("No response-only column");
} catch(Exception e) {
e.printStackTrace();
}
}
}

IsSecondaryResort property
Read-only. Indicates if a column is a secondary resortable column.

Defined in
ViewColumn

Data type
boolean

Syntax
public boolean isSecondaryResort()
throws NotesException

Legal values
True if a column is a secondary resortable column.
False if a column is a secondary resortable column.

IsSecondaryResortDescending property
Read-only. Indicates if a secondary resortable column is sorted in
descending order.

Defined in
ViewColumn

Data type
boolean

Chapter 10: Java Classes A–Z 2293


ViewColumn class

Syntax
public boolean isSecondaryResortDescending()
throws NotesException

Legal values
True if a secondary resortable column is descending.
False if a secondary resortable column is ascending.

IsShowTwistie property
Read-only. Indicates if an expandable column displays a twistie.

Defined in
ViewColumn

Data type
boolean

Syntax
public boolean isShowTwistie()
throws NotesException

Legal values
True if an expandable column displays a twistie.
False if an expandable column does not display a twistie.

IsSortDescending property
Read-only. Indicates if a sorted column is sorted in descending order.

Defined in
ViewColumn

Data type
boolean

Syntax
public boolean isSortDescending()
throws NotesException

Legal values
True if a sorted column is descending.
False if a sorted column is ascending.

2294 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewColumn class

IsSorted property
Read-only. Indicates if a column is sorted.

Defined in
ViewColumn

Data type
boolean

Syntax
public boolean isSorted()
throws NotesException

Legal values
True if the column is sorted.
False if the column is not sorted.

Usage
If the user can sort the column in the user interface by clicking its heading,
but the column is not otherwise sorted, this property returns false.

Example: IsSorted, IsCategory, IsAccentSensitiveSort,


IsCaseSensitiveSort, IsSortDescending, IsResortToView,
IsResortAscending, IsResortDescending, IsSecondaryResort,
IsSecondaryResortDescending, and IsShowTwistie properties
This agent prints out whether columns are sorted, and for sorted columns
prints information about the properties related to sorting.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
System.out.println("\"By Category\" view");
Vector columns = view.getColumns();
for (int i=0; i<columns.size(); i++) {
ViewColumn column = (ViewColumn)columns.elementAt(i);
String vtitle = column.getTitle();
if (vtitle == "") vtitle = "No title";
System.out.println("\n" + column.getPosition() +
" " + vtitle);

Chapter 10: Java Classes A–Z 2295


ViewColumn class

if (column.isSorted()) {
if (column.isCategory()) {
System.out.println("Column is categorized");
if (column.isShowTwistie())
System.out.println("Column displays twistie"); }
System.out.println("Column is sorted");
if (column.isSortDescending())
System.out.println("Sort is descending");
else System.out.println("Sort is ascending");
if (column.isCaseSensitiveSort())
System.out.println("Sort is case sensitive");
if (column.isAccentSensitiveSort())
System.out.println("Sort is accent sensitive");
if (column.isResortToView()) {
System.out.println("Column is resortable");
if (column.isResortAscending())
System.out.println("\tResort can be ascending");
if (column.isResortDescending())
System.out.println("\tResort can be
descending");
if (column.isSecondaryResort()) {
System.out.println("\tColumn is secondary
resortable");
if (column.isSecondaryResortDescending())
System.out.println("\tSecondary resort is
descending"); } } }
else
System.out.println("Column is not sorted"); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

ItemName property
Read-only. The name of the field with the value that is shown in the
column.

Defined in
ViewColumn

Data type
String

2296 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewColumn class

Syntax
public String getItemName()
throws NotesException

Usage
If the column is a field, this property returns the field name. This property
also returns the field name for a formula with a value that is just the name
of a field.
If the column is a simple function or formula (whose value is not just the
name of a field), this property returns an internal name. In these cases, you
can access the formula or formula equivalent with getFormula.

ListSep property
Read-only. List (multi-value) separator for values in a column.

Defined in
ViewColumn

Data type
int

Syntax
public int getListSep()
throws NotesException

Legal values
ViewColumn.SEP_COMMA
ViewColumn.SEP_NEWLINE
ViewColumn.SEP_SEMICOLON
ViewColumn.SEP_SPACE

NumberAttrib property
Read-only. Attributes for numeric values in a column.

Defined in
ViewColumn

Data type
int

Chapter 10: Java Classes A–Z 2297


ViewColumn class

Syntax
public int getNumberAttrib()
throws NotesException

Legal values
ViewColumn.ATTR_PARENS (parentheses on negative numbers)
ViewColumn.ATTR_PERCENT (percent sign)
ViewColumn.ATTR_PUNCTUATED (punctuated at thousands)

Usage
The number attribute can have multiple values. For example, the attribute
might be ViewColumn.ATTR_PARENS and
ViewColumn.ATTR_PUNCTUATED.

Example: NumberAttrib, NumberDigits, and NumberFormat properties


This agent prints the column information associated with numeric data.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
System.out.println("\"By Category\" view");
Vector columns = view.getColumns();
for (int i=0; i<columns.size(); i++) {
ViewColumn column = (ViewColumn)columns.elementAt(i);
String vtitle = column.getTitle();
if (vtitle == "") vtitle = "No title";
System.out.println("\n" + column.getPosition() +
" " + vtitle);
String numericFormat = null;
switch (column.getNumberFormat()) {
case ViewColumn.FMT_CURRENCY :
numericFormat = "currency"; break;
case ViewColumn.FMT_FIXED :
numericFormat = "fixed"; break;
case ViewColumn.FMT_GENERAL :
numericFormat = "general"; break;
case ViewColumn.FMT_SCIENTIFIC :
numericFormat = "scientific"; break; }
System.out.println("Numeric format is " +
numericFormat);
if ((column.getNumberAttrib() &

2298 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewColumn class

ViewColumn.ATTR_PARENS) != 0)
System.out.println("Parentheses on negative
numbers");
if ((column.getNumberAttrib() &
ViewColumn.ATTR_PERCENT) != 0)
System.out.println("Percent sign");
if ((column.getNumberAttrib() &
ViewColumn.ATTR_PUNCTUATED) != 0)
System.out.println("Punctuated");
System.out.println("Number of decimal places is " +
column.getNumberDigits());
}
} catch(Exception e) {
e.printStackTrace();
}
}
}

NumberDigits property
Read-only. Number of decimal places for numeric values in a column.

Defined in
ViewColumn

Data type
int

Syntax
public int getNumberDigits()
throws NotesException

NumberFormat property
Read-only. Format for numeric values in a column.

Defined in
ViewColumn

Data type
int

Syntax
public int getNumberFormat()
throws NotesException

Chapter 10: Java Classes A–Z 2299


ViewColumn class

Legal values
ViewColumn.FMT_CURRENCY
ViewColumn.FMT_FIXED
ViewColumn.FMT_GENERAL
ViewColumn.FMT_SCIENTIFIC

Parent property
Read-only. The view that contains a column.

Defined in
ViewColumn

Data type
View

Syntax
public View getParent()
throws NotesException

Position property
Read-only. The position of a column in its view. Columns are numbered
from left to right, starting with 1.

Defined in
ViewColumn

Data type
int

Syntax
public int getPosition()
throws NotesException

Usage
The Columns property in View returns a vector of ViewColumn objects.
The vector is zero-based, so the first element in the vector is element 0
and contains the ViewColumn at position 1. The second element in the
vector is element 1 and contains the ViewColumn at position 2, and so on.
Remember to add one to the vector index to get the correct position value.

2300 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewColumn class

TimeDateFmt property
Read-only. The format of time-date data in a column.

Defined in
ViewColumn

Data type
int

Syntax
public int getTimeDateFmt()
throws NotesException

Legal values
ViewColumn.FMT_DATE (Date only)
ViewColumn.FMT_DATETIME (Date and time)
ViewColumn.FMT_TIME (Time only)
ViewColumn.FMT_TODAYTIME (Date or ‘Today’ or ‘Yesterday’ —
and time)

TimeFmt property
Read-only. The format of time data in a column.

Defined in
ViewColumn

Data type
int

Syntax
public int getTimeFmt()
throws NotesException

Legal values
ViewColumn.FMT_HM (hour and minute)
ViewColumn.FMT_HMS (hour, minute, and second)

Chapter 10: Java Classes A–Z 2301


ViewColumn class

TimeZoneFmt property
Read-only. The format of the zone in a time-date column value.

Defined in
ViewColumn

Data type
int

Syntax
public int getTimeZoneFmt()
throws NotesException

Legal values
ViewColumn.FMT_ALWAYS (always show time zone)
ViewColumn.FMT_NEVER (never show time zone)
ViewColumn.FMT_SOMETIMES (show time zone if the time is
not local)

Title property
Read-only. The title of a column or an empty string if the column does not
have a title.

Defined in
ViewColumn

Data type
String

Syntax
public String getTitle()
throws NotesException

Width property
Read-only. The width of a column.

Defined in
ViewColumn

2302 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewColumn class

Data type
int

Syntax
public int getWidth()
throws NotesException

Example: Width, IsHidden, and ListSep properties


This agent prints the width and list separator for columns that are
not hidden.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
Vector columns = view.getColumns();
for (int i=0; i<columns.size(); i++) {
ViewColumn column = (ViewColumn)columns.elementAt(i);
int cposition = column.getPosition();
if (column.isHidden())
System.out.println
("Column " + cposition + " is hidden");
else {
int cwidth = column.getWidth();
System.out.println
("Column " + cposition + " has a width of " +
cwidth);
String listSep = null;
switch (column.getListSep()) {
case ViewColumn.SEP_COMMA : listSep = "coma";
break;
case ViewColumn.SEP_NEWLINE : listSep = "newline";
break;
case ViewColumn.SEP_SEMICOLON : listSep =
"semicolon"; break;
case ViewColumn.SEP_SPACE : listSep = "space"; break; }
System.out.println("\tMulti-value separator is " +
listSep); } }

Chapter 10: Java Classes A–Z 2303


ViewEntry class

} catch(Exception e) {
e.printStackTrace();
}
}
}

ViewEntry class
Represents a view entry. A view entry describes a row in a view.

Syntax
public class ViewEntry extends Base

Containment
Contained by: View, ViewEntryCollection, ViewNavigator
Contains: Document

Properties
ChildCount through getChildCount
ColumnIndentLevel through getColumnIndentLevel
ColumnValues through getColumnValues
DescendantCount through getDescendantCount
Document through getDocument
FTSearchScore through getFTSearchScore
IndentLevel through getIndentLevel
IsCategory through isCategory
IsConflict through isConflict
IsDocument through isDocument
IsTotal through isTotal
IsValid through isValid
NoteID through getNoteID
Parent through getParent
SiblingCount through getSiblingCount
UniversalID through getUniversalID

Methods
getPosition

2304 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewEntry class

Access
You access a view entry through the get methods in ViewEntryCollection
and ViewNavigator, and through View.getEntryByKey.

Usage
The three types of view entries are document, category, and total.

Example: ViewEntry class


This agent prints property values for all the entries in a view.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
ViewNavigator nav = view.createViewNav();
String typeCol = null;
ViewEntry entry = nav.getFirst();
while (entry != null) {
if (entry.isCategory()) typeCol = "category";
else if (entry.isDocument()) typeCol = "document";
else if (entry.isTotal()) typeCol = "total";
System.out.println("Entry at position" +
entry.getPosition('.') + " is a " + typeCol);
System.out.println("\tIndent level: " +
entry.getIndentLevel());
System.out.println
("\tColumn indent level: " +
entry.getColumnIndentLevel());
System.out.println("\tNote ID: " + entry.getNoteID());
if (entry.isDocument()) {
System.out.println
("\tUniversal ID: " + entry.getUniversalID());
System.out.println
("\tFT search score: " + entry.getFTSearchScore());
if (entry.isConflict())
System.out.println("\tConflict document");
System.out.println("\tSubject: \"" +
entry.getDocument().getItemValueString("Subject") +
"\""); }
if (entry.getParent() instanceof ViewNavigator)
System.out.println("\tParent is ViewNavigator");
else if (entry.getParent() instanceof
ViewEntryCollection)
System.out.println("\tParent is

Chapter 10: Java Classes A–Z 2305


ViewEntry class

ViewEntryCollection");
else System.out.println("\tParent is View");
System.out.println("\tSibling count: " +
entry.getSiblingCount());
System.out.println("\tChild count: " +
entry.getChildCount());
System.out.println
("\tDescendant count: " + entry.getDescendantCount());
if (entry.isValid()) System.out.println("\tEntry is
valid");
else System.out.println("\tEntry is deletion stub");
entry = nav.getNext(); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

ChildCount property
Read-only. The number of immediate children belonging to the current
view entry.

Defined in
ViewEntry

Data type
int

Syntax
public int getChildCount()
throws NotesException

ColumnIndentLevel property
Read-only. The indent level of a view entry within its column.

Defined in
ViewEntry

Data type
int

2306 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewEntry class

Syntax
public int getColumnIndentLevel()
throws NotesException

Usage
This property is useful for determining the response level of a document.
Main documents are always at indent level 0, response documents at indent
level 1, and so on.

ColumnValues property
Read-only. The value of each column in the view entry.

Defined in
ViewEntry

Data type
java.util.Vector; elements are Double, DateTime, or String

Syntax
public Vector getColumnValues()
throws NotesException

Example: ColumnValues property


This agent gets, for each column in a view entry, the type of value and the
value.
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
ViewEntry entry =
view.getEntryByKey("Spanish leather", false);
if (entry != null) {
Vector v = entry.getColumnValues();
for (int i=0; i<v.size(); i++) {
if (v.elementAt(i) != null) {
System.out.println("Column " + (i+1) + ":");
System.out.println("\t" +
v.elementAt(i).getClass().getName());
System.out.println("\t" + v.elementAt(i)); } } }

Chapter 10: Java Classes A–Z 2307


ViewEntry class

} catch(Exception e) {
e.printStackTrace();
}
}
}

DescendantCount property
Read-only. The number of descendants belonging to the current view entry.

Defined in
ViewEntry

Data type
int

Syntax
public int getDescendantCount()
throws NotesException

Document property
Read-only. The document associated with the view entry.

Defined in
ViewEntry

Data type
Document

Syntax
public Document getDocument()
throws NotesException

Usage
Returns null if the view entry is not a document. Returns null if the
document is deleted after the ViewEntry object is created.
Document objects retrieved through ViewEntry do not have the following
properties set: FTSearchScore, ColumnValues, and ParentView. Use
FTSearchScore, ColumnValues, and Parent in ViewEntry.

2308 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewEntry class

FTSearchScore property
Read-only. The full-text search score of a view entry, if it was retrieved as
part of a full-text search.

Defined in
ViewEntry

Data type
int

Syntax
public int getFTSearchScore()
throws NotesException

Usage
The score is determined by the number of target words that are found
in the entry, the term weights assigned to the target words, and any
proximity operators in the search query. If the entries are not retrieved
as part of a full-text search, returns 0. If the entry is retrieved using
an FTSearch method on a database without a full-text index, returns
an unpredictable number.

IndentLevel property
Read-only. The indent level of a view entry within the view.

Defined in
ViewEntry

Data type
int

Syntax
public int getIndentLevel()
throws NotesException

Usage
The indent level corresponds to the number of levels in the position.
Position 1 is indent level 0, position 1.1 is indent level 1, position 1.1.1 is
indent level 2, and so on.

Chapter 10: Java Classes A–Z 2309


ViewEntry class

IsCategory property
Read-only. Indicates if a view entry is a category.

Defined in
ViewEntry

Data type
boolean

Syntax
public boolean isCategory()
throws NotesException

Legal values
True if the entry is a category
False if the entry is not a category

IsConflict property
Read-only. Indicates if a view entry is for a document on which a
replication or save conflict occurred.

Defined in
ViewEntry

Data type
boolean

Syntax
public boolean isConflict()
throws NotesException

Legal values
True if the entry is a conflict document
False if the entry is not a conflict document

IsDocument property
Read-only. Indicates if a view entry is a document.

Defined in
ViewEntry

2310 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewEntry class

Data type
boolean

Syntax
public boolean isDocument()
throws NotesException

Legal values
True if the entry is a document
False if the entry is not a document

IsTotal property
Read-only. Indicates if a view entry is a total.

Defined in
ViewEntry

Data type
boolean

Syntax
public boolean isTotal()
throws NotesException

Legal values
True if the entry is a total
False if the entry is not a total

IsValid property
Read-only. Indicates if a view entry is a valid entry and not a deletion stub.

Defined in
ViewEntry

Data type
boolean

Syntax
public boolean isValid()
throws NotesException

Chapter 10: Java Classes A–Z 2311


ViewEntry class

Legal values
True if the entry is valid
False if the entry is not valid

Usage
If a document is removed after a view entry collection containing it is
created, you can use the corresponding view entry for navigation but
cannot access the document. If the possibility of removal exists, you should
check isValid before attempting to access the document.

NoteID property
Read-only. The note ID of a view entry of type document.

Defined in
ViewEntry

Data type
String

Syntax
public String getNoteID()
throws NotesException

Usage
This property returns the empty string for entries of type category and total.

Parent property
Read-only. The parent ViewEntryCollection, ViewNavigator, or View object
of a view entry.

Defined in
ViewEntry

Data type
Object

Syntax
public Object getParent()
throws NotesException

2312 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewEntry class

SiblingCount property
Read-only. The number of siblings belonging to the current view entry.

Defined in
ViewEntry

Data type
int

Syntax
public int getSiblingCount()
throws NotesException

Usage
The sibling count includes the current entry unless it is a total.

UniversalID property
Read-only. The universal ID of a document associated with a view entry.
The ID is a 32-character combination of hexadecimal digits (0-9, A-F) that
uniquely identifies a document across all replicas of a database.

Defined in
ViewEntry

Data type
String

Syntax
public String getUniversalID()
throws NotesException

Usage
This property returns the empty string for entries of type category and total.

getPosition method
Returns the position of the entry in the view hierarchy, for example, “2.3”
for the third document of the second category.

Defined in
ViewEntry

Chapter 10: Java Classes A–Z 2313


ViewEntryCollection class

Syntax
public String getPosition(char separator)
throws NotesException

Parameters
char separator

The separator to be used in the return value.

Return value
String

A series of integers (in String format) and separators. The integers


indicate the positions of the view entry at each level, where 1 is the first
position. The first integer indicates the first level and so on.

ViewEntryCollection class
Represents a collection of view entries of type document sorted in view
order.

Syntax
public class ViewEntryCollection extends Base

Containment
Contained by: View
Contains: ViewEntry

Properties
Count through getCount
Parent through getParent
Query through getQuery

Methods
addEntry
deleteEntry
FTSearch
getEntry
getFirstEntry
getLastEntry
getNextEntry

2314 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewEntryCollection class

getNthEntry
getPrevEntry
putAllInFolder
removeAll
removeAllFromFolder
stampAll
updateAll

Access
A ViewEntryCollection represents all or a subset of all the document entries
in a view. A ViewEntryCollection does not include entries of type category
and total. The following View methods return ViewEntryCollection objects:
getAllEntries
getAllEntriesByKey
The FTSearch method in ViewEntryCollection changes the content of
the collection.
A current pointer is maintained for view entry collections. All navigation
methods set the current pointer to the retrieved entry. Add and delete
methods do not move the current pointer. The current pointer is set to the
first entry after FTSearch and removeAll. For remote (IIOP) operations only,
the current pointer is set to the first entry after putAllInFolder,
removeAllFromFolder, and stampAll.

Example: ViewEntryCollection class, and Count and Parent properties


This example creates a ViewEntryCollection object for all the document
entries in a view, gets the parent view and the entry count, and gets all
the entries.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
ViewEntryCollection vec = view.getAllEntries();
System.out.println("Parent is " +
vec.getParent().getName());
System.out.println("Number of entries = " +
vec.getCount());

Chapter 10: Java Classes A–Z 2315


ViewEntryCollection class

ViewEntry entry = vec.getFirstEntry();


while (entry != null) {
System.out.println("Entry is at position " +
entry.getPosition('.'));
entry = vec.getNextEntry(); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

Count property
Read-only. The number of entries in a view entry collection.

Defined in
ViewEntryCollection

Data type
int

Syntax
public int getCount()
throws NotesException

Parent property
Read-only. The view that contains a view entry collection.

Defined in
ViewEntryCollection

Data type
View

Syntax
public View getParent()
throws NotesException

2316 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewEntryCollection class

Query property
Read-only. The text of the query that produced a view entry collection if the
collection results from a full-text search.

Defined in
ViewEntryCollection

Data type
String

Syntax
public String getQuery()
throws NotesException

Usage
For collections produced without a search, this property returns an
empty string.

addEntry method
Adds an entry to a view entry collection.

Defined in
ViewEntryCollection

Syntax
public void addEntry(Object obj)
throws NotesException
public void addEntry(Object obj, boolean checkDups)
throws NotesException

Parameters
Object obj

A ViewEntry or Document object representing the entry to be added.


Cannot be null. A ViewEntry object must be of type document.
boolean checkDups

If true, forces a remote (IIOP) add to be made immediately rather than


at the next navigation or other method (such as stampAll) that calls the
server, so that a duplicate exception can be thrown immediately. Does
not work for local calls.

Chapter 10: Java Classes A–Z 2317


ViewEntryCollection class

Usage
The entry or document represented by the parameter must exist. For
example, if you create a new Document object, you must save it before
calling addEntry.
This method increments the view entry collection count returned by
getCount.

Example: addEntry method


This agent adds a Document object to view entry collection.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
db.updateFTIndex(true);
View view = db.getView("By Category");
ViewEntryCollection vec = view.getAllEntries();
ViewEntry entry = null;
Document doc = db.createDocument();
doc.appendItemValue("Subject", "New subject");
doc.save(true, true);
vec.addEntry(doc);
entry = vec.getFirstEntry();
while (entry != null) {
System.out.println(entry.getDocument().getItemValueString
("Subject"));
entry = vec.getNextEntry(); }
} catch(NotesException e) {
System.out.println(e.id + " " + e.text);
e.printStackTrace();
}
}
}

deleteEntry method
Deletes an entry from a view entry collection.

Defined in
ViewEntryCollection

2318 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewEntryCollection class

Syntax
public void deleteEntry(ViewEntry entry)
throws NotesException

Parameter
ViewEntry entry

The view entry to be deleted. Cannot be null. Must be of type


document.

Usage
This method decrements the view entry collection count returned by
getCount.
This method throws an exception if the entry is already deleted.
This method throws an exception if the entry is from another collection.
A deleted ViewEntry object is invalid and cannot be used for navigation
purposes.

Example: deleteEntry and getNthEntry methods


This agent deletes all the entries from a view entry collection that represent
response documents. The agent works backwards through the collection
since entry positions change as deletions occur.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
db.updateFTIndex(true);
View view = db.getView("By Category");
ViewEntryCollection vec = view.getAllEntries();
ViewEntry entry = null;
if (vec.getCount() > 0) {
for (int i=vec.getCount(); i>0; i—) {
entry = vec.getNthEntry(i);
if (entry.getDocument().isResponse())
vec.deleteEntry(entry); } }
System.out.println("Count = " + vec.getCount());
for (int i=0; i<vec.getCount(); i++) {
entry = vec.getNthEntry(i+1);
System.out.println
(entry.getDocument().getItemValueString("Subject")); }

Chapter 10: Java Classes A–Z 2319


ViewEntryCollection class

} catch(Exception e) {
e.printStackTrace();
}
}
}

FTSearch method
Conducts a full-text search on all entries in a view entry collection and
filters the collection so that it respresents only the entries that match the
full-text query.

Defined in
ViewEntryCollection

Syntax
public void FTSearch(String query)
throws NotesException
public void FTSearch(String query, int maxdocs)
throws NotesException

Parameters
String query

The full-text query. See below for the syntax.


int maxdocs

The maximum number of documents you want returned from the


query. Set this parameter to 0 to receive all matching documents.

Usage
The collection of entries that match the full-text query are sorted by
relevance with highest relevance first. You can access the relevance score of
each entry in the collection with getFTSearchScore in ViewEntry.
If the database is not full-text indexed, this method works, but less
efficiently. To test for an index, use isFTIndexed in Database. To create an
index on a local database, use updateFTIndex in Database.
The current pointer is reset to the first document in the collection.

Query syntax
To search for a word or phrase, enter the word or phrase as is, except that
search keywords must be enclosed in quotes. Remember to escape quotes if
you are inside a literal.

2320 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewEntryCollection class

Wildcards, operators, and other syntax are permitted. For the complete
syntax rules, see “To use operators to refine a search” in Notes 5 help.

Example: FTSearch method and Query and FTSearchScore properties


This agent limits a view entry collection to those entries whose documents
contain the phrase, “Spanish leather.”
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
db.updateFTIndex(true);
View view = db.getView("By Category");
ViewEntryCollection vec = view.getAllEntries();
vec.FTSearch("Spanish leather");
System.out.println("Query: \"" + vec.getQuery() + "\"");
System.out.println("Number of entries = " +
vec.getCount());
ViewEntry entry = vec.getFirstEntry();
while (entry != null) {
System.out.println("Entry is at position " +
entry.getPosition('.') + " - relevance score is " +
entry.getFTSearchScore());
entry = vec.getNextEntry(); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

getEntry method
Gets a specified entry in a view entry collection.

Defined in
ViewEntryCollection

Syntax
public ViewEntry getEntry(Object entry)
throws NotesException

Chapter 10: Java Classes A–Z 2321


ViewEntryCollection class

Parameter
Object obj

A ViewEntry or Document object representing the entry to be retrieved.


Cannot be null.

Return value
ViewEntry

The view entry to be retrieved. If the specified entry is not in the


collection, returns null.

Usage
This method can be used to get the entry in this collection that corresponds
to an entry from another collection or retrieved through other means.

Example: getEntry method


This agent gets all the entries in a view entry collection associated with
documents in a document collection.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
ViewEntryCollection vec =
view.getAllEntriesByKey("Category 1");
DocumentCollection dc =
view.getAllDocumentsByKey("Category 1");
System.out.println("Number of entries = " +
vec.getCount());
Document doc = view.getFirstDocument();
while (doc != null) {
ViewEntry entry = vec.getEntry(doc);
System.out.println("Entry is at position " +
entry.getPosition('.'));
doc = view.getNextDocument(doc); }
} catch(NotesException e) {
System.out.println(e.id + " " + e.text);
e.printStackTrace();
}
}
}

2322 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewEntryCollection class

getFirstEntry method
Gets the first entry in a view entry collection.

Defined in
ViewEntryCollection

Syntax
public ViewEntry getFirstEntry()
throws NotesException

Return value
ViewEntry

The first entry in the view entry collection. If there are no entries in the
collection, returns null.

Examples: getFirstEntry and getNextEntry methods


1. This example gets all the entries in a view entry collection first to last.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
ViewEntryCollection vec = view.getAllEntries();
ViewEntry entry = vec.getFirstEntry();
while (entry != null) {
System.out.println("Entry is at position " +
entry.getPosition('.'));
entry = vec.getNextEntry(); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

2. This example gets the second and next to last entries in a view entry
collection.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();

Chapter 10: Java Classes A–Z 2323


ViewEntryCollection class

AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
ViewEntryCollection vec = view.getAllEntries();
ViewEntry entryFirst = vec.getFirstEntry();
ViewEntry entryLast = vec.getLastEntry();
System.out.println("Second entry is at position " +
vec.getNextEntry(entryFirst).getPosition('.'));
System.out.println("Next to last entry is at
position " +
vec.getPrevEntry(entryLast).getPosition('.'));
} catch(Exception e) {
e.printStackTrace();
}
}
}

getLastEntry method
Gets the last entry in a view entry collection.

Defined in
ViewEntryCollection

Syntax
public ViewEntry getLastEntry()
throws NotesException

Return value
ViewEntry

The last entry in the view entry collection. If there are no entries in the
collection, returns null.

Examples: getLastEntry and getPrevEntry methods


1. This agent gets all the entries in a view entry collection from last to first.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();

2324 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewEntryCollection class

View view = db.getView("By Category");


ViewEntryCollection vec = view.getAllEntries();
ViewEntry entry = vec.getLastEntry();
while (entry != null) {
System.out.println("Entry is at position " +
entry.getPosition('.'));
entry = vec.getPrevEntry(); }
} catch(Exception e) {
e.printStackTrace();
}
}
}
2. This agent gets the next to last and second entries in a view entry
collection.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
ViewEntryCollection vec = view.getAllEntries();
ViewEntry entryLast = vec.getLastEntry();
ViewEntry entryFirst = vec.getFirstEntry();
System.out.println("Next to last entry is at
position " +
vec.getPrevEntry(entryLast).getPosition('.'));
System.out.println("Second entry is at position " +
vec.getNextEntry(entryFirst).getPosition('.'));
} catch(Exception e) {
e.printStackTrace();
}
}
}

getNextEntry method
Gets the entry immediately following the current or a specified entry in a
view entry collection.

Defined in
ViewEntryCollection

Chapter 10: Java Classes A–Z 2325


ViewEntryCollection class

Syntax
public ViewEntry getNextEntry()
throws NotesException
public ViewEntry getNextEntry(ViewEntry entry)
throws NotesException

Parameters
ViewEntry entry

Any entry in the view entry collection. Cannot be null.

Return value
ViewEntry

The entry following the current or specified entry. If there is no next


entry, returns null.

getNthEntry method
Gets the entry at a specified position in a view entry collection.

Defined in
ViewEntryCollection

Syntax
public ViewEntry getNthEntry(int n)
throws NotesException

Parameters
int n

A number indicating the entry to return. Use 1 to indicate the first entry
in the collection, 2 to indicate the second entry, and so on.

Return value
ViewEntry

The entry in the nth position in the view entry collection. If there is no
document at the specified position, returns null.

Usage
View collections are renumbered when deletions occur so that the positions
of entries after the deleted entry change.

2326 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewEntryCollection class

getPrevEntry method
Gets the entry immediately preceding the current or a specified entry in a
view entry collection.

Defined in
ViewEntryCollection

Syntax
public ViewEntry getPrevEntry()
throws NotesException
public ViewEntry getPrevEntry(ViewEntry entry)
throws NotesException

Parameters
ViewEntry entry

Any entry in the view entry collection. Cannot be null.

Return value
ViewEntry

The entry preceding the current or specified entry. If there is no


previous entry, returns null.

putAllInFolder method
Adds the documents associated with all the entries in a view entry
collection to a specified folder.

Defined in
ViewEntryCollection

Syntax
public void putAllInFolder(String folderName)
throws NotesException
public void putAllInFolder(String folderName, boolean createOnFail)
throws NotesException

Chapter 10: Java Classes A–Z 2327


ViewEntryCollection class

Parameters
String folderName

The name of the folder in which to place the documents. The folder may
be personal if the program is running on the workstation. If the folder is
within another folder, specify a path to it, separating folder names with
backslashes and escaping the backslashes in a literal, for example:
vec.putAllInFolder("Vehicles\\Bikes");
boolean createOnFail

If true (default), creates the folder if it does not exist. If false and the
folder does not exist, this method does nothing.

Usage
If a document is already inside the folder you specify, putAllInFolder does
nothing for that document. If you specify a path to a folder, and none of the
folders exist, the method creates all of them for you.

Example: putAllInFolder method


Puts all the documents under the “Transportation” category in the
“Transportation” folder.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
ViewEntryCollection vec =
view.getAllEntriesByKey("Transportation", false);
System.out.println("Number of entries found = " +
vec.getCount());
System.out.println("Putting them in
\"Transportation\"");
vec.putAllInFolder("Transportation");
} catch(Exception e) {
e.printStackTrace();
}
}
}

2328 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewEntryCollection class

removeAll method
Permanently removes the documents associated with the entries in a view
entry collection from a database.

Defined in
ViewEntryCollection

Syntax
public void removeAll(boolean force)
throws NotesException

Parameter
boolean force

If true, the document is removed even if another user modifies the


document after it is retrieved. If false, the document is not rmoved in
this case.

Usage
All documents removed from the database as a result of this operation are
also removed from the collection.
The current pointer is reset to the first entry.

Example: removeAll method


This agent removes all the documents in “Category 3” from the database.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
ViewEntryCollection vec =
view.getAllEntriesByKey("Category 3", false);
System.out.println("Number of entries found = " +
vec.getCount());
System.out.println("Removing these entries from
database");
vec.removeAll(true);

Chapter 10: Java Classes A–Z 2329


ViewEntryCollection class

} catch(Exception e) {
e.printStackTrace();
}
}
}

removeAllFromFolder method
Removes the documents associated with the entries in a view entry
collection from a specified folder.

Defined in
ViewEntryCollection

Syntax
public void removeAllFromFolder(String folderName)
throws NotesException

Parameters
String folderName

The name of the folder from which to remove the documents. The
folder may be personal if the program is running on the workstation. If
the folder is within another folder, specify a path to it, separating folder
names with backslashes and escaping the backslashes in a literal, for
example:
vec.removeAllFromFolder("Vehicles\\Bikes");

Usage
This method does nothing for documents not in the folder you specify. This
method does nothing if the folder you specify does not exist.

Example: removeAllFromFolder method


This example removes all documents under “Tricycles” from the
“Two-wheeled vehicles” folder.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
ViewEntryCollection vec =
view.getAllEntriesByKey("Tricycles", false);

2330 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewEntryCollection class

System.out.println("Number of entries found = " +


vec.getCount());
if (vec.getCount() > 0) {
System.out.println("Removing them from \"Two-wheeled
vehicles\"");
vec.removeAllFromFolder("Two-wheeled vehicles"); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

stampAll method
Replaces the value of a specified item in the documents of all the entries in a
view entry collection.

Defined in
ViewEntryCollection

Syntax
public void stampAll(String itemName, Object value)
throws NotesException

Parameters
String itemName

The name of the item.


Object value

A value appropriate for the item type.

Usage
If the item does not exist, it is created.
The item values are immediately written to the documents in storage. You
do not have to use the save method of Document after stampAll. However,
any documents modified by your program must be saved before calling
stampAll.
This method does not modify existing Document objects. Documents must
be retrieved again to see the changes.

Chapter 10: Java Classes A–Z 2331


ViewEntryCollection class

Example: stampAll method


This agent writes the value “Half-baked” to the Status item of all the
documents under “Category 2.”
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
ViewEntryCollection vec =
view.getAllEntriesByKey("Category 2", false);
System.out.println("Number of entries found = " +
vec.getCount());
System.out.println("Stamping these entries half-baked");
vec.stampAll("Status", "Half-baked");
} catch(Exception e) {
e.printStackTrace();
}
}
}

updateAll method
Marks all documents in a collection as processed by an agent.
Note Does not work for remote (IIOP) calls.

Defined in
ViewEntryCollection

Syntax
public void updateAll()
throws NotesException

Usage
See the updateProcessedDoc method in AgentContext for a description of
the update process.

2332 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewNavigator class

ViewNavigator class
Represents a view navigator. A view navigator provides access to all or a
subset of the entries in a view.

Syntax
public class ViewNavigator extends Base

Containment
Contained by: View
Contains: ViewEntry

Properties
CacheSize through getCacheSize and setCacheSize
MaxLevel through getMaxLevel and setMaxLevel
ParentView through getParentView

Methods
getChild
getCurrent
getFirst
getFirstDocument
getLast
getLastDocument
getNext
getNextCategory
getNextDocument
getNextSibling
getNth
getParent
getPos
getPrev
getPrevCategory
getPrevDocument
getPrevSibling

Chapter 10: Java Classes A–Z 2333


ViewNavigator class

gotoChild
gotoEntry
gotoFirst
gotoFirstDocument
gotoLast
gotoLastDocument
gotoNext
gotoNextCategory
gotoNextDocument
gotoNextSibling
gotoParent
gotoPos
gotoPrev
gotoPrevCategory
gotoPrevDocument
gotoPrevSibling

Creation
You create a view navigator through the following View methods:
createViewNav
createViewNavFrom
createViewNavFromCategory
createViewNavFromChildren
createViewNavFromDescendants
createViewNavMaxLevel
Returned is a ViewNavigator object that represents some or all of the entries
in the view.

Usage
The ViewNavigator methods let you:
Access categories and totals as well as documents.
Access information specific to the view such as the number of siblings
of a view entry.
Subset the view.

2334 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewNavigator class

The ViewNavigator methods maintain a current pointer, which is the most


recent entry you get or go to.
A goto method is favored over a get method for navigation-only purposes
because a goto method does not create a ViewEntry object.
In a categorized view, documents are children of categories.
If a view has totals, the grand total is considered a category entry, and
getLast returns that entry. Subtotals are available in the columnValues of
category entries.
A view navigator remains associated with the parent view. A refresh of the
parent view affects the view navigator. However, if a view navigator is
empty upon creation, it remains empty and refreshing the parent view has
no effect.
For remote (IIOP) operations, ViewNavigator caches entries. Methods that
navigate using the current pointer take advantage of the cache while
methods that navigate relative to a specified entry do not take advantage of
the cache. Refreshing the parent view causes a cache update. The cache is
turned off if AutoUpdate is true for the parent view; caching is resumed if
AutoUpdate is set to false. You can set the cache size and should set it try to
minimize server access.

Example: ViewNavigator class and CacheSize, MaxLevel, and


ParentView properties
This agent prints the properties for a view navigator.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
ViewNavigator nav = view.createViewNav();
System.out.println("Cache size = " +
nav.getCacheSize());
System.out.println("Max level = " + nav.getMaxLevel());
System.out.println("Parent view = " +
nav.getParentView().getName());
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 2335


ViewNavigator class

CacheSize property
Read-write. The size of the navigator cache in view entries.
Note This property applies only to remote (IIOP) operations. For local
operations, getCacheSize always returns zero and setCacheSize has
no effect.

Defined in
ViewNavigator

Data type
int

Syntax
public int getCacheSize()
throws NotesException
public void setCacheSize(int numEntries)
throws NotesException

Legal values
0 minimum (no cache)
128 maximum (default)

MaxLevel property
Read-write. The navigator’s maximum level of navigation.

Defined in
ViewNavigator

Data type
int

Syntax
public int getMaxLevel()
throws NotesException
public void setMaxLevel(int mLevel)
throws NotesException

Legal values
0 minimum (top level)
30 maximum (default)

2336 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewNavigator class

Usage
The maximum cannot be less than the minimum implied by the navigator
type, for example, category, children, or descendants.

ParentView property
Read-only. The view containing a navigator.

Defined in
ViewNavigator

Data type
int

Syntax
public View getParentView()
throws NotesException

getChild method
Returns the first child of an entry in a view navigator.

Defined in
ViewNavigator

Syntax
public ViewEntry getChild()
throws NotesException
public ViewEntry getChild(ViewEntry entry)
throws NotesException

Parameter
ViewEntry entry

An entry in the view. Defaults to the current entry. Cannot be null.

Return value
ViewEntry

The first child of the current or specified entry. Returns null if there are
no children.

Chapter 10: Java Classes A–Z 2337


ViewNavigator class

Usage
This method moves the current pointer to the retrieved entry unless the
return value is null.
A child of a category entry can be a category or document entry.

Examples: getChild, getNextSibling, and getParent methods


1. This agent gets view entries in a hierarchy down to three levels using
different variables to represent the entries at different levels.
import lotus.domino.*;
public class JavaAgent extends AgentBase {

String getEntryType(ViewEntry entry) {


String t = null;
try {
if (entry.isCategory()) t = "category";
else if (entry.isDocument()) t = "document";
else if (entry.isTotal()) t = "total"; }
catch (Exception e) {
e.printStackTrace(); }
return t; }
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
ViewNavigator nav = view.createViewNav();
int n = 0;
String tabs = null;
ViewEntry entry = nav.getFirst();
while (entry != null) {
n++;
System.out.println
("Entry #" + n + " is a " + getEntryType(entry));
ViewEntry entry2 = nav.getChild(entry);
while (entry2 != null) {
n++;
System.out.println
("\tEntry #" + n + " is a " +
getEntryType(entry2));
ViewEntry entry3 = nav.getChild(entry2);
while (entry3 != null) {
n++;
System.out.println
("\t\tEntry #" + n + " is a " +

2338 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewNavigator class

getEntryType(entry3));
entry3 = nav.getNextSibling(entry3); }
entry2 = nav.getNextSibling(entry2); }
entry = nav.getNextSibling(entry); }
} catch(Exception e) {
e.printStackTrace();
}
}
}
2. This agent gets view entries in a hierarchy down to three levels using
one variable to represent the entries at different levels.
import lotus.domino.*;
public class JavaAgent extends AgentBase {

String getEntryType(ViewEntry entry) {


String t = null;
try {
if (entry.isCategory()) t = "category";
else if (entry.isDocument()) t = "document";
else if (entry.isTotal()) t = "total"; }
catch (Exception e) {
e.printStackTrace(); }
return t; }
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
ViewNavigator nav = view.createViewNav();
int n = 0;
ViewEntry entry = nav.getFirst();
while (entry != null) {
n++;
System.out.println
("Entry #" + n + " is a " + getEntryType(entry));
entry = nav.getChild();
if (entry != null) {
while (entry != null) {
n++;
System.out.println
("\tEntry #" + n + " is a " +
getEntryType(entry));
entry = nav.getChild();
if (entry != null) {
while (entry != null) {

Chapter 10: Java Classes A–Z 2339


ViewNavigator class

n++;
System.out.println
("\t\tEntry #" + n + " is a " +
getEntryType(entry));
entry = nav.getNextSibling(); }
entry = nav.getParent(); }
entry = nav.getNextSibling(); }
entry = nav.getParent(); }
entry = nav.getNextSibling(); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

getCurrent method
Returns the current entry in a view navigator.

Defined in
ViewNavigator

Syntax
public ViewEntry getCurrent()
throws NotesException

Return value
ViewEntry

The current entry. Returns null if the navigator is empty.

getFirst method
Returns the first entry in a view navigator.

Defined in
ViewNavigator

Syntax
public ViewEntry getFirst()
throws NotesException

Return value
ViewEntry

The first entry. Returns null if there are no entries.

2340 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewNavigator class

Usage
This method moves the current pointer to the retrieved entry unless the
return value is null.

Examples: getFirst and getNext methods


1. This agent gets all the entries in a view from first to last.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
ViewNavigator nav = view.createViewNav();
int n = 0;
String t = null;
ViewEntry entry = nav.getFirst();
while (entry != null) {
n++;
if (entry.isCategory()) t = "category";
else if (entry.isDocument()) t = "document";
else if (entry.isTotal()) t = "total";
System.out.println("Entry #" + n + " is a " + t);
entry = nav.getNext(); }
} catch(Exception e) {
e.printStackTrace();
}
}
}
2. This agent gets the second entry in a view.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
ViewNavigator nav = view.createViewNav();
ViewEntry entry = nav.getNext(nav.getFirst());
if (entry != null) {
String t = null;

Chapter 10: Java Classes A–Z 2341


ViewNavigator class

if (entry.isCategory()) t = "category";
else if (entry.isDocument()) t = "document";
else if (entry.isTotal()) t = "total";
System.out.println("Entry # 2 is a " + t); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

getFirstDocument method
Returns the first document entry in a view navigator, skipping any category
entries.

Defined in
ViewNavigator

Syntax
public ViewEntry getFirstDocument()
throws NotesException

Return value
ViewEntry

The first document entry. Returns null if there are no entries.

Usage
This method moves the current pointer to the retrieved entry unless the
return value is null.

Example: getFirstDocument and getNextDocument methods


This agent gets all the document entries in a view from first to last.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
ViewNavigator nav = view.createViewNav();
int n = 0;
ViewEntry entry = nav.getFirstDocument();
while (entry != null) {
n++;

2342 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewNavigator class

System.out.println("Document #" + n + ": " +


entry.getDocument().getItemValueString("Subject"));
entry = nav.getNextDocument(); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

getLast method
Returns the last entry in a view navigator.

Defined in
ViewNavigator

Syntax
public ViewEntry getLast()
throws NotesException

Return value
ViewEntry

The last entry. Returns null if there are no entries.

Usage
This method moves the current pointer to the retrieved entry unless the
return value is null.
If the view has totals, this method retrieves the grand total.

Example: getLast and getPrev methods


1. This agent gets all the entries in a view last to first.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
ViewNavigator nav = view.createViewNav();
int n = 0;
String t = null;
ViewEntry entry = nav.getLast();

Chapter 10: Java Classes A–Z 2343


ViewNavigator class

while (entry != null) {


if (entry.isCategory()) t = "category";
else if (entry.isDocument()) t = "document";
else if (entry.isTotal()) t = "total";
System.out.println("Last entry minus " + n + " is
a " + t);
n++;
entry = nav.getPrev(); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

2. This agent gets the next to the last entry in a view.


import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
ViewNavigator nav = view.createViewNav();
ViewEntry entry = nav.getPrev(nav.getLast());
if (entry != null) {
String t = null;
if (entry.isCategory()) t = "category";
else if (entry.isDocument()) t = "document";
else if (entry.isTotal()) t = "total";
System.out.println("Next to the last entry is a "
+ t); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

2344 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewNavigator class

getLastDocument method
Returns the last document entry in a view navigator, skipping any category
and totals entries.

Defined in
ViewNavigator

Syntax
public ViewEntry getLastDocument()
throws NotesException

Return value
ViewEntry

The last document entry. Returns null if there are no entries.

Usage
This method moves the current pointer to the retrieved entry unless the
return value is null.

Example: getLastDocument and getPrevDocument methods


This agent gets all document entries in a view from last to first.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
ViewNavigator nav = view.createViewNav();
int n = 0;
ViewEntry entry = nav.getLastDocument();
while (entry != null) {
System.out.println("Last document minus " + n + ": " +
entry.getDocument().getItemValueString("Subject"));
n++;
entry = nav.getPrevDocument(); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 2345


ViewNavigator class

getNext method
Returns the next entry following the current or specified entry in a view
navigator.

Defined in
ViewNavigator

Syntax
public ViewEntry getNext()
throws NotesException
public ViewEntry getNext(ViewEntry entry)
throws NotesException

Parameter
ViewEntry entry

An entry in the view. Cannot be null.

Return value
ViewEntry

The entry following the current or specified entry. Returns null if there
is no next entry.

Usage
This method moves the current pointer to the retrieved entry unless the
return value is null.

getNextCategory method
Returns the next category entry in a view navigator.

Defined in
ViewNavigator

Syntax
public ViewEntry getNextCategory()
throws NotesException

Return value
ViewEntry

The category entry following the current entry. Returns null if there is
no next category entry.

2346 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewNavigator class

Usage
This method moves the current pointer to the retrieved entry unless the
return value is null.
For purposes of navigation, total entries are considered category entries.
This method can return either.

Example: getNextCategory method


This agent gets all the category entries in a view from first to last.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
ViewNavigator nav = view.createViewNav();
int n = 0;
ViewEntry entry = nav.getFirst();
while (entry != null) {
n++;
System.out.println("Category #" + n + " has " +
entry.getDescendantCount() + " descendant(s)");
entry = nav.getNextCategory(); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

getNextDocument method
Returns the next document entry in a view navigator.

Defined in
ViewNavigator

Syntax
public ViewEntry getNextDocument()
throws NotesException

Chapter 10: Java Classes A–Z 2347


ViewNavigator class

Return value
ViewEntry

The document entry following the current entry. Returns null if there is
no next document entry.

Usage
This method moves the current pointer to the retrieved entry unless the
return value is null.

getNextSibling method
Returns the next sibling entry after the current or specified entry in a view
navigator.

Defined in
ViewNavigator

Syntax
public ViewEntry getNextSibling()
throws NotesException
public ViewEntry getNextSibling(ViewEntry entry)
throws NotesException

Parameter
ViewEntry entry

An entry in the view. Cannot be null.

Return value
ViewEntry

The sibling entry following the current or specified entry. Returns null
if there is no next sibling entry.

Usage
This method moves the current pointer to the retrieved entry unless the
return value is null.

2348 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewNavigator class

getNth method
Returns the entry at a specified position in the top level of a view navigator.

Defined in
ViewNavigator

Syntax
public ViewEntry getNth(int n)
throws NotesException

Parameter
int n

Position of the entry in the view, where 1 is the first entry.

Return value
ViewEntry

The nth top-level entry. Returns null if there is no nth top-level entry.

Usage
This method moves the current pointer to the retrieved entry unless the
return value is null.
If you do not have reader access to the specified document, this method
returns the next document to which you have reader access. If you
increment n, the increment is relative to the actual value of n, not the
document that was accessed. So you will access the same document
repeatedly until that document actually is the nth document.

Example: getNth method


This agent gets all the top-level entries in a view from first to last. However,
getNth is not favored for sequential navigation especially in remote (IIOP)
operations.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
ViewNavigator nav = view.createViewNav();
String t = null;
int n = 1;
ViewEntry entry = nav.getNth(n);

Chapter 10: Java Classes A–Z 2349


ViewNavigator class

while (entry != null) {


if (entry.isCategory()) t = "category";
else if (entry.isDocument()) t = "document";
else if (entry.isTotal()) t = "total";
System.out.println("Entry #" + n + " is a " + t);
n++;
entry = nav.getNth(n); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

getParent method
Returns the parent entry of the current or a specified entry in a view
navigator.

Defined in
ViewNavigator

Syntax
public ViewEntry getParent()
throws NotesException
public ViewEntry getParent(ViewEntry entry)
throws NotesException

Parameter
ViewEntry entry

An entry in the view. Cannot be null.

Return value
ViewEntry

The parent entry of the current or specified entry. Returns null if there
is no parent entry.

Usage
This method moves the current pointer to the retrieved entry unless the
return value is null.

2350 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewNavigator class

getPos method
Returns the entry at a specified position in a view navigator.

Defined in
ViewNavigator

Syntax
public ViewEntry getPos(String pos, char separator)
throws NotesException

Parameters
String pos

A position in decimal format, for example, “1.2.3” is the third child to


the second child to the first entry using the period as a level separator.
char separator

The separator between position levels.

Return value
ViewEntry

The entry at the specified position. Returns null if there is no entry at


that position.

Usage
This method moves the current pointer to the retrieved entry unless the
return value is null.

Example: getPos and gotoPos methods


This agent gets the first child of each top-level entry in a view.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
ViewNavigator nav = view.createViewNav();
ViewEntry entry = null;
String t = null;
String ns = null;
int n = 1;
// Goto top-level entry
while (nav.gotoPos(ns.valueOf(n), '.')) {

Chapter 10: Java Classes A–Z 2351


ViewNavigator class

// Get first child entry


entry = nav.getPos(ns.valueOf(n) + ".1", '.');
if (entry != null) {
if (entry.isCategory()) t = "category";
else if (entry.isDocument()) t = "document";
else if (entry.isTotal()) t = "total";
System.out.println("Entry #" + n + ".1 is a " + t); }
n++; }
} catch(Exception e) {
e.printStackTrace();
}
}
}

getPrev method
Returns the previous entry of the current or specified entry in a view
navigator.

Defined in
ViewNavigator

Syntax
public ViewEntry getPrev()
throws NotesException
public ViewEntry getPrev(ViewEntry entry)
throws NotesException

Parameter
ViewEntry entry

An entry in the view. Cannot be null.

Return value
ViewEntry

The entry preceding the current or specified entry. Returns null if there
is no previous entry.

Usage
This method moves the current pointer to the retrieved entry unless the
return value is null.

2352 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewNavigator class

getPrevCategory method
Returns the previous category entry in a view navigator.

Defined in
ViewNavigator

Syntax
public ViewEntry getPrevCategory()
throws NotesException

Return value
ViewEntry

The category entry preceding the current entry. Returns null if there is
no previous category entry.

Usage
This method moves the current pointer to the retrieved entry unless the
return value is null.

Example: getPrevCategory method


This agent gets the last category entry in a view.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
ViewNavigator nav = view.createViewNav();
ViewEntry entry = nav.getLast();
entry = nav.getPrevCategory();
System.out.println("Last category has " +
entry.getDescendantCount() + " descendants");
} catch(Exception e) {
e.printStackTrace();
}
}
}

Chapter 10: Java Classes A–Z 2353


ViewNavigator class

getPrevDocument method
Returns the previous document entry in a view navigator.

Defined in
ViewNavigator

Syntax
public ViewEntry getPrevDocument()
throws NotesException

Return value
ViewEntry

The document entry preceding the current entry. Returns null if there is
no previous document entry.

Usage
This method moves the current pointer to the retrieved entry unless the
return value is null.

getPrevSibling method
Returns the previous sibling entry of the current or specified entry in a view
navigator.

Defined in
ViewNavigator

Syntax
public ViewEntry getPrevSibling()
throws NotesException
public ViewEntry getPrevSibling(ViewEntry entry)
throws NotesException

Parameters
ViewEntry entry

An entry in the view. Cannot be null.

Return value
ViewEntry

The sibling entry preceding the current or specified entry. Returns null
if there is no previous sibling entry.

2354 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewNavigator class

Usage
This method moves the current pointer to the retrieved entry unless the
return value is null.

Example: getPrevSibling method


This agent gets all the top-level entries from last to first.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
ViewNavigator nav = view.createViewNav();
ViewEntry entry = nav.getLast();
int n = 0;
do { entry = nav.getCurrent(); }
while (nav.gotoParent());
while (entry != null) {
System.out.println("Last category minus " + n + "
has " +
entry.getDescendantCount() + " descendants");
n++;
entry = nav.getPrevSibling(); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

gotoChild method
Moves the current pointer to the first child of the current or specified entry
in a view navigator.

Defined in
ViewNavigator

Syntax
public boolean gotoChild()
throws NotesException
public boolean gotoChild(ViewEntry entry)
throws NotesException

Chapter 10: Java Classes A–Z 2355


ViewNavigator class

Parameter
ViewEntry entry

An entry in the view. Cannot be null.

Return value
boolean

true if the operation succeeds


false if there are no children

Usage
A child of a category entry can be a category or document entry.

Example: gotoChild and gotoParent methods


This agent gets entries from a view by hierarchy down to three levels.
import lotus.domino.*;
public class JavaAgent extends AgentBase {

String getEntryType(ViewEntry entry) {


String t = null;
try {
if (entry.isCategory()) t = "category";
else if (entry.isDocument()) t = "document";
else if (entry.isTotal()) t = "total"; }
catch (Exception e) {
e.printStackTrace(); }
return t; }
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
ViewNavigator nav = view.createViewNav();
int n = 0;
if (nav.gotoFirst()) do {
// Print 1st-level entries flush left
n++;
System.out.println("Entry # " + n + " is a " +
getEntryType(nav.getCurrent()));
if (nav.gotoChild()) { do {
// Print 2nd-level entries one tab in
n++;
System.out.println("\tEntry # " + n + " is a " +
getEntryType(nav.getCurrent()));
} while (nav.gotoNextSibling());

2356 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewNavigator class

if (nav.gotoChild()) { do {
// Print 3rd-level entries two tabs in
n++;
System.out.println("\t\tEntry # " + n + " is a " +
getEntryType(nav.getCurrent()));
} while (nav.gotoNextSibling());
nav.gotoParent(); }
nav.gotoParent(); }
} while (nav.gotoNextSibling());
} catch(Exception e) {
e.printStackTrace();
}
}
}

gotoEntry method
Moves the current pointer to a specified document or view entry.

Defined in
ViewNavigator

Syntax
public boolean gotoEntry(Object entry)
throws NotesException

Parameter
Object entry

A Document or ViewEntry object. Cannot be null.

Return value
boolean

true if the operation succeeds


false if there is no entry for the specified document or view entry

Usage
The Document or ViewEntry object provided as the parameter does not
have to come from the current view navigator. The gotoEntry method
searches for the existence of the entry in the current view navigator.

Example: gotoEntry method


This agent gets Document objects using a full-text search, then gets the
associated entries in a view.
import lotus.domino.*;
public class JavaAgent extends AgentBase {

Chapter 10: Java Classes A–Z 2357


ViewNavigator class

public void NotesMain() {


try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Agent agent = agentContext.getCurrentAgent();
String searchString = agent.getComment();
View view = db.getView("By Category");
ViewNavigator nav = view.createViewNav();
db.updateFTIndex(true);
int count = view.FTSearch(searchString, 0);
if (count == 0)
System.out.println("Nothing found");
else {
System.out.println(count + " found");
Document doc = view.getFirstDocument();
ViewEntry entry = null;
while (doc != null) {
System.out.println(doc.getItemValueString
("Subject"));
if (nav.gotoEntry(doc)) {
entry = nav.getCurrent();
System.out.println("Position in \"By Category\
" is " +
entry.getPosition('.')); }
else
System.out.println("Not in \"By Category\" view");
doc = view.getNextDocument(doc); } }
} catch(Exception e) {
e.printStackTrace();
}
}
}

gotoFirst method
Moves the current pointer to the first entry in a view navigator.

Defined in
ViewNavigator

Syntax
public boolean gotoFirst()
throws NotesException

2358 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewNavigator class

Return value
boolean

true if the operation succeeds


false if there are no entries in the view navigator

Example: getCurrent, gotoFirst, and gotoNext methods


This example gets the second entry in a view.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
ViewNavigator nav = view.createViewNav();
ViewEntry entry = null;
if (nav.gotoFirst())
if (nav.gotoNext()) {
entry = nav.getCurrent();
String t = null;
if (entry.isCategory()) t = "category";
else if (entry.isDocument()) t = "document";
else if (entry.isTotal()) t = "total";
System.out.println("Entry # 2 is a " + t); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

gotoFirstDocument method
Moves the current pointer to the first document entry in a view navigator,
skipping any category entries.

Defined in
ViewNavigator

Syntax
public boolean gotoFirstDocument()
throws NotesException

Chapter 10: Java Classes A–Z 2359


ViewNavigator class

Return value
boolean

true if the operation succeeds


false if there are no entries in the view navigator

Example: gotoFirstDocument and gotoNextDocument methods


Body text
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
ViewNavigator nav = view.createViewNav();
if (nav.gotoFirstDocument()) {
ViewEntry entry = null;
int n = 0;
do {
n++;
entry = nav.getCurrent();
System.out.println("Document #" + n + ": " +
entry.getDocument().getItemValueString("Subject"));
} while (nav.gotoNextDocument()); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

gotoLast method
Moves the current pointer to the last entry in a view navigator.

Defined in
ViewNavigator

Syntax
public boolean gotoLast()
throws NotesException

2360 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewNavigator class

Return value
boolean

true if the operation succeeds


false if there are no entries in the view navigator

Examples: gotoLast method


1. This agent gets all the entries in a view last to first.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
ViewNavigator nav = view.createViewNav();
int n = 0;
String t = null;
if (nav.gotoLast()) {
do {
ViewEntry entry = nav.getCurrent();
if (entry.isCategory()) t = "category";
else if (entry.isDocument()) t = "document";
else if (entry.isTotal()) t = "total";
System.out.println("Last entry minus " + n +
"is a " + t);
n++; }
while (nav.gotoPrev()); }
} catch(Exception e) {
e.printStackTrace();
}
}
}
2. This agent gets the next to the last entry in a view.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");

Chapter 10: Java Classes A–Z 2361


ViewNavigator class

ViewNavigator nav = view.createViewNav();


ViewEntry entry = null;
if (nav.gotoLast()) {
if (nav.gotoPrev()) {
entry = nav.getCurrent();
String t = null;
if (entry.isCategory()) t = "category";
else if (entry.isDocument()) t = "document";
else if (entry.isTotal()) t = "total";
else t = "Unknown";
System.out.println("Next to the last entry
is a " + t); } }
} catch(Exception e) {
e.printStackTrace();
}
}
}

gotoLastDocument method
Moves the current pointer to the last document entry in a view navigator,
skipping any totals and category entries.

Defined in
ViewNavigator

Syntax
public boolean gotoLastDocument()
throws NotesException

Return value
boolean

true if the operation succeeds


false if there are no entries in the view navigator

Example: gotoLastDocument and gotoPrevDocument methods


This agent gets all the document entries in a view from last to first.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();

2362 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewNavigator class

View view = db.getView("By Category");


ViewNavigator nav = view.createViewNav();
int n = 0;
if (nav.gotoLastDocument()) {
do {
ViewEntry entry = nav.getCurrent();
System.out.println("Last document minus " + n + ":
" +
entry.getDocument().getItemValueString("Subject"));
n++; }
while (nav.gotoPrev()); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

gotoNext method
Moves the current pointer to the next entry of the current or specified entry
in a view navigator.

Defined in
ViewNavigator

Syntax
public boolean gotoNext()
throws NotesException
public boolean gotoNext(ViewEntry entry)
throws NotesException

Parameters
ViewEntry entry

An entry in the view. Cannot be null.

Return value
boolean

true if the operation succeeds


false if there is no next entry

Chapter 10: Java Classes A–Z 2363


ViewNavigator class

gotoNextCategory method
Moves the current pointer to the next category entry of the current entry in
a view navigator.

Defined in
ViewNavigator

Syntax
public boolean gotoNextCategory()
throws NotesException

Return value
boolean

true if the operation succeeds


false if there is no next category entry

Example: gotoNextCategory method


This example gets all the category entries in a view first to last.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
ViewNavigator nav = view.createViewNav();
if (nav.gotoFirst()) {
int n = 0;
do {
n++;
ViewEntry entry = nav.getCurrent();
System.out.println("Category #" + n + " has " +
entry.getDescendantCount() + " descendant(s)");
} while (nav.gotoNextCategory());
}
} catch(Exception e) {
e.printStackTrace();
}
}
}

2364 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewNavigator class

gotoNextDocument method
Moves the current pointer to the next document entry of the current entry
in a view navigator.

Defined in
ViewNavigator

Syntax
public boolean gotoNextDocument()
throws NotesException

Return value
boolean

true if the operation succeeds


false if there is no next document entry

gotoNextSibling method
Moves the current pointer to the next sibling entry of the current or
specified entry in a view navigator.

Defined in
ViewNavigator

Syntax
public boolean gotoNextSibling()
throws NotesException
public boolean gotoNextSibling(ViewEntry entry)
throws NotesException

Parameter
ViewEntry entry

An entry in the view. Cannot be null.

Return value
boolean

true if the operation succeeds


false if there is no next sibling entry

Chapter 10: Java Classes A–Z 2365


ViewNavigator class

gotoParent method
Moves the current pointer to the parent entry of the current or specified
entry in a view navigator.

Defined in
ViewNavigator

Syntax
public boolean gotoParent()
throws NotesException
public boolean gotoParent(ViewEntry entry)
throws NotesException

Parameter
ViewEntry entry

An entry in the view. Cannot be null.

Return value
boolean

true if the operation succeeds


false if there is no parent entry

gotoPos method
Moves the current pointer to the entry at a specified position in a view
navigator.

Defined in
ViewNavigator

Syntax
public boolean gotoPos(String pos, char separator)
throws NotesException

Parameters
String pos

A position in decimal format, for example, “1.2.3” is the third child to


the second child to the first entry using the period as a level separator.

2366 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewNavigator class

char separator

The separator between position levels.

Return value
boolean

true if the operation succeeds


false if there is no entry at that position

gotoPrev method
Moves the current pointer to the previous entry of the current or specified
entry in a view navigator.

Defined in
ViewNavigator

Syntax
public boolean gotoPrev()
throws NotesException
public boolean gotoPrev(ViewEntry entry)
throws NotesException

Parameter
ViewEntry entry

An entry in the view. Cannot be null.

Return value
boolean

true if the operation succeeds


false if there is no previous entry

gotoPrevCategory method
Moves the current pointer to the previous category entry in a view
navigator.

Defined in
ViewNavigator

Chapter 10: Java Classes A–Z 2367


ViewNavigator class

Syntax
public boolean gotoPrevCategory()
throws NotesException

Return value
boolean

true if the operation succeeds


false if there is no previous category entry

Example: gotoPrevCategory method


This agent gets all the category entries in a view from last to first.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
ViewNavigator nav = view.createViewNav();
if (nav.gotoLast())
if (nav.gotoPrevCategory()) {
ViewEntry entry = nav.getCurrent();
System.out.println("Last category has " +
entry.getDescendantCount() + " descendants"); }`
} catch(Exception e) {
e.printStackTrace();
}
}
}

gotoPrevDocument method
Moves the current pointer to the previous document entry in a view
navigator.

Defined in
ViewNavigator

Syntax
public boolean gotoPrevDocument()
throws NotesException

2368 Domino Designer Programming Guide, Volume 3: JavaScript Classes


ViewNavigator class

Return value
boolean

true if the operation succeeds


false if there is no previous document entry

gotoPrevSibling method
Moves the current pointer to the previous sibling entry of the current or
specified entry in a view navigator.

Defined in
ViewNavigator

Syntax
public boolean gotoPrevSibling()
throws NotesException
public boolean gotoPrevSibling(ViewEntry entry)
throws NotesException

Parameter
ViewEntry entry

An entry in the view. Cannot be null.

Return value
boolean

true if the operation succeeds


false if there is no previous sibling entry

Example: gotoPrevSibling method


This example gets all the top-level entries from last to first.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
View view = db.getView("By Category");
ViewNavigator nav = view.createViewNav();
ViewEntry entry = null;
if (nav.gotoLast()) {
do { entry = nav.getCurrent(); }

Chapter 10: Java Classes A–Z 2369


ViewNavigator class

while (nav.gotoParent());
int n = 0;
boolean first = true;
do {
if (first) first = false;
else entry = nav.getCurrent();
System.out.println("Last category minus " + n + "
has " +
entry.getDescendantCount() + " descendants");
n++; }
while (nav.gotoPrevSibling()); }
} catch(Exception e) {
e.printStackTrace();
}
}
}

2370 Domino Designer Programming Guide, Volume 3: JavaScript Classes


Index

[AdminOpenUsersView] [AutoHorzFit] command, 97


Symbols command, 408 [AutoVertFit] command, 97
@Abs function, 113, 154 [AdminOutgoingMail] @Begins function, 109, 178
@Abstract, 155 command, 409 $Body field, 65
@Accessed function, 118, 162 [AdminRegisterFromFile] @BrowserInfo function, 179
@Acos function, 114, 164 command, 409 [CalendarFormat] command, 415
[AddBookmark] command, 400 [AdminRegisterServer] [CalendarGoTo] command, 416
[AddDatabase] command, 400 command, 409 @Certificate function, 181
[AddDatabaseRepID] command, 401 [AdminRegisterUser] command, 410 @Char function, 105, 182
@AddToFolder function, 164 [AdminRemoteConsole] @CheckAlarms function, 183
@Adjust function, 119, 165 command, 410 [ChooseFolders] command, 416
[AdminCertify] command, 402 [AdminSendMailTrace] @ClientType function, 184
[AdminCreateGroup] command, 402 command, 410 @Command function, 76, 101, 184
[AdminCrossCertifyIDFile] [AdminStatisticsConfig] @Commands
command, 403 command, 411 order of evaluation, 77
[AdminCrossCertifyKey] [AdminTraceConnection] reference, 397
command, 403 command, 411 using, 397
[AdminDatabaseAnalysis] [AgentEdit] command, 411 @Commands function, 77
command, 403 [AgentEnableDisable] [Compose] command, 417
[AdminDatabaseQuotas] command, 412 @Contains function, 109, 186
command, 404 [AgentLog] command, 412 @Cos function, 114, 186
[AdminIDFileClearPassword] [AgentRun] command, 413 [CreateAction] command, 418
command, 404 [AgentSetServerName] [CreateAgent] command, 418
[AdminIDFileExamine] command, 413 [CreateControlledAccessSection]
command, 404 [AgentTestRun] command, 413 command, 419
[AdminIDFileSetPassword] @All function, 6, 15, 84, 101, 167 @Created function, 118, 187
command, 405 @AllChildren function, 101, 126, 167 [CreateEllipse] command, 419
[Administration] command, 405 @AllDescendants function, 101, [CreateFolder] command, 419
[AdminNewOrganization] 126, 168 [CreateForm] command, 420
command, 405 @Ascii function, 171 [CreateLayoutRegion]
[AdminNewOrgUnit] command, 406 @Asin function, 114, 172 command, 420
[AdminOpenAddressBook] @Atan function, 114, 173 [CreateNavigator] command, 420
command, 406 @Atan2 function, 114, 174 [CreatePolygon] command, 421
[AdminOpenCatalog] [AttachmentDetachAll] [CreatePolyline] command, 421
command, 406 command, 414 [CreateRectangle] command, 421
[AdminOpenCertLog] [AttachmentLaunch] command, 414 [CreateRectangularHotspot]
command, 407 @AttachmentLengths function, command, 422
[AdminOpenGroupsView] 126, 175 [CreateSection] command, 422
command, 407 @AttachmentNames function, [CreateSubForm] command, 422
[AdminOpenServerLog] 126, 176 [CreateTextbox] command, 423
command, 407 [AttachmentProperties] [CreateView] command, 423
[AdminOpenServersView] command, 414 [DatabaseReplSettings]
command, 408 @Attachments function, 126, 176 command, 423
[AdminOpenStatistics] [AttachmentView], 415 @Date function, 119, 188
command, 408 @Author function, 126, 177 @Day function, 118, 190

Index-1
@DbColumn function, 76, 101, 131 [DesignViewNewColumn] [EditLocations] command, 445
Notes database, 128, 190 command, 430 [EditMakeDocLink] command, 445
ODBC, 195 [DesignViews] command, 430 [EditNextField] command, 445
@DbCommand function, 201 [DesignViewSelectFormula] [EditOpenLink] command, 445
ODBC, 131 command, 431 [EditPaste] command, 446
@DbExists function, 206 [DialingRules] command, 431 [EditPasteSpecial] command, 446
@DbLookup function, 76, 102, 128, @DialogBox function, 76, 96, 230 [EditPhoneNumbers] command, 446
131, 207, 214 @Do function, 78, 233 [EditPrevField] command, 447
@DbManager function, 122, 220 @DocChildren function, 102, [EditProfile] command, 447
@DbName function, 122, 221 124, 234 [EditResizePicture] command, 448
@DbTitle function, 222 @DocDescendants function, 102, [EditRight] command, 449
@DDEExecute function, 76, 223 123, 236 [EditSelectAll] command, 449
@DDEInitiate function, 76, 225 @DocFields function, 126, 238 [EditSelectByDate] command, 450
@DDEPoke function, 76, 227 @DocLength function, 126, 238 [EditShowHideHiddenChars]
@DDETerminate function, 76, 228 @DocLevel function, 102, 123, 239 command, 450
[DebugLotusScript] command, 424 @DocMark function, 102, 126, 240 [EditTableDeleteRowColumn]
@DeleteDocument function, 102, 229 @DocNumber function, 102, 123, 240 command, 450
@DeleteField function, 102, 125, 230 @DocParentNumber function, 102, [EditTableFormat] command, 451
[DesignDocumentInfo] 123, 241 [EditTableInsertRowColumn]
command, 424 @DocSiblings function, 102, 123, 242 command, 451
[DesignFormAttributes] @DocumentUniqueID function, [EditTop] command, 452
command, 424 126, 243 [EditUndo] command, 452
[DesignFormFieldDef] @Domain function, 246 [EditUntruncate] command, 452
command, 425 [EditBottom] command, 431 [EditUp] command, 453
[DesignFormNewField] [EditButton] command, 432 @EditUserECL function, 247
command, 425 [EditClear] command, 432 @Elements function, 87, 97, 247
[DesignForms] command, 425 [EditCopy] command, 432 [EmptyTrash] command, 453
[DesignFormShareField] [EditCut] command, 433 @EnableAlarms function, 248
command, 425 [EditDeselectAll] command, 433 @Ends function, 109, 248
[DesignFormUseField] [EditDetach] command, 434 @Environment function, 97, 102, 250
command, 426 [EditDocument] command, 435 @Error function, 99, 253
[DesignFormWindowTitle] [EditDown] command, 436 [ExchangeUnreadMarks]
command, 426 @EditECL function, 246 command, 454
[DesignHelpAboutDocument] [EditEncryptionKeys] command, 436 [Execute] command, 454
command, 426 [EditFind] command, 437 @Exp function, 114, 254
[DesignHelpUsingDocument] [EditFindInPreview] command, 437 @Explode function, 87, 254
command, 427 [EditFindNext] command, 438 @Failure function, 99, 102, 257
[DesignIcon] command, 427 [EditGotoField] command, 438 @False function, 257
[DesignMacros] command, 427 [EditHeaderFooter] command, 439 @FIELD function, 102
[DesignRefresh] command, 428 [EditHorizScrollbar] command, 439 [FileCloseWindow] command, 455
[DesignReplace] command, 428 [EditIndent] command, 439 [FileDatabaseACL] command, 455
[DesignSharedFields] command, 428 [EditIndentFirstLine] command, 440 [FileDatabaseCompact]
[DesignSynopsis] command, 429 [EditInsertButton] command, 440 command, 455
[DesignViewAppendColumn] [EditInsertFileAttachment] [FileDatabaseCopy] command, 456
command, 429 command, 440 [FileDatabaseDelete] command, 456
[DesignViewAttributes] [EditInsertObject] command, 441 [FileDatabaseInfo] command, 456
command, 429 [EditInsertPageBreak] [FileDatabaseRemove]
[DesignViewColumnDef] command, 442 command, 457
command, 429 [EditInsertPopup] command, 442 [FileDatabaseUseServer]
[DesignViewEditActions] [EditInsertTable] command, 443 command, 457
command, 430 [EditInsertText] command, 443 [FileExit] command, 457
[DesignViewFormFormula] [EditLeft] command, 444 [FileExport] command, 458
command, 430 [EditLinks] command, 444 [FileFullTextCreate] command, 460

Index-2
[FileFullTextDelete] command, 460 [HelpTableOfContents] @Left function, 109, 286
[FileFullTextInfo] command, 460 command, 478 @LeftBack function, 109, 287
[FileFullTextUpdate] command, 461 [HelpUsingDatabase] command, 479 @Length function, 106, 288
[FileImport] command, 461 [HelpV3ReleaseMenuFinder] @Like function, 106, 289
[FileNewDatabase] command, 463 command, 478 @Ln function, 114, 290
[FileNewReplica] command, 463 [HotSpotClear] command, 479 @Locale function, 291
[FileOpenDatabase] command, 464 [HotSpotProperties] command, 479 @Log function, 114, 292
[FileOpenDBRepID] command, 466 @Hour function, 119, 262 @LowerCase function, 112, 293
[FilePageSetup] command, 467 @If function, 78, 90, 263 [MailAddress] command, 482
[FilePrint] command, 468 @Implode function, 87, 265 [MailComposeMemo]
[FilePrintSetup] command, 470 $Info field, 65 command, 482
[FileSave] command, 470 @InheritedDocumentUniqueID @MailDbName function, 121, 294
[FileSaveNewVersion] function, 126, 266 @MailEncryptSavedPreference
command, 470 [InsertSubForm] command, 480 function, 295
[FindFree]TimeDialog @Integer function, 113, 266 @MailEncryptSentPreference
command, 471 @IsAgentEnabled function, 267 function, 296
[Folder] command, 472 @IsAvailable function, 126, 268 [MailForward] command, 483
[FolderCollapse] command, 473 @IsCategory function, 102, 124, 269 [MailForwardAsAttachment]
[FolderCustomize] command, 473 @IsDocBeingEdited function, command, 483
[FolderExpand] command, 474 126, 270 [MailOpen] command, 483
[FolderExpandAll] command, 474 @IsDocBeingLoaded function, 102, [MailRequestCrossCert]
[FolderExpandWithChildren] 126, 270 command, 483
command, 474 @IsDocBeingMailed function, 102, [MailRequestNewName]
[FolderMove] command, 475 126, 271 command, 484
[FolderProperties] commandx, 475 @IsDocBeingRecalculated function, [MailRequestNewPublicKey]
[FolderRename] command, 475 102, 126, 272 command, 484
@FontList function, 259 @IsDocBeingSaved function, 102, @MailSavePreference function, 296
[FormActions] command, 476 126, 273 [MailScanUnread] command, 484
[FormTestDocument] command, 476 @IsDocTruncated function, 274 [MailSend] command, 485
@Functions @IsError function, 99, 274 @MailSend function, 76, 102,
@Commands, 77 @IsExpandable function, 102, 125, 297
described, 101 124, 275 [MailSendCertificateRequest]
in LotusScript, 549 @IsMember function, 87, 276 command, 485
operating, 133, 143 @IsModalHelp function, 277 [MailSendEncryptionKey]
order of evaluation, 77 @IsNewDoc function, 102, 126, 278 command, 485
reference, 133 @IsNotMember function, 87, 278 [MailSendPublicKey] command, 486
restrictions, 101 @IsNumber function, 105, 280 @MailSignPreference function, 301
return value, 76 @IsResponseDoc function, 126, 280 @Matches function, 106, 302
syntax, 75 @IsText function, 105, 281 @Max function, 113, 303
using, 75, 133, 143 @IsTime function, 105, 282 @Member function, 87, 304
@GetDocField function, 129, 259 @IsUnavailable function, 282 @Middle function, 109, 305
@GetPortsList function, 260 @IsValid function, 283 @MiddleBack function, 109, 307
@GetProfileField function, 261 @Keywords function, 87, 284 @Min function, 113, 308
[GoUpLevel] command, 476 @LanguagePreference, 285 @Minute function, 119, 310
[Help] command, 476 [LayoutAddGraphic] command, 480 @Modified function, 118, 310
[HelpAboutDatabase] [LayoutAddText] command, 480 @Modulo function, 114, 311
command, 477 [LayoutElementBringToFront] @Month function, 119, 312
[HelpAboutNotes] command, 477 command, 481 @Name function, 121, 313
[HelpFunctions] command, 477 [LayoutElementProperties] @NameLookup function, 317
[HelpIndex] command, 477 command, 481 @Narrow function, 319
[HelpKeyboard] command, 478 [LayoutElementSendToBack] [NavigateNext] command, 486
[HelpMessages] command, 478 command, 481 [NavigateNextHighlight]
[HelpReleaseNotes] command, 478 [LayoutProperties] command, 482 command, 486

Index-3
[NavigateNextMain] command, 487 @Prompt [OKCANCELCOMBO] [SectionDefineEditors]
[NavigateNextSelected] function, 94 command, 503
command, 487 @Prompt [OKCANCELEDIT] [SectionExpand] command, 504
[NavigateNextUnread] function, 94 [SectionExpandAll] command, 504
command, 488 @Prompt [SectionProperties] command, 504
[NavigatePrev] command, 488 [OKCANCELEDITCOMBO] [SectionRemoveHeader]
[NavigatePrevHighlight] function, 94 command, 505
command, 489 @Prompt [OKCANCELLIST] @Select function, 349
[NavigatePrevMain] command, 489 function, 94 @Set function, 350
[NavigatePrevSelected] @Prompt [OKCANCELLISTMULT] [SetCurrentLocation] command, 505
command, 490 function, 94 @SetDocField function, 103, 129, 351
[NavigatePrevUnread] @Prompt [PASSWORD] function, 94 @SetEnvironment function, 97,
command, 490 @Prompt [YESNO] function, 93 103, 352
[NavigateToBackLink] @Prompt [YESNOCANCEL] @SetField function, 103, 125, 353
command, 490 function, 93 @SetProfileField function, 354
[NavigatorProperties] @Prompt function, 76, 81, 93, @SetTargetFrame function, 354
command, 491 103, 331 [ShowHideLinkPreview]
[NavigatorTest] command, 491 @ProperCase function, 112, 336 command, 505
@NewLine function, 112, 320 [PublishDatabase] command, 498 [ShowHideParentPreview]
@No function, 321 @Random function, 114, 337 command, 506
@NoteID function, 126, 322 @RefreshECL function, 338 [ShowHidePreviewPane]
@Now function, 118, 322 [RefreshHideFormulas] command, 506
[ObjectDisplayAs] command, 491 command, 499 [ShowProperties] command, 506
[ObjectOpen] command, 492 [RefreshParentNote] command, 498 @Sign function, 113, 356
[ObjectProperties] command, 492 %Rem directive @Sin function, 114, 356
[OpenCalendar] command, 492 in Script Editor, 50 [SmartIconsFloating] command, 507
[OpenDocument] command, 493 [RemoveFromFolder] command, 499 [SmartIconsNextSet] command, 507
[OpenFrameset] command, 494 [RenameDatabase] command, 499 @Soundex function, 357
[OpenHelpDocument] @Repeat function, 112, 339 @Sqrt function, 114, 358
command, 494 @Replace function, 87, 340 [StyleCycleKey] command, 507
[OpenNavigator] command, 495 @ReplaceSubstring function, 341 @Subset function, 87, 358
[OpenPage] command, 496 [Replicator] command, 500 @Success function, 99, 103, 359
[OpenView] command, 496 [ReplicatorReplicateHigh] @Sum function, 113, 359
@OptimizeMailAddress function, command, 500 @Tan function, 114, 361
121, 322 [ReplicatorReplicateNext] @Text function, 105, 361
@Password function, 121, 323 command, 501 [TextAlignCenter] command, 508
[PasteBitmapAsBackground] [ReplicatorReplicateSelected] [TextAlignFull] command, 508
command, 497 command, 501 [TextAlignLeft] command, 508
[PasteBitmapAsObject] [ReplicatorReplicateWithServer] [TextAlignNone] command, 509
command, 498 command, 501 [TextAlignRight] command, 509
@Pi function, 114, 324 [ReplicatorSendMail] command, 502 [TextBold] command, 509
@PickList [CUSTOM] function, 94 [ReplicatorSendReceiveMail] [TextBullet] command, 510
@PickList [NAME] function, 94 command, 502 [TextCycleSpacing] command, 510
@PickList function, 76, 102, 325 [ReplicatorStart] command, 502 [TextEnlargeFont] command, 511
[PictureProperties] command, 498 [ReplicatorStop] command, 502 [TextFont] command, 511
@Platform function, 102, 121, 328 @Responses function, 103, 123, [TextItalic] command, 512
@PostedCommand, 76 126, 342 [TextNormal] command, 512
@PostedCommand function, @Return function, 78, 99, 103, 343 [TextNumbers] command, 513
103, 330 @Right function, 109, 344 [TextOutdent] command, 513
@Power function, 114, 330 @RightBack function, 109, 345 [TextParagraph] command, 514
@Prompt([OK], 93 @Round function, 113, 346 [TextParagraphStyles]
@Prompt([OKCANCELLIST], 93 @Second function, 119, 347 command, 514
@Prompt[LOCALBROWSE] [SectionCollapse] command, 503 [TextPermanentPen] command, 514
function, 94 [SectionCollapseAll] command, 503 [TextReduceFont] command, 515

Index-4
[TextSetFontColor] command, 515 @URLHistory function, 373 [ViewShowOnlySearchResults]
[TextSetFontFace] command, 516 @URLOpen function, 374 command, 538
[TextSetFontSize] command, 517 @UserAccess function, 377 [ViewShowOnlySelected]
[TextSpacingDouble] command, 517 [UserIDCertificates] command, 527 command, 538
[TextSpacingOneAndAHalf] [UserIDClearPassword] [ViewShowOnlyUnread]
command, 518 command, 527 command, 539
[TextSpacingSingle] command, 518 [UserIDCreateSafeCopy] [ViewShowPageBreaks]
@TextToNumber function, 363 command, 528 command, 539
@TextToTime function, 364 [UserIDEncryptionKeys] [ViewShowRuler] command, 539
[TextUnderline] command, 518 command, 528 [ViewShowSearchBar]
@Time function, 119, 365 [UserIDInfo] command, 528 command, 539
$Title field, 65 [UserIDMergeCopy] command, 529 [ViewShowServerNames]
@Today function, 118, 366 [UserIDSetPassword] command, 529 command, 540
@Tomorrow function, 118, 367 [UserIDSwitch] command, 529 [ViewShowUnread] command, 540
[ToolsCall] command, 519 @UserName function, 121, 379 [ViewSwitchForm] command, 540
[ToolsCategorize] command, 519 @UserNameLanguage function, 381 @ViewTitle function, 103, 122, 389
[ToolsHangUp] command, 520 @UserNamesList function, 382 @Weekday function, 118, 389
[ToolsMarkAllRead] command, 520 @UserPrivileges function, 383 @Wide function, 390
[ToolsMarkAllUnread] @UserRoles function, 121, 383 [WindowMaximize] command, 541
command, 520 @V2If function, 384 [WindowMaximizeAll]
[ToolsMarkSelectedRead] @V3Command function, 77 command, 541
command, 521 [V3EditNextField] command, 530 [WindowMinimize] command, 541
[ToolsMarkSelectedUnread] [V3EditPrevField] command, 530 [WindowMinimizeAll]
comand, 521 @V3UserName function, 385 command, 542
[ToolsRefreshAllDocs] @ValidateInternetAddress $WindowTitle field, 65
command, 522 function, 386 [WindowWorkspace] command, 542
[ToolsRefreshSelectedDocs] @Version function, 121, 388 @Word function, 110, 391
command, 522 [ViewArrangeIcons] command, 531 [WorkspaceProperties]
[ToolsReplicate] command, 522 [ViewBelowFolders] command, 531 command, 542
[ToolsRunBackgroundMacros] [ViewBesideFolders] commnd, 531 [WorspaceStackReplicaIcons]
command, 523 [ViewCertify] command, 531 command, 543
[ToolsRunMacro] command, 523 [ViewChange] command, 532 @Year function, 119, 392
[ToolsScanUnreadChoose] [ViewCollapse] command, 533 @Yes function, 393
command, 524 [ViewCollapseAll] command, 533 @Yesterday function, 118, 393
[ToolsScanUnreadPreferred] [ViewExpand] command, 534 @Zone function, 119, 394
command, 524 [ViewExpandAll] command, 534 [ZoomPreview] command, 543
[ToolsScanUnreadSelected] [ViewExpandWithChildren]
command, 524 command, 534
[ToolsSetupLocation] command, 525 [ViewHorizScrollBar] command, 535
A
[ToolsSetupMail] command, 525 [ViewMoveName] command, 535 Abbreviated property
[ToolsSetupPorts] command, 525 [ViewNavigatorsFolders] Name class, 2065
[ToolsSetupUserSetup] command, 535 NotesName class, 1075
command, 526 [ViewNavigatorsNone] Abs function, 113, 154
[ToolsSmartIcons] command, 526 command, 536 Abstract method
[ToolsSpellCheck] command, 526 [ViewRefreshFields] command, 536 NotesItem class, 1048
[ToolsUserLogoff] command, 527 [ViewRefreshUnread] command, 536 Abstract property
@Trim function, 112, 367 [ViewRenamePerson] command, 537 NotesReplication class, 1246
@True function, 368 [ViewShowFieldHelp] abstractText method
@Unavailable function, 103, 369 command, 537 Item class, 2034
@UndeleteDocument function, 369 [ViewShowObject] command, 537 Accelerators
@Unique function, 87, 370 [ViewShowOnlyCategories] in a formula, 81
@UpperCase function, 112, 370 command, 538 Accent sensitive
@URLGetHeader function, 371 ViewColumn class, 2285

Index-5
Access levels addNewLine method AdjustHour method
getCurrentAccessLevel RichTextItem class, 2150 NotesDateTime class, 892
method, 1788 AddPageBreak method adjustHour method
through Java, 1724 NotesRichTextItem class, 1263 DateTime class, 1867
Accessed function, 118, 162 addPageBreak method, 2152 AdjustMinute method
Accessing RichTextItem, 2150 NotesDateTime class, 893
LS:DO class, 666 Addr821 property adjustMinute method
Programmer's pane, 36 Name class, 2065 DateTime class, 1869
ACL NotesName class, 1076 AdjustMonth method
accessing in Java, 1616 Addr822Comment1 property NotesDateTime class, 894
accessing in LotusScript, 565 Name class, 2065 adjustMonth method
ACL class, 1616, 1696 NotesName class, 1076 DateTime class, 1870
ACL property Addr822Comment2 property AdjustSecond method
Database class, 1783 Name class, 2066 NotesDateTime class, 895
NotesDatabase class, 793 NotesName class, 1076 adjustSecond method
ACLEntry class, 1616, 1711 Addr822Comment3 property DateTime class, 1871
ACos function, 114, 164 Name class, 2066 AdjustYear method
Action scripts and formulas, 85 NotesName class, 1077 NotesDateTime class, 896
Actions, 3, 10 Addr822LocalPart property adjustYear method
Activate method Name class, 2066 DateTime class, 1872
NotesEmbeddedObject NotesName class, 1077 ADMD property
class, 1003 Addr822Phrase property Name class, 2067
activate method Name class, 2067 NotesName class, 1078
EmbeddedObject class, 1984 NotesName class, 1077 AdminCertify command, 402
AddBookmark command, 400 AddressBooks property AdminCreateGroup command, 402
AddCertifierToAddressbook NotesSession class, 1305 AdminCrossCertifyIDFile
method Session class, 2185 command, 403
NotesRegistration class, 1230 AddRole method AdminCrossCertifyKey
addCertifierToAddressbook method NotesACL class, 733 command, 403
Registration class, 2119 addRole method AdminDatabaseAnalysis
AddDatabase command, 400 ACL class, 1702 command, 403
AddDatabase method AddRow method AdminDatabaseQuotas
NotesUIWorkspace class, 1430 ODBCResultSet class, 1140 command, 404
AddDatabaseRepID command, 401 AddServerToAddressbook method AdminIDFileClearPassword
AddDocument method NotesRegistration class, 1230 command, 404
NotesDocumentCollection addServerToAddressbook method AdminIDFileExamine
class, 980 Registration class, 2120 command, 404
addDocument method AddTab method AdminIDFileSetPassword
DocumentCollection class, 1961 NotesRichTextItem class, 1264 command, 405
AddEntry method RichTextItem class, 2152 Administration servers, 1714
NotesOutline class, 1199 AddToFolder function, 164 AdminNewOrganization
NotesViewEntryCollection AddUserProfile method command, 405
class, 1558 NotesRegistration class, 1232 AdminNewOrgUnit command, 406
addEntry method addUserProfile method AdminOpenAddressBook
Outline class, 2089 Registration class, 2121 command, 406
ViewEntryCollection class, 2317 AddUserToAddressbook method AdminOpenCatalog command, 406
Adding NotesRegistration class, 1232 AdminOpenCertLog command, 407
a new line, 112 addUserToAddressbook method AdminOpenGroupsView
Addition, 113 Registration class, 2121 command, 407
Addition operator (+) Adjust function, 119, 165 AdminOpenServerLog
Formula Language, 69 AdjustDay method command, 407
AddNewLine method NotesDateTime class, 891 AdminOpenServersView
NotesRichTextItem class, 1262 adjustDay method command, 408
DateTime class, 1866 AdminOpenStatistics command, 408

Index-6
AdminOpenUsersView AgentRun command, 413 AppendDocLink method
command, 408 AgentRunner NotesRichTextItem class, 1266
AdminOutgoingMail command, 409 AgentContext document, 46 RichTextItem class, 2153
AdminRegisterFromFile creating a project, 45 AppendItemValue method
command, 409 debugging a Java agent, 46 NotesDocument class, 942
AdminRegisterServer command, 409 using, 45 appendItemValue method
AdminRegisterUser command, 410 Agents Document class, 1921
AdminRemoteConsole accessing in Java, 1650, 2143 AppendParagraphStyle method
command, 410 accessing in LotusScript, 650 NotesRichTextItem class, 1268
AdminSendMailTrace overview, 3, 6 appendParagraphStyle method
command, 410 running in Java, 1591 RichTextItem class, 2155
AdminStatisticsConfig writing a script and formula, 85 AppendRTItem method
command, 411 Agents property NotesRichTextItem class, 1269
AdminTraceConnection Database class, 1784 RichTextItem class, 2155
command, 411 NotesDatabase class, 793 AppendStyle method
AfterAddRow event, 1142 AgentSetServerName command, 413 NotesRichTextItem class, 1270
AfterClose event, 1143 AgentTestRun command, 413 RichTextItem class, 2156
AfterConnect event, 1104 Alarm event AppendText method
AfterConnectTo event, 1104 NotesTimer class, 1344 NotesRichTextItem class, 1271
AfterDeleteRow event, 1146 Alias property RichTextItem class, 2157
AfterDisconnect event, 1105 NotesOutline class, 1197 AppendToTextList method
AfterExecute event, 1148 NotesOutlineEntry class, 1208 NotesItem class, 1048
AfterFirstRow event, 1163 Outline class, 2088 appendToTextList method
AfterGetParameter event, 1165 OutlineEntry class, 2100 Item class, 2035
AfterGetParameterName event, 1166 Aliases property AppletBase class, 1668
AfterGetValue event, 1170 Form class, 1988 Applets
AfterLastRow event, 1180 NotesForm class, 1009 running, 1593
AfterListDataSources event, 1109 NotesView class, 1460 Arithmetic operators
AfterListFields event, 1110 View class, 2217 Formula Language, 71
AfterListProcedures event, 1111 Alignment property LotusScript, 71
AfterListTables event, 1113 NotesRichTextParagraphStyle table of, 113
AfterLocateRow event, 1182 class, 1278 Ascii function, 171
AfterNextRow event, 1184 NotesViewColumn class, 1509 Asin function, 114, 172
AfterNumColumns event, 1185 RichTextParagraphStyle Assignment operator
AfterPrevRow event, 1189 class, 2164 Formula Language, 70
AfterRowPositionChange event, ViewColumn class, 2277 Atan function, 114, 173
1163, 1180, 1182, 1184, 1189 All function, 6, 15, 84, 101, 167 Atan2 function, 114, 174
AfterSetParameter event, 1191 AllChildren function, 101, 126, 167 AttachmentDetachAll
AfterSetSQL event, 1119 AllDescendants function, 101, command, 414
AfterSetValue event, 1193 126, 168 AttachmentLaunch command, 414
AfterUpdateRow event, 1195 AllDocuments property AttachmentLengths function,
Agent Database class, 1785 126, 175
Script Libraries in, 57 NotesDatabase class, 794 AttachmentNames function, 126, 176
Agent class, 1651, 1736 AllEntries property AttachmentProperties
AgentBase class, 1593, 1668 NotesView class, 1461 command, 414
AgentContext class, 1757 View class, 2218 Attachments
AgentContext document ALOG.NTF file, 657 appending in Java, 2157
generating, 46 Alternate names, 379, 381 editing, 440
AgentContext property AMString property getting in Java, 1933
Session class, 2187 International class, 2000 Attachments function, 126, 176
AgentEdit command, 411 NotesInternational class, 1019 Author function, 126, 177
AgentEnableDisable command, 412 And operator Authors property
AgentLog command, 412 Formula Language, 69 Document class, 1893
NotesDocument class, 909

Index-7
Auto-commit mode Bold property Categories
in LS:DO, 695 NotesRichTextStyle class, 1292 accessing with ViewEntry, 1628
AutoCommit property RichTextStyle class, 2174 View class, 2227
ODBCConnection class, 1098 Boolean data type, 65 Categories property
AutoHorzFit command, 97 Breakpoints Database class, 1786
AutoReload property clearing, 54 NotesDatabase class, 796
NotesUIDocument class, 1367 disabling, 54 Categorize method
AutoUpdate property setting, 54 NotesUIDocument class, 1379
NotesView class, 1461 using thebreakpoints panel, 55 Certificate function, 181
AutoVertFit command, 97 BrowserInfo function, 179 CertifierIDFile property
avoidingGUI method Button class, 784 NotesRegistration class, 1225
Visibility interface, 1695 Buttons Registration class, 2114
as objects, 4 CGI variables, 1310
as hotspots, 12 Changing
B for a script and formula, 85 case, 112
BackgroundColor property Char function, 105, 182
NotesView class, 1462 CheckAlarms function, 183
View class, 2219 C CheckAlarms method
Backslash (\), 66 CacheLimit property NotesUIWorkspace class, 1431
Base Class box ODBCResultSet class, 1131 Child entries
defined, 36 Caches ViewNavigator class, 2337
BeforeAddRow event, 1142 in LS:DO, 697 ChildCount property
BeforeClose event, 1143 CacheSize property NotesViewEntry class, 1541
BeforeConnect event, 1104 ViewNavigator class, 2336 ViewEntry class, 2306
BeforeConnectTo event, 1104 CalendarDateTime property ChooseFolders command, 416
BeforeDeleteRow event, 1146 NotesUIView class, 1422 Chronos, 2143
BeforeDisconnect event, 1105 CalendarFormat command, 415 Class property
BeforeExecute event, 1148 CalendarGoTo command, 416 NotesEmbeddedObject class, 994
BeforeFirstRow event, 1163 Call statement, 552 Class statement
BeforeGetParameter event, 1165 CanCreateDocuments property in a declaration, 49
BeforeGetParameterName NotesACLEntry class, 743 Classes
event, 1166 CanCreateLSOrJavaAgent property LotusScript, 545
BeforeGetValue event, 1170 NotesACLEntry class, 744 Classes tab
BeforeLastRow event, 1180 CanCreatePersonalAgent property defined, 35
BeforeListDataSources event, 1109 NotesACLEntry class, 745 ClassName property
BeforeListFields event, 1110 CanCreatePersonalFolder property EmbeddedObject class, 1980
BeforeListProcedures event, 1111 NotesACLEntry class, 746 Classpath environment
BeforeListTables event, 1113 CanCreateSharedFolder property variables, 1592
BeforeLocateRow event, 1182 NotesACLEntry class, 747 Clear method
BeforeNextRow event, 1184 CanDeleteDocuments property NotesRichTextTab class, 1303
BeforeNumColumns event, 1185 NotesACLEntry class, 748 NotesUIDocument class, 1380
BeforePrevRow event, 1189 Canonical property NotesView class, 1479
BeforeRowPositionChange event, Name class, 2067 clear method
1163, 1180, 1182, 1184, 1189 NotesName class, 1078 RichTextTab class, 2182
BeforeSetParameter event, 1191 CaretCategory property View class, 2239
BeforeSetSQL event, 1119 NotesUIView class, 1423 ClearAllTabs method
BeforeSetValue event, 1193 Cascades, 81 NotesRichTextParagraphStyle
BeforeUpdateRow event, 1195 Case sensitive class, 1287
Begins function, 109, 178 ViewColumn class, 2286 clearAllTabs method
Bind keyword, 551 Cases RichTextParagraphStyle
Block statements changing, 112 class, 2169
Script Editor, 50 Formula Language, 63 ClearHistory method
Catalog database, 2138 NotesReplication class, 1257

Index-8
clearHistory method Comment property ConnectTo method
Replication class, 2146 Agent class, 1738 ODBCConnection class, 1103
Clearing NotesAgent class, 766 Constants
Script Editor, 42 NotesOutline class, 1198 Formula Language, 66
Click event NotesTimer class, 1344 time/date, 118
Button class, 784 Outline class, 2089 Contains function, 109, 186
Navigator class, 1087 CommitOnDisconnect property Contains method
ClientType function, 184 ODBCConnection class, 1099 NotesItem class, 1050
Close method CommitTransactions method containsValue method
NotesLog class, 1061 ODBCConnection class, 1102 Item class, 2037
NotesUIDocument class, 1381 Common property Converting
ODBCResultSet class, 1143 Name class, 2068 alphanumeric characters,
close method NotesName class, 1078 319, 390
Log class, 2051 CommonOwner property Converting data types
Close Window, 455 Agent class, 1739 in a formula, 105
Code NotesAgent class, 767 ConvertToZone method
locating within an object, 37 CommonUserName property NotesDateTime class, 897
Coding guidelines NotesSession class, 1307 convertToZone method
Java classes, 1591 Session class, 2187 DateTime class, 1874
LotusScript, 545 Compact method Copy method
CollapseAllSections method NotesDatabase class, 825 NotesUIDocument class, 1382
NotesUIDocument class, 1382 compact method CopyAllItems method
Collections Database class, 1814 NotesDocument class, 946
accessing with ViewEntry, 1629 Comparing copyAllItems method
Color property strings in a formula, 106 Document class, 1925
RichTextStyle class, 2174 Comparison operators Copying
Colors Formula Language, 72 text in Script Editor, 42
View class, 2219 Compile button CopyItem method
ViewColumn class, 2280 defined, 35 NotesDocument class, 947
Column formulas, 3, 16, 84, 123 Compiling copyItem method
Column titles, 2302 Java, 44 Document class, 1926
ColumnCount property JavaScript, 48 CopyItemToDocument method
NotesView class, 1464 LotusScript, 50 NotesItem class, 1051
View class, 2221 Components copyItemToDocument method
ColumnIndentLevel property Lotus, 715 Item class, 2038
NotesViewEntry class, 1542 Compose command, 417 CopyToDatabase method
ViewEntry class, 2306 ComposeDocument method NotesDocument class, 948
ColumnNames property NotesUIWorkspace class, 1431 copyToDatabase method
View class, 2222 Computed field formulas, 24, 84 Document class, 1928
Columns Computed fields, 4 Cos function, 114, 186
accessing in Java, 1626 ComputeWithForm method Count property
accessing in LotusScript, 581 NotesDocument class, 944 DocumentCollection class, 1957
getting in Java, 2257 computeWithForm method NotesDocumentCollection
Columns property Document class, 1923 class, 977
NotesView class, 1464 Concatenating NotesViewEntryCollection
View class, 2222 strings in a formula, 106 class, 1556
ColumnValues property Concatenation operator (+), 69 ViewEntryCollection, 2316
Document class, 1895 Conditional statements Country property
NotesDocument class, 911 Notes, 90 Name class, 2068
NotesViewEntry class, 1542 Conflicts NotesName class, 1079
ViewEntry class, 2307 IsConflict property, 2228 Create method
Command function, 76, 101, 184 Connection property NotesDatabase class, 561, 826
Command statement, 551 ODBCQuery class, 1115 CreateACLEntry method
Commands, 397 NotesACL class, 734

Index-9
createACLEntry method createName method createViewNav method
ACL class, 1703 Session class, 2197 View class, 2239
CreateAction command, 418 CreateNavigator command, 420 CreateViewNavFrom method
CreateAgent command, 418 CreateNewsletter method NotesView class, 1481
CreateControlledAccessSection NotesSession class, 1327 createViewNavFrom method
command, 419 createNewsletter method View class, 2241
CreateCopy method Session class, 2198 CreateViewNavFromCategory
NotesDatabase class, 561, 827 CreateObject method method
createCopy method NotesUIDocument class, 1383 NotesView class, 1482
Database class, 1815 CreateOutline method createViewNavFromCategory
Created function, 118, 187 NotesDatabase class, 831 method
Created property createOutline method View class, 2242
Database class, 1787 Database class, 1819 CreateViewNavFromChildren
Document class, 1896 CreatePolygon command, 421 method
NotesDatabase class, 796 CreatePolyline command, 421 NotesView class, 1483
NotesDocument class, 912 CreateRectangle command, 421 createViewNavFromChildren
NotesView class, 1465 CreateRectangularHotspot method
View class, 2223 command, 422 View class, 2244
createDatabase method createRegistration method CreateViewNavFromDescendants
DbDirectory class, 1881 Session class, 2198 method
CreateDateRange method CreateReplica method NotesView class, 1483
NotesSession class, 1323 NotesDatabase class, 561, 832 createViewNavFromDescendants
createDateRange method createReplica method method
Session class, 2195 Database class, 1820 View class, 2245
CreateDateTime method CreateReplyMessage method createViewNavMaxLevel method
NotesSession class, 1323 NotesDocument class, 949 View class, 2247
createDateTime method createReplyMessage method Creating
Session class, 2196 Document class, 1929 a full text index, 460
CreateDocument method CreateRichTextItem method script in Script Editor, 49
NotesDatabase class, 829 NotesDocument class, 950 CrossCertify method
createDocument method createRichTextItem method NotesRegistration class, 1234
Database class, 1816 Document class, 1930 crossCertify method
CreateEllipse command, 419 CreateRichTextParagraphStyle Registration class, 2123
CreateEntry method method Currency formats
NotesOutline class, 1200 NotesSession class, 1328 ViewColumn class, 2299
createEntry method createRichTextParagraphStyle CurrencyDigits property
Outline class, 2090 method International class, 2001
CreateFolder command, 419 Session class, 2199 NotesInternational class, 1020
CreateForm command, 420 CreateRichTextStyle method CurrencySymbol property
CreateFromTemplate method NotesSession class, 1329 International class, 2001
NotesDatabase class, 561, 830 createRichTextStyle method NotesInternational class, 1020
createFromTemplate method Session class, 2199 Current document
Database class, 1817 CreateSection command accessing in LotusScript, 603
CreateLayoutRegion command, 420 Formula Language, 422 Current documents
CreateLog method createSession method accessing, 125
NotesSession class, 1324 NotesFactory class, 1594, 1691 Current entry
createLog method CreateSubForm command, 422 ViewNavigator class, 2340
Session class, 2197 CreateTextbox command, 423 Current pointer
CreateMailDb property CreateTimer method NotesDocumentCollection
NotesRegistration class, 1225 NotesSession class, 1329 class, 976
Registration class, 2114 CreateView command, 423 CurrentAccessLevel property
CreateName method CreateViewNav method Database class, 1788
NotesSession class, 1325 NotesView class, 1480 NotesDatabase class, 797

Index-10
CurrentAgent property copying, 456 DbTitle function, 222
AgentContext class, 1759 copying in Java, 1815 DDEExecute function, 76, 223
NotesSession class, 1308 creating in Java, 1614 DDEInitiate function, 76, 225
CurrentCalendarDateTime property creating in LotusScript, 561 DDEPoke function, 76, 227
NotesUIWorkspace class, 1428 deleting, 456 DDETerminate function, 76, 228
CurrentDatabase property displaying ACL, 455 Debugger
AgentContext class, 1760 locating in Java, 1609 debugger utilities, 55
NotesSession class, 1309 new, 463 Debugging
NotesUIWorkspace class, 1428 new replica, 463 a formula, 81
CurrentDocument property opening in Java, 1610 breakpoints, 54
NotesUIWorkspace class, opening in LotusScript, 558 Java agent, 45
603, 1429 properties in Java, 1603 LotusScript, 51
CurrentField property properties in LotusScript, 554 DebugLotusScript command, 424
NotesUIDocument class, 1368 removing, 457 Decimals
CurrentRow property removing in Java, 1614 Formula Language, 67
ODBCResultSet class, 1133 replication settings, 570 DecimalSep property
CurrentView property searching for, 557 International class, 2004
NotesUIWorkspace class, 1430 switch server, 457 NotesInternational class, 1022
Cut method using replica ID, 466 Declarations
NotesUIDocument class, 1384 using server, 464 in Script Libraries, 57
Cutoff deletes, 2135 DataSourceName property Default keyword, 79, 125, 229
CutoffDate property ODBCConnection class, 1100 Default validation formulas, 84
NotesReplication class, 1247 Date Default value formulas, 4, 23, 84
Replication class, 2134 formatting, 68 Default views
CutoffDelete property Date function, 119, 188 View class, 2228
NotesReplication class, 1248 DateFmt property Defining
CutoffInterval property NotesViewColumn class, 1510 global variable and
NotesReplication class, 1248 ViewColumn class, 2278 subprogram, 48
Replication class, 2135 DateOnly property Deftype statement
Cutting text DateTime class, 1858 Script Area, 49
Script Editor, 42 NotesDateTime class, 883 Delay updates
DateRange class, 1654, 1849 isDelayUpdates method, 1794
Dates DelayUpdates property
D in LotusScript, 655 NotesDatabase class, 799
Data sources DateSep property Delete old documents, 2135
connecting to with LS:DO, 667 International class, 2002 DeleteDocument function, 102, 229
Data types NotesInternational class, 1021 DeleteDocument method
@functions, 76 DateTime class, 1654, 1854 NotesDocumentCollection
Formula Language, 63 DateTimeValue property class, 980
Database.FT_STEMS constant, 1769 Item class, 2016 NotesUIDocument class, 1385
Database class, 1776 NotesItem class, 1033 deleteDocument method
Database property Day function, 118, 190 DocumentCollection class, 1962
NotesOutlineEntry class, 1209 DbColumn function, 76, 128 DeleteEntry method
NotesUIDatabase class, 1351 Notes database, 101, 190 NotesViewEntryCollection
OutlineEntry class, 2101 ODBC, 131, 195 class, 1558
DatabaseReplSettings command, 423 DbCommand function, 131 deleteEntry method
Databases OBDC, 201 ViewEntryCollection class, 2318
accessing in Formula DBCS, 319 DeleteField function, 102, 125, 230
Language, 122 DbDirectory class, 1609, 1879 DeleteIDOnServer method
accessing in Java, 1603 DbExists function, 206 NotesRegistration class, 1235
accessing in LotusScript, 553 DbLookup function, 76, 102, 128, deleteIDOnServer method
closing in Java, 1610 131, 207, 214 Registration class, 2123
closing in LotusScript, 558 DbManager function, 122, 220 DeleteRole method
compacting and converting, 455 DbName function, 122, 221 NotesACL class, 735

Index-11
deleteRole method DesignViews command, 430 DocumentContext property
ACL class, 1704 DesignViewSelectFormula AgentContext class, 1769
DeleteRow method command, 431 Java, 1761
ODBCResultSet class, 1145 DialingRules command, 431 NotesSession class, 1310
Deleting DialogBox function, 76, 96, 230 Documents
a field, 64, 125, 230, 369 DialogBox method accessing, 575
a full text index, 460 NotesUIWorkspace class, 1433 accessing current, 603
Deletions, 2140, 2141 DialogBoxCanceled property accessing in Formula Language,
DescendantCount property NotesUIDocument class, 1369 125, 128
NotesViewEntry class, 1543 DIIOP server tasks, 1591 accessing in Java, 1631
ViewEntry class, 2308 Dim statement Accessing in LotusScript, 575
DeselectAll method Script Area, 49 accessing in LotusScript, 599
NotesUIDocument class, 1386 Disable replication, 2136, 2143 accessing properties in Java, 1632
Deselecting Disabled property accessing through a view in
text, 42 NotesReplication class, 1249 LotusScript, 615
Design hide, 2139 DisableRole method accessing with ViewEntry, 1628
DesignDocumentInfo command, 424 NotesACLEntry class, 761 adding in LotusScript, 614
DesignFormAttributes disableRole method collecting all in Java, 1635
command, 424 ACLEntry class, 1732 collecting all in LotusScript, 610
DesignFormFieldDef command, 425 Disabling copying in Java, 1640
DesignFormNewField @Commands, 77 copying in LotusScript, 622
command, 425 Disconnect method creating in Java, 1639
DesignForms command, 425 ODBCConnection class, 1105 creating in LotusScript, 621
DesignFormShareField Distinguished names, 315 deleting in LotusScript, 621
command, 425 Dividing, 113 getting all in Java, 1785
DesignFormUseField command, 426 Division operator (/) locating in Java, 1638
DesignFormWindowTitle Formula Language, 69, 71 locating in LotusScript, 614
command, 426 Do function, 78, 233 locating within a view in
DesignHelpAboutDocument Do not browse method, 2137 LotusScript, 617
command, 426 Do not catalog method, 2138 LotusScript properties, 599
DesignHelpUsingDocument DocChildren function, 102, 124, 234 mailing in Java, 1640
command, 427 DocDescendants function, 102, mailing in LotusScript, 623
DesignIcon command, 427 123, 236 removing in Java, 1639
DesignMacros command, 427 DocFields function, 126, 238 removing in LotusScript, 622
DesignRefresh command, 428 DocLength function, 126, 238 searching for in Java, 1637
DesignReplace command, 428 DocLevel function, 102, 123, 239 searching for in LotusScript, 612
DesignSharedFields command, 428 Doclinks Documents property
DesignSynopsis command, 429 appending in Java, 2153 NotesUIDatabase class, 1352
DesignTemplateName property DocMark function, 102, 126, 240 NotesUIView class, 1424
Database class, 1790 DocNumber function, 102, 123, 240 DocumentUniqueID function,
NotesDatabase class, 799 DocParentNumber function, 102, 126, 243
DesignViewAppendColumn 123, 241 Domain function, 246
command, 429 DocSiblings function, 102, 123, 242 Domain Search
DesignViewAttributes Document class, 1631, 1889 FTDomainSearch method in
command, 429 Document property Java, 1822
DesignViewColumnDef NotesOutlineEntry class, 1209 Domino classes
command, 429 NotesUIDocument class, 1370 A-Z reference, 1661
DesignViewEditActions command, NotesViewEntry class, 1544 LotusScript, 545
430 OutlineEntry class, 2101 Domino Directories
DesignViewFormFormula ViewEntry class, 2308 isPublicAddressBook
command, 430 DocumentCollection class, method, 1800
DesignViewNewColumn 1635, 1954 Domino logs
command, 430 openNotesLog method, 2060

Index-12
Domino objects EditInsertButton command, 440 EmbeddedObject class, 1646, 1978
table, 3 EditInsertFileAttachment EmbeddedObjects property
DominoAsynchronizeAgents command, 440 Document class, 1897
statement, 665 EditInsertObject command, 441 NotesDocument class, 913
DoNoBrowse property EditInsertPageBreak command, 442 NotesRichTextItem class, 1261
NotesReplication class, 1250 EditInsertPopup command, 442 RichTextItem class, 2149
DoNotCatalog property EditInsertTable command, 443 EmbedObject method
NotesReplication class, 1251 EditInsertText command, 443 NotesRichTextItem class, 1271
DoScore property EditLeft command, 444 embedObject method
NotesNewsletter class, 1090 EditLinks command, 444 RichTextItem class, 2157
DoSubject property EditLocations command, 445 Emboss effect
NotesNewsletter class, 1091 EditMakeDocLink command, 445 NotesRichTextStyle class, 1293
Double item values EditMode property RichTextStyle class, 2175
getting in Java, 1938 NotesUIDocument class, 1371 Empty strings, 367
DoVerb method EditNextField command, 445 EmptyTrash command, 453
NotesEmbeddedObject EditOpenLink command, 445 EnableAlarms function, 248
class, 1005 EditPaste command, 446 EnableAlarms method
doVerb method EditPasteSpecial command, 446 NotesUIWorkspace class, 1439
EmbeddedObject class, 1984 EditPhoneNumbers command, 446 Enabled property
Driver Manager for ODBC, 667 EditPrevField command, 447 NotesTimer class, 1344
EditProfile command, 447 EnableFolder method
EditProfile method NotesDatabase class, 833
E NotesUIWorkspace class, 1438 enableFolder method
ECL security EditResizePicture command, 448 Database class, 1821
@Commands, 397 EditRight command, 449 EnableRole method
@Functions, 153 EditSelectAll command, 449 NotesACLEntry class, 762
Java, 1661 EditSelectByDate command, 450 enableRole method
LotusScript, 721 EditShowHideHiddenChars ACLEntry class, 1733
Edit Project button command, 450 Enabling
defined, 35 EditTableDeleteRowColumn breakpoints, 55
EditBottom command, 431 command, 450 Encrypt method
EditButton command, 432 EditTableFormat command, 451 NotesDocument class, 951
EditClear command, 432 EditTableInsertRowColumn encrypt method
EditCopy command, 432 command, 451 Document class, 1931
EditCut command, 433 EditTop command, 452 Encrypt on send
EditDeselectAll command, 433 EditUndo command, 452 Document class, 1902
EditDetach command, 434 EditUntruncate command, 452 EncryptionKeys property
EditDocument command, 435 EditUp command, 453 Document class, 1899
EditDocument method EditUserECL function, 247 NotesDocument class, 915
NotesUIWorkspace class, 1437 EffectiveUserName property EncryptOnSend property
EditDown command, 436 AgentContext class, 1762 NotesDocument class, 916
EditECL function, 246 NotesSession class, 1313 EndDateTime property
EditEncryptionKeys command, 436 Effects property DateRange class, 1852
EditFind command, 437 NotesRichTextStyle class, 1293 NotesDateRange class, 877
EditFindInPreview command, 437 RichTextStyle class, 2175 Ends function, 109, 248
EditFindNext command, 438 Elements function, 87, 247 Entering event
EditGotoField command, 438 Embedded objects Field class, 1007
EditHeaderFooter command, 439 accessing in Java, 1646 EntryClass property
EditHorizScrollbar command, 439 appending in Java, 2157 NotesOutlineEntry class, 1210
EditIndent command, 439 getting in Java, 2149, 2159 OutlineEntry class, 2102
EditIndentFirstLine command, 440 hasEmbedded method, 1901 Environment function, 97, 102, 250
Editing text in LotusScript, 640 Environment keyword, 79, 102, 249
in the Script Area, 40

Index-13
Environment variables, 97 accessing a view or folder locating a document within a
accessing in Java, 1649 column, 583 view, 617
getting in Java, 2205, 2207 accessing an external locating a view, 1625
in LotusScript, 649 database, 132 locating a view and folder, 580
setting in Java, 2210 accessing outside data, 130 locating and extracting
Equals operator (=) accessing the current database substring, 110
Formula Language, 69 and view, 124 opening and closing a database,
Error function, 99, 253 accessing the current document, 558, 1610
Error handling 127, 607 performing time-date
in LotusScript, 698 adding a new line, 112 operation, 119
ODBC, 693 arithmetic operation, 115 removing a database, 1614
Errors changing case, 112 removing a document, 622
handling, 98 collecting all documents, 1636 removing a view and folder, 585
handling in Java, 1669 collecting documents by removing an item, 634
logError method, 2053 searching, 1637 repeating, 112
no main or selection expression collecting unprocessed replicating a database, 1614
in formula, 258 documents, 611 run-time errors, 100
run-time in a formula, 99 compacting a database, 1614 section access formula, 18
saving LotusScript with, 50 concatenating, 107 section title formula, 19
syntax in a formula, 99 converting a data type, 106 selection formula, 15
when compiling, 50 converting between Notes and SmartIcons, 5
Errors box LotusScript time, 656 text constants, 66
defined, 34 copying an item, 633 trimming, 112
using, 39 creating a database, 561, 1614 user environment, 121
Escape character (~), 66 creating a document, 621 using a conditional statement, 92
evaluate method creating an item in Formula using an OCX control, 717
Session class, 2200 Language, 631 using keywords, 79
Evaluate statement database properties in Formula value formula, 24
in Domino, 549 Language, 556 view and folder properties,
Event handling database properties in Java, 1606 579, 1623
ODBC, 690 Default keyword, 229 window title formula, 17
Event sequences document properties, 602, 1634 working with a list, 88
table, 29 environment variables, 649 working with an embedded
Events error handling, 713 object, 640
in a database, 19 Evaluate statement, 550 working with rich text item, 637
in a field, 19 filling out form with writing a button script or
in a form, 19 @DialogBox, 97 formula, 12
in a view, 19 form formula, 15 writing a default value
logEvent method, 2055 getting an item and its value, 628 formula, 23
overview, 3, 25 getting and setting environment writing a replication formula, 6
Sequencing, 29 variables, 98 writing a script and a formula, 20
Examples getting user input with writing a script for an action, 10
@Commands, 401, 418, 434, 435, @Prompt, 96 writing a script for an agent, 7
441, 442, 443, 444, 448, 449, hidden paragraph formula, 19 writing an @function with a
453, 454, 459, 463, 465, 467, input translation formula, 23 result, 85
472, 497, 500, 516, 517, 520, input validation formula, 23 writing an action formula, 86
523, 532 insert subform formula, 18 writing formula for an agent, 7
@Functions, 154, 178, 189, 195, item properties, 626, 1642 writing message with
247, 264, 278, 284, 294, 316, keyword field formula, 25 @Prompt, 93
337, 347, 361, 363, 364, 365, lexical elements, 62 writing script/formula for an
366, 367, 368, 369, 385 locating a database, 557, 1609 action, 10
access control list, 566, 1618 locating a document by ID, Exceptions
accessing a Notes agent, 651 614, 1638 handling in Java, 1669

Index-14
ExchangeUnreadMarks FieldAppendText method FileNewDatabase command, 463
command, 454 NotesUIDocument class, 1387 FileNewReplica command, 463
ExecProcedure Method FieldClear method FileOpenDatabase command, 464
ODBCResultSet class, 1147 NotesUIDocument class, 1389 FileOpenDBRepID command, 466
Execute command, 454 FieldContains method FilePageSetup command, 467
Execute method NotesUIDocument class, 1390 FilePath property
ODBCResultSet class, 1147 FieldExpectedDataType method Database class, 1791
Execute statement, 552 ODBCResultSet class, 1149 NotesDatabase class, 801
Exiting FieldGetText method FilePrint command, 468
a file, 457 NotesUIDocument class, 1391 FilePrintSetup command, 470
Exiting event FieldHelp property Files
Field class, 1007 NotesUIDocument class, 1372 closing in LotusScript, 548
Exp function, 114, 254 FieldID method extracting in Java, 1985
ExpandAllSections method ODBCResultSet class, 1153 printing, 468
NotesUIDocument class, 1387 FieldInfo method saving, 470
Expiration property ODBCResultSet class, 1154 saving a new version, 470
NotesRegistration class, 1226 FieldName method FileSave command, 470
Registration class, 2115 ODBCResultSet class, 1158 FileSaveNewVersion command, 470
Explode function, 87, 254 FieldNativeDataType method FileSize property
Exploring ODBCResultSet class, 1159 EmbeddedObject class, 1981
Java interface, 35 Fields NotesEmbeddedObject class, 995
LotusScript debugger, 51 accessing in Formula FindFreeTimeDialog command, 471
Programmer's pane, 33 Language, 125 FindFreeTimeDialog method
Export button Formula Language, 63 NotesUIDocument class, 1393
defined, 35 Fields property FindFreeTimeDialogEx method
Exporting Form class, 1989 NotesUIDocument class, 1395
a file, 458 NotesForm class, 1010 Finding
text in Formula Language, 42 FieldSetText method text in Script Editor, 42
text in Script Editor, 42 NotesUIDocument class, 1392 FindString method
External databases FieldSize method NotesUIDocument class, 1397
accessing in LotusScript, 661 ODBCResultSet class, 1161 FirstLineLeftMargin property
ExtractFile method File attachments NotesRichTextParagraphStyle
NotesEmbeddedObject class, editing, 440 class, 1279
1005 FileCloseWindow command, 455 RichTextParagraphStyle
extractFile method FileDatabaseACL command, 455 class, 2165
EmbeddedObject class, 1985 FileDatabaseCompact FirstRow method
Extrude effect command, 455 ODBCResultSet class, 1162
NotesRichTextStyle class, 1293 FileDatabaseCopy command, 456 FitBelowFields property
RichTextStyle class, 2175 FileDatabaseDelete command, 456 NotesEmbeddedObject class, 996
FileDatabaseInfo command, 456 FitToWindow property
FileDatabaseRemove command, 457 NotesEmbeddedObject class, 997
F FileDatabaseUseServer Fixed formats
Failure function, 99, 102, 257 command, 457 ViewColumn class, 2299
False function, 257 FileExit command, 457 Folder command, 472
FetchBatchSize property FileExport command, 458 Folder method
ODBCResultSet class, 1135 FileFullTextCreate command, 460 NotesUIWorkspace class, 1439
Field class, 1007 FileFullTextDelete command, 460 FolderCollapse command, 473
Field design formulas FileFullTextInfo command, 460 FolderCustomize command, 473
writing, 22 FileFullTextUpdate command, 461 FolderExpand command, 474
Field function, 102 FileImport command, 461 FolderExpandAll command, 474
Field keyword, 65, 79, 125, 258 FileName property FolderExpandWithChildren
Field values Database class, 1791 command, 474
Formula Language, 64 NotesDatabase class, 801 FolderMove command, 475

Index-15
FolderProperties command, 475 filling out, 96 FormUsers property
FolderReferences property, 1900 naming in a formula, 81 Form class, 1990
Document class, 1899 Forms property NotesForm class, 1011
NotesDocument class, 917 Database class, 1794 Forward method
FolderReferencesEnabled property NotesDatabase class, 804 NotesUIDocument class, 1398
Database class, 1792 FormTestDocument command, 476 Frame
NotesDatabase class, 802 Formula language SetTargetFrame, 354
FolderRename command, 475 @functions, 75 Frameset
Folders coding guidelines, 83 definition, 494
accessing properties in Java, 1621 constants, 66 FrameText property
accessing properties in debugging, 81 NotesOutlineEntry class, 1211
LotusScript, 578 fields, 63 OutlineEntry class, 2103
locating in Java, 1625 icon, 38 FreeTimeSearch method
locating in LotusScript, 580, 615 in LotusScript, 549 NotesSession class, 1331
removing in Java, 1631 in the Programmer's pane, 58 freeTimeSearch method
Font property keywords, 79 Session class, 2202
RichTextStyle class, 2176 lexical elements, 61 FT_DATE_ASC constant, 834, 836,
FontColor property list operations, 72 864, 1769, 1822, 1824
NotesViewColumn class, 1510 numeric constants, 67 FT_DATE_DES constant, 834, 836,
ViewColumn class, 2280 overview, 1 864, 1769, 1822, 1824
FontFace property precedence, 69 FT_SCORES constant, 834, 836, 864,
NotesViewColumn class, 1512 rules, 61 1769, 1822, 1824
ViewColumn class, 2282 syntax, 61 FT_STEMS constant, 834, 836, 865,
FontList function, 259 temporary variables, 65 1769, 1822, 1824
FontPointSize property text constants, 66 FTDomainSearch method
NotesViewColumn class, 1512 time/date constants, 67 Database class, 1822
ViewColumn class, 2283 using an operator, 68 NotesDatabase class, 834
FontSize property variables, 63 FTSearch method
NotesRichTextStyle class, 1294 Formula operations, order of Database class, 1823
RichTextStyle class, 2177 evaluation, 70 DocumentCollection class, 1964
FontStyle property Formula property NotesDatabase class, 835
NotesViewColumn class, 1513 NotesOutlineEntry class, 1210 NotesDocumentCollection
ViewColumn class, 2283 NotesViewColumn class, 1514 class, 981
Form class, 1619, 1986 OutlineEntry class, 2102 NotesView class, 1484
Form fields ViewColumn class, 2284 NotesViewEntryCollection
Formula Language, 64 Formula windows class, 1559
Form formulas, 3, 15, 84 using, 58 View class, 2248
FormActions command, 476 Programmer's pane, 58 ViewEntryCollection class, 2320
FormatDocument method Formulas FTSearchScore property
NotesNewsletter class, 1092 entering, 58 Document class, 1900
formatDocument method hiding, 498 NotesDocument class, 919
Newsletter class, 2081 in the Programmer's pane, 58 NotesViewEntry class, 1544
FormatMsgWithDoclinks method performing an action, 85 ViewEntry class, 2309
NotesNewsletter class, 1094 refreshing, 498 Full-text indexes
formatMsgWithDoclinks method result of, 84 isFTIndexed method, 1796
Newsletter class, 2083 using, 83 updateFTIndex method, 1848
Formatted text versus a script, 1 Full-text searches
getting in Java, 2160 where to use, 1 clearing in Java, 2239
Formatting writing, 6 FTDomainSearch method in
in the Script Area, 39 Formulas for SmartIcons Java, 1822
time and date, 67 writing, 5 FTSearch method in Java, 1823
Forms FormUsers field, 1011 FTSearchScore property, 1900
accessing in Java, 1619 in Java, 1637, 2248
accessing in LotusScript, 575 in LotusScript, 613, 616

Index-16
Full text indexes getAlias method getColor method
creating, 460 Outline class, 2088 RichTextStyle class, 2174
deleting, 460 OutlineEntry, 2100 getColumn method
infomation, 460 getAliases method View class, 2257
updating, 461 Form class, 1988 getColumnCount method
Function View class, 2217 View class, 2221
renaming, 43 getAlignment method getColumnIndentLevel method
Function block RichTextParagraphStyle ViewEntry class, 2306
Script Area, 49 class, 2164 getColumnNames method
Functions ViewColumn class, 2277, 2285 View class, 2222
calling, 552 getAllDocuments method getColumns method
Database class, 1785 View class, 2222
GetAllDocumentsByKey method getColumnValues method
G NotesView class, 1486 Document class, 1895
getIndentLevel method getAllDocumentsByKey method ViewEntry class, 2307
ViewEntry, 2309 View class, 2251 getComment method
ViewEntry class, 2306 getAllEntries method Agent class, 1738
General formats View class, 2218 Outline class, 2089
ViewColumn class, 2299 GetAllEntriesByKey method getCommon method
Generation property NotesView class, 1488 Name class, 2068
Java, 2068 getAllEntriesByKey method getCommonOwner method
NotesName class, 1079 View class, 2253 Agent class, 1739
getAbbreviated method getAMString method getCommonUserName method
Name class, 2065 International class, 2000 Session class, 2187
getACL method GetAttachment method getCount method
Database class, 1783 NotesDocument class, 952 DocumentCollection class, 1957
getAddr821 method getAttachment method ViewEntryCollection, 2316
Name class, 2065 Document class, 1933 getCountry method
getAddr822Comment1 method getAuthors method Name class, 2068
Name class, 2065 Document class, 1893 getCreated method
getAddr822Comment2 method getBackgroundColor method Database class, 1787
Name class, 2066 View class, 2219 Document class, 1896
getAddr822Comment3 method getBold method View class, 2223
Name class, 2066 RichTextStyle class, 2174 getCreateMailDb method
getAddr822LocalPart method getCacheSize method Registration class, 2114
Name class, 2066 ViewNavigator class, 2336 getCurrencyDigits method
getAddr822Phrase method getCanonical method International class, 2001
Name class, 2067 Name class, 2067 getCurrencySymbol method
getAddressBooks method getCategories method International class, 2001
Session class, 2185 Database class, 1786 getCurrent method
getADMD method getCertifierIDFile method ViewNavigator class, 2340
Name class, 2067 Registration class, 2114 getCurrentAccessLevel method
GetAgent method GetChild method Database class, 1788
NotesDatabase class, 838 NotesView class, 1489 getCurrentAgent method
getAgent method NotesViewNavigator class, 1574 AgentContext class, 1759
Database class, 1826 getChild method getCurrentDatabase method
getAgentContext method View class, 2256 AgentContext class, 1760
Session class, 2187 ViewNavigator class, 2337 getCutoffDate method, 2134
getAgentOutput method, 1594 getChildCount method Replication class, 2134
AgentBase class, 1668 ViewEntry class, 2306 getCutoffInterval method, 2135
getAgents method getClassName method Replication class, 2135
Database class, 1784 EmbeddedObject class, 1980 GetDatabase method
NotesSession class, 1333

Index-17
getDatabase method getEmbeddedObject method getFirst method
OutlineEntry class, 2101 RichTextItem class, 2159 Outline class, 2091
Session class, 2203 getEmbeddedObjects method ViewNavigator class, 2340
getDateFmt method Document class, 1897 GetFirstDatabase method
ViewColumn class, 2278 RichTextItem class, 2149 NotesDbDirectory class, 557, 902
getDateOnly property getEndDateTime method getFirstDatabase method
DateTime class, 1858 DateRange class, 1852 DbDirectory class, 1883
getDateSep method GetEntry method GetFirstDocument method
International class, 2002 NotesACL class, 736 NotesDocumentCollection
getDateTimeValue method NotesViewEntryCollection class, 983
Item class, 2016 class, 1560 NotesView class, 1494
GetDbDirectory method NotesViewNavigator class, 1575 NotesViewNavigator class, 1577
NotesSession class, 1334 getEntry method getFirstDocument method
getDbDirectory method ACL class, 1705 DocumentCollection class, 1967
Session class, 2204 ViewEntryCollection class, 2321 View class, 2262
getDecimalSep methody GetEntryByKey method ViewNavigator class, 2342
International class, 2004 NotesView class, 1493 GetFirstEntry method
getDescendantCount method getEntryByKey method NotesACL class, 737
ViewEntry class, 2308 View class, 2260 NotesViewEntryCollection
getDesignTemplateName method getEntryClass method class, 1561
Database class, 1790 OutlineEntry class, 2102 getFirstEntry method
GetDocField function, 129, 259 GetEnvironmentString method ACL class, 1707
GetDocument method NotesSession class, 1335 ViewEntryCollection class, 2323
NotesDocumentCollection getEnvironmentString method GetFirstItem method
class, 982 Session class, 2205 NotesDocument class, 953
getDocument method GetEnvironmentValue method getFirstItem method
DocumentCollection class, 1965 NotesSession class, 1336 Document class, 1934
OutlineEntry class, 2101 getEnvironmentValue method getFirstLineLeftMargin method
ViewEntry class, 2308 Session class, 2207 RichTextParagraphStyle
GetDocumentByID method GetError method class, 2165
NotesDatabase class, 839 ODBCConnection class, 1106 getFolderReferences method, 1900
getDocumentByID method ODBCQuery class, 1121 Document class, 1899
Database class, 1827 ODBCResultSet class, 1164 getFolderReferencesEnabled method
GetDocumentByKey method GetErrorMessage method Database class, 1792
NotesView class, 1490 ODBCConnection class, 1106 getFont method
getDocumentByKey method ODBCQuery class, 1121 RichTextStyle class, 2176
View class, 2258 ODBCResultSet class, 1164 getFontColor method
GetDocumentByUNID method getExpiration method ViewColumn class, 2280
NotesDatabase class, 841 Registration class, 2115 getFontFace method
getDocumentByUNID method GetExtendedErrorMessage method ViewColumn class, 2282
Database class, 1828 ODBCConnection class, 1106 getFontPointSize method
GetDocumentByURL method ODBCQuery class, 1127 ViewColumn class, 2283
NotesDatabase class, 842 ODBCResultSet class, 1164 getFontSize method
getDocumentByURL method getFields method RichTextStyle class, 2177
Database class, 1830 Form class, 1989 getFontStyle method
getDocumentContext method, 1761 getFileName method ViewColumn class, 2283
AgentContext class, 1769 Database class, 1791 GetForm method
getEffectiveUserName method getFilePath method NotesDatabase class, 844
AgentContext class, 1762 Database class, 1791 getForm method
getEffects method getFileSize method Database class, 1794, 1832
RichTextStyle class, 2175 EmbeddedObject class, 1981 GetFormattedText method
GetEmbeddedObject method GetFirst method NotesRichTextItem class, 1276
NotesRichTextItem class, 1274 NotesOutline class, 1200 getFormattedText method
NotesViewNavigator class, 1576 RichTextItem class, 2160

Index-18
getFormula method getKeyword method GetLSDOMasterRevision property
OutlineEntry class, 2102 Name class, 2070 ODBCConnection class, 1101
ViewColumn class, 2284 getLabel method getManagers method
getFormUsers method OutlineEntry class, 2107 Database class, 1803
Form class, 1990 getLanguage method getMaxLevel method
getFrameText method Name class, 2070 ViewNavigator class, 2336
OutlineEntry class, 2103 GetLast method getMaxSize method
getFTSearchScore method NotesOutline class, 1201 Database, 1804
Document class, 1900 NotesViewNavigator class, 1578 Database class, 1803
ViewEntry class, 2309 getLast method getMinPasswordLength method
getGeneration method, 2068 Outline class, 2092 Registration class, 2116
getGiven method ViewNavigator class, 2343 GetName method
Name class, 2069 getLastAccessed property View class, 2234
getGMTTime method Document class, 1911 getName method
DateTime class, 1859 GetLastDocument method ACLEntry class, 1726
getHeaderLines method NotesDocumentCollection Agent class, 1746
View class, 2224 class, 984 DbDirectory class, 1880
GetIDFromServer method NotesView class, 1495 EmbeddedObject class, 1981
NotesRegistration class, 1236 NotesViewNavigator class, 1579 Form class, 1995
getIDFromServer method getLastDocument method Item class, 2024
Registration class, 2124 DocumentCollection class, 1967 Outline class, 2089
getIDType method View class, 2263 getNamedElement method
Registration class, 2115 ViewNavigator class, 2345 OutlineEntry class, 2107
getImagesText method GetLastEntry method getNameObject method
OutlineEntry class, 2105 NotesViewEntryCollection ACLEntry class, 1727
getInitials method class, 1562 getNameOfProfile method
Name class, 2069 getLastEntry method Document class, 1912
getInterLineSpacing method ViewEntryCollection class, 2324 GetNext method
RichTextParagraphStyle getLastExitStatus method NotesOutline class, 1202
class, 2165 AgentContext class, 1763 NotesViewNavigator class, 1579
getInternational method getLastFTIndexed method getNext method
Session class, 2188 Database class, 1801 Outline class, 2093
getInternetLevel method getLastModified method ViewNavigator class, 2346
ACL class, 1697 Database class, 1802 GetNextCategory method
getIOR method Document class, 1912 NotesViewNavigator class, 1580
NotesFactory class, 1691 Item class, 2024 getNextCategory method
getItalic method View class, 2233 ViewNavigator class, 2346
RichTextStyle class, 2177 getLastRun method GetNextDatabase method
getItemName method Agent class, 1744 NotesDbDirectory class, 557, 903
ViewColumn class, 2296 getLastRun session getNextDatabase method
getItems method AgentContext class, 1764 DbDirectory class, 1884
Document class, 1910 getLeftMargin method GetNextDocument method
GetItemValue method, 956 RichTextParagraphStyle NotesDocumentCollection
getItemValue method class, 2166 class, 984
Document class, 1936 getLevel method NotesView class, 1496
getItemValueDouble method ACLEntry class, 1724 NotesViewNavigator class, 1581
Document class, 1938 OutlineEntry class, 2107 getNextDocument method
getItemValueInteger method GetListOfTunes method DocumentCollection class, 1967
Document class, 1938 NotesUIWorkspace class, 1440 View class, 2264
getItemValueString method getListSep property ViewNavigator class, 2347
Document class, 1939 ViewColumn class, 2297 GetNextEntry method
getKey method getLocalTime method NotesACL class, 738
Document class, 1911 DateTime class, 1861 NotesViewEntryCollection
class, 1563

Index-19
getNextEntry method getOrgUnit3 method getPlatform method
ACL class, 1708 Name class, 2075 Session class, 2191
ViewEntryCollection, 2325 getOrgUnit4 method getPMString method
GetNextSibling method Name class, 2075 International class, 2009
NotesOutline class, 1202 GetOutline method GetPortsList function, 260
NotesView class, 1497 NotesDatabase class, 845 GetPos method
NotesViewNavigator class, 1582 getOutline method NotesViewNavigator class, 1585
getNextSibling method Database class, 1833 getPos method
Outline class, 2093 getOwner method ViewNavigator class, 2351
View class, 2266 Agent class, 1746 GetPosition method
ViewNavigator class, 2348 getPagination method NotesViewEntry class, 1553
getNoChronos method, 2143 RichTextParagraphStyle getPosition method
getNoteID method class, 2166 ViewColumn class, 2300
Document class, 1912 GetParameter method ViewEntry class, 2313
ViewEntry class, 2312 ODBCResultSet class, 1164 getPosition property
getNotesVersion method GetParameterName method RichTextTab class, 2181
Session class, 2190 ODBCResultSet class, 1166 GetPrev method
GetNth method GetParent method NotesOutline class, 1204
NotesViewNavigator class, 1583 NotesOutline class, 1203 NotesViewNavigator class, 1586
getNth method NotesViewNavigator class, 1584 getPrev method
ViewNavigator class, 2349 getParent method, 2075 Outline class, 2095
GetNthDocument method ACL class, 1700 ViewNavigator, 2352
NotesDocumentCollection ACLEntry class, 1728 ViewNavigator class, 2349
class, 985 Agent class, 1747 GetPrevCategory method
NotesView class, 1499 Database class, 1805 NotesViewNavigator class, 1587
getNthDocument method DateRange class, 1853 getPrevCategory method
DocumentCollection class, 1969 DateTime class, 1863 ViewNavigator class, 2353
View class, 2267 DbDirectory class, 1881 GetPrevDocument method
GetNthEntry method DocumentCollection class, 1959 NotesDocumentCollection
NotesViewEntryCollection EmbeddedObject class, 1982 class, 987
class, 1564 International class, 2009 NotesView class, 1502
getNthEntry method Item class, 2024 NotesViewNavigator class, 1588
ViewEntryCollection, 2326 Newsletter class, 2080 getPrevDocument method
getNumActions method Outline class, 2094 DocumentCollection class, 1971
Log class, 2048 RichTextStyle class, 2178 View class, 2270
getNumberAttrib property View class, 2235 ViewNavigator class, 2354
ViewColumn class, 2297 ViewEntry class, 2312 GetPrevEntry method
getNumberDigits property ViewEntryCollection, 2316 NotesViewEntryCollection
ViewColumn class, 2299 ViewNavigator class, 2350 class, 1565
getNumErrors method getParentDatabase method getPrevEntry method
Log class, 2049 Document class, 1913 ViewEntryCollection, 2327
GetObject method GetParentDocument method GetPrevSibling method
NotesUIDocument class, 1399 NotesView class, 1501 NotesOutline class, 1205
getObject method getParentDocument method NotesView class, 1503
EmbeddedObject class, 1982 View class, 2268 NotesViewNavigator class, 1589
getOrganization method getParentDocumentUNID method getPrevSibling method
Name class, 2074 Document class, 1914 Outline class, 2095
getOrgUnit method getParents method View class, 2271
Registration class, 2117 Log class, 2050 ViewNavigator class, 2354
getOrgUnit1 method getParentView method getPriority method, 2144
Name class, 2074 Document class, 1915 getPRMD method
getOrgUnit2 method ViewNavigator class, 2337 Name class, 2076
Name class, 2074 getPercentUsed method GetProfileDocCollection method
Database class, 1805 NotesDatabase class, 847

Index-20
getProfileDocCollection method getSizeQuota method getTomorrow method
Database class, 1834 Database class, 1810 International class, 2011
GetProfileDocument method getSource method getTopLevelEntryCount method
NotesDatabase class, 845 EmbeddedObject class, 1982 View class, 2238
getProfileDocument method getSpacing method getType method
Database class, 1835 View class, 2237 EmbeddedObject class, 1983
GetProfileField function, 261 getSpacingAbove method Item class, 2026
getProgramName method RichTextParagraphStyle OutlineEntry, 2108
Log class, 2050 class, 2168 OutlineEntry class, 2105
getQuery method getSpacingBelow method getType property
Agent class, 1748 RichTextParagraphStyle RichTextTab class, 2182
DocumentCollection class, 1960 class, 2168 getUnderline method
ViewEntryCollection, 2317 getStartDateTime method RichTextStyle class, 2179
getReaders method DateRange class, 1853 getUniveralID method
View class, 2236 getStoreIDToAddressBook property ViewEntry class, 2313
getRegistrationLog method Registration class, 2118 getUniversalID method
Registration class, 2117 getStrikethrough method Document class, 1919
getRegistrationServer method RichTextStyle class, 2178 View class, 2238
Registration class, 2117 getSubjectItemName method getUnprocessedDocuments method
getReplicaID method Newsletter class, 2080 AgentContext class, 1766
Database class, 1806 getSummary method getUpdateAddressbook method
getReplicationInfo method Item class, 2023 Registration class, 2118
Database class, 1807 getSurName method getURL method
getResponses method Name class, 2076 Java classes, 1694
Document class, 1916 getTabs method OutlineEntry class, 2108
getRightMargin method RichTextParagraphStyle getURLDatabase method
RichTextParagraphStyle class, 2169 Session class, 2209
class, 2167 getTemplateName method GetURLHeaderInfo method
getRoles method Database class, 1811 NotesDatabase class, 847
ACL class, 1701 getText method getURLHeaderInfo method
ACLEntry class, 1729 Item class, 2026 Database class, 1836
getRowLines method getThousandsSep method GetUserInfo method
View class, 2237 International class, 2010 NotesRegistration class, 1237
GetRowStatus method getTimeDateFormat method getUserInfo method
ODBCResultSet class, 1167 ViewColumn class, 2301 Registration class, 2124
getSavedData method getTimeFormat method getUserName method
AgentContext class, 1765 ViewColumn class, 2301 Session class, 2193
GetSelectedText method getTimeOnly property getUserNameList method
NotesUIDocument class, 1400 DateTime class, 1863 Session class, 2194
getServer method getTimeSep method getUserNameObject method
Database class, 1808 International class, 2010 Session class, 2194
getServerName method getTimeZone method getUserType method
Agent class, 1749 DateTime class, 1864 ACLEntry class, 1730
Session class, 2192 International class, 2010 GetValue method
getSession method getTimeZoneFormat method ODBCResultSet class, 1169
AgentBase class, 1668 ViewColumn class, 2302 getValueDouble method
AppletBase class, 1668 Getting Item class, 2029
getSiblingCount method user input, 93 getValueInteger method
ViewEntry class, 2313 getTitle method Item class, 2030
getSigner method Database class, 1812 getValueLength method, 2030
Document class, 1918 NotesViewColumn class, 2302 getValues method
getSize method, 1809 getToday method Item class, 2031
Document class, 1918 International class, 2011 getValueString method
Item class, 2033

Index-21
getVerbs method gotoPos method HelpMessages command, 478
EmbeddedObject class, 1983 ViewNavigator class, 2366 HelpReleaseNotes command, 478
getVerifier method gotoPrev method HelpTableOfContents
Document class, 1920 ViewNavigator class, 2367 command, 478
GetView method gotoPrevCategory method HelpUsingDatabase command, 479
NotesDatabase class, 577, ViewNavigator class, 2367 HelpV3ReleaseMenuFinder
580, 849 gotoPrevDocument method command, 478
getView method ViewNavigator class, 2368 Hidden paragraph formulas, 3, 84
Database class, 1838 GotoPrevField method writing, 19
OutlineEntry class, 2109 NotesUIDocument class, 1402 HiddenChars property
getViews method gotoPrevSibling method NotesUIDocument class, 1373
Database class, 1813 ViewNavigator class, 2369 Hide action formulas, 3, 10
getWidth method GotoTop method HideDesign property
ViewColumn class, 2302 NotesUIDocument class, 1402 NotesReplication class, 1251
getYesterday method GoUpLevel command, 476 Hiding
International class, 2012 GrantAccess method a formula, 498
getZoneTime property NotesDatabase class, 850 Hierarchical views
DateTime class, 1866 grantAccess method View class, 2230
Given property Database class, 1839 History
Name class, 2069 Greater than operator (>) clear replication, 2146
NotesName class, 1079 Formula Language, 69 HorzScrollBar property
Global variables Greater than or equal to operator NotesUIDocument class, 1374
defining, 48 (>= or =>) HotSpotClear command, 479
GMTTime property Formula Language, 69 HotSpotProperties command, 479
DateTime class, 1859 Groups Hotspots, 4, 12
NotesDateTime class, 884 access in ACL, 1721 in a script and formula, 84, 85
GotoBottom method Hour function, 262
NotesUIDocument class, 1401 HTTP server tasks, 1591
gotoChild method
H
ViewNavigator class, 2355 HasChildren property
gotoEntry method NotesOutlineEntry class, 1212 I
ViewNavigator class, 2357 OutlineEntry class, 2103 Icons
GotoField method HasEmbedded property programming language, 38
NotesUIDocument class, 1401 Document class, 1901 ID files
gotoFirst method NotesDocument class, 920 getDocumentByID method, 1827
ViewNavigator class, 2358 HasItem method IDType property
gotoFirstDocument method NotesDocument class, 958 NotesRegistration class, 1226
ViewNavigator class, 2359 hasItem method Registration class, 2115
gotoLast method Document class, 1940 If directive, 548
ViewNavigator class, 2360 HasRowChanged method If function, 78, 90, 263
gotoLastDocument method ODBCResultSet class, 1171 Ignore deletes, 2140
ViewNavigator class, 2362 HeaderAlignment property Ignore destination deletes, 2141
gotoNext method NotesViewColumn class, 1515 IgnoreDeletes property
ViewNavigator class, 2363 ViewColumn class, 2285 NotesReplication class, 1252
gotoNextCategory method HeaderLines property IgnoreDestDeletes property
ViewNavigator class, 2364 NotesView class, 1466 NotesReplication class, 1253
gotoNextDocument method View class, 2224 ImagesText property
ViewNavigator class, 2365 Help command, 476 NotesOutlineEntry class, 1212
GotoNextField method HelpAboutDatabase command, 477 OutlineEntry class, 2105
NotesUIDocument class, 1402 HelpAboutNotes command, 477 Implode function, 87, 265
gotoNextSibling method HelpFunctions command, 477 Import Class Files button
ViewNavigator class, 2365 HelpIndex command, 477 defined, 36
gotoParent method HelpKeyboard command, 478 Import method, 1403
ViewNavigator class, 2366

Index-22
Imported Java InternetLevel property IsCategory property
Base Class box, 36 ACL class, 1697 NotesViewColumn class, 1517
Import Class Files button, 36 NotesACL class, 729 NotesViewEntry class, 1546
user interface, 36 Interval property ViewColumn class, 2286
Importing NotesTimer class, 1345 ViewEntry class, 2310
a file, 461 IOR, 1594 IsConflict property
text, 42 IsAbstract property NotesView class, 1468
Include directive, 548 Replication class, 2133 NotesViewEntry class, 1547
IndentLevel property IsAccentSensitiveSort property View class, 2228
NotesViewEntry class, 1545 NotesViewColumn class, 1515 ViewEntry class, 2310
ViewEntry, 2309 ViewColumn class, 2285 IsConnected method
ViewEntry class, 2306 IsAdminReaderAuthor property ODBCConnection class, 1106
Indexes, 2142 ACLEntry class, 1713 IsCurrencySpace property
Info List NotesACLEntry class, 749 International class, 2005
adjusting the size of, 37 IsAdminServer property NotesInternational class, 1023
Objects tab, 37 ACLEntry class, 1714 IsCurrencySuffix property
Reference tab, 37 NotesACLEntry class, 750 International class, 2005
using, 37 IsAgentEnabled function, 267 NotesInternational class, 1023
InheritedDocumentUniqueID IsAuthors property IsCurrencyZero property
function, 126, 266 Item class, 2016 International class, 2006
Initial object references, 1594 NotesItem class, 1034 NotesInternational class, 1024
Initials property IsAutoUpdate property IsCutoffDelete property
Name class, 2069 View class, 2225 Replication class, 2135
NotesName class, 1080 IsAvailable function, 126, 268 IsDateDMY property
InPreviewPane property IsBeginOfData method International class, 2006
NotesUIDocument class, 1374 ODBCResultSet class, 1173 NotesInternational class, 1024
Input translation formulas, 4, 23, 84 IsCalendar property IsDateMDY property
Input validation formulas, 4, 23 NotesView class, 1466 International class, 2007
InputBox statement, 552 View class, 2226 NotesInternational class, 1025
Insert subform formulas, 3, 18, 84 IsCanCreateDocuments property IsDateYMD property
writing, 18 ACLEntry class, 1714 International class, 2007
Insertion points IsCanCreateLSOrJavaAgent NotesInternational class, 1025
Script Area, 40 property IsDefaultView property
InsertSubForm command, 480 ACLEntry class, 1715 NotesView class, 1468
InsertText method IsCanCreatePersonalAgent property View class, 2228
NotesUIDocument class, 1404 ACLEntry class, 1716 IsDelayUpdates property
Integer function, 113, 266 IsCanCreatePersonalFolder property Database class, 1794
Integer item values ACLEntry class, 1717 IsDeleted property, 921
getting in Java, 1938 IsCanCreateSharedFolder property IsDirectoryCatalog property
Integers, 67 ACLEntry class, 1719 NotesDatabase class, 804
InterLineSpacing property IsCanDeleteDocuments property IsDisabled property
NotesRichTextParagraphStyle ACLEntry class, 1719 Replication class, 2135
class, 1280 IsCaseInsensitiveSort property IsDocBeingEdited function, 126, 270
RichTextParagraphStyle NotesViewColumn class, 1516 IsDocBeingLoaded function, 102,
class, 2165 IsCaseSensitiveSort property 126, 270
International class, 1652, 1998 ViewColumn class, 2286 IsDocBeingMailed function, 102,
International property IsCategorized property 126, 271
NotesSession class, 1314 NotesView class, 1467 IsDocBeingRecalculated function,
Session class, 2188 View class, 2227 102, 126, 272
International settings IsCategory function, 102, 124, 269 IsDocBeingSaved function, 102,
accessing in Java, 1652 126, 273
accessing in LotusScript, 653 IsDocTruncated function, 274

Index-23
IsDocument property IsHierarchical property IsOpen property
NotesViewEntry class, 1548 Name class, 2069 Database class, 1798
ViewEntry class, 2310 NotesName class, 1080 NotesDatabase class, 807
IsDoNotBrowse property NotesView class, 1470 IsOverwriteFile property
Replication class, 2137 View class, 2230 Log class, 2046
IsDoNotCatalog property IsIcon property IsPerson property
Replication class, 2138 Java, 2290 ACLEntry class, 1721
IsDoScore property NotesViewColumn class, 1521 NotesACLEntry class, 752
Newsletter class, 2079 IsIgnoreDeletes property IsPrivate property
IsDoSubject property Replication class, 2140 NotesOutlineEntry class, 1215
Newsletter class, 2079 IsIgnoreDestDeletes property NotesView class, 1472
IsDST property Replication class, 2141 OutlineEntry class, 2106
DateTime class, 1860 IsInThisDB property View class, 2231
International class, 2008 NotesOutlineEntry class, 1214 IsPrivateAddressBook property
NotesDateTime class, 885 OutlineEntry class, 2106 Database class, 1799
NotesInternational class, 1025 IsLogActions property NotesDatabase class, 808
IsEnabled property Log class, 2044 IsProfile property
Agent class, 1740 IsLogErrors property Java, 1904
NotesAgent class, 768 Log class, 2045 NotesDocument class, 923
IsEncrypted property IsMember function, 87, 276 IsProtected property
Item class, 2018 IsModalHelp function, 277 Item class, 2021
NotesItem class, 1035 IsModified property NotesItem class, 1037
IsEncryptOnSend property NotesView class, 1471 IsProtectReaders property
Document class, 1902 View class, 2230 Form class, 1992
IsEndOfData method IsMultiDbIndex property View class, 2232
ODBCResultSet class, 1175 Replication class, 2142 IsProtectUsers property, 1993
IsError function, 99, 274 IsMultiDbSearch property IsPublic property
IsExpandable function, 102, 124, 275 Database class, 1797 Agent class, 1743
IsField property NotesDatabase class, 807 NotesAgent class, 770
NotesViewColumn class, 1518 IsNames property IsPublicAddressBook property
ViewColumn class, 2287 Item class, 2020 Database class, 1800
IsFolder property NotesItem class, 1036 NotesDatabase class, 809
NotesView class, 1469 IsNeverReplicate property IsPublicReader property
View class, 2229 Replication class, 2143 ACLEntry class, 1722
IsFormula property IsNewDoc function, 102, 126, 278 NotesACLEntry class, 753
NotesViewColumn class, 1518 IsNewDoc property IsPublicWriter property
ViewColumn class, 2287 NotesUIDocument class, 1375 ACLEntry class, 1723
IsFTIndexed property IsNewNote property NotesACLEntry class, 754
Database class, 1796 Document class, 1903 IsReaders property
NotesDatabase class, 805 NotesDocument class, 922 Item class, 2021
IsGroup property IsNoChronos property NotesItem class, 1037
ACLEntry class, 1721 Replication class, 2143 IsResize property
NotesACLEntry class, 751 IsNorthAmerican property NotesViewColumn class, 1521
IsHidden property NotesRegistration class, 1227 ViewColumn class, 2290
NotesOutlineEntry class, 1213 Registration class, 2116 IsResortAscending property
NotesViewColumn class, 1519 IsNotesAgent property, 770 NotesViewColumn class, 1522
OutlineEntry class, 2105 Agent class, 1742 ViewColumn class, 2290
ViewColumn class, 2288 NotesAgent class, 769 IsResortDescending property
IsHideDesign property IsNotMember function, 87, 278 NotesViewColumn class, 1523
Replication class, 2139 IsNumber function, 105, 280 ViewColumn class, 2291
IsHideDetail property IsOnServer property IsResortToView property
NotesViewColumn class, 1520 NotesSession class, 1315 NotesViewColumn class, 1523
ViewColumn class, 2288 Session class, 2189 ViewColumn class, 2291

Index-24
IsResponse property IsSupported method getting in Java, 1643
Document class, 1905 ODBCConnection class, 1107 getting in LotusScript, 627
NotesDocument class, 924 IsText function, 105, 281 removing in Java, 1645, 1945
NotesViewColumn class, 1524 IsTime function, 105, 282 removing in LotusScript, 634
ViewColumn class, 2292 IsTime24Hour property Items property
IsResponseDoc function, 126, 280 International class, 2008 Document class, 1910
IsResultSetAvailable method NotesInternational class, 1026 NotesDocument class, 927
ODBCResultSet class, 1176 IsTotal property
IsRoleEnabled method NotesViewEntry class, 1549
NotesACLEntry class, 763 IsTotals property
J
isRoleEnabled method ViewEntry class, 2311 Java
ACLEntry class, 1734 IsUIDocOpen property compiling, 44
IsSaveMessageOnSend property NotesDocument class, 925 compiling and running, 1591
Document class, 1905 IsUnavailable function, 126, 282 dates, 1878
IsSaveToDisk property IsUniformAccess property Errors box, 39
Item class, 2022 ACL class, 1699 icon, 38
IsSecondaryResort property IsValid function, 283 in the Programmer's pane, 35
Formula Language, 1527 IsValid property overview, 1
ViewColumn class, 2293 Document class, 1909 Script Library, 57
IsSecondaryResortDescending NotesDocument class, 926 viewing output, 43
property NotesViewEntry class, 1549 Java agent, 46
NotesViewColumn class, 1527 ViewEntry class, 2311 adding files, 44
ViewColumn class, 2293 IsValidDate property debugging, 45
IsSentByAgent property NotesDateTime class, 886 Java classes
Document class, 1906 IsValueAltered method A-Z reference, 1591, 1661
IsServer property ODBCResultSet class, 1177 coding guidelines, 1591
ACLEntry class, 1723 IsValueNull method complete list, 1595
NotesACLEntry class, 755 ODBCResultSet class, 1179 Java Debug Console
IsShowTwistie property IsWebAgent property, 771 defined, 35
NotesViewColumn class, 1528 Agent class, 1744 Java interface
ViewColumn class, 2294 NotesAgent class, 771 Classes tab, 35
IsSigned property Italic property Compile button, 35
Document class, 1907 NotesRichTextStyle class, 1295 Edit Project button, 35
Item class, 2022 RichTextStyle class, 2177 Export button, 35
NotesDocument class, 924 Item class, 1640, 2012 Java Debug Console, 35
NotesItem class, 1038 Item values New Class button, 35
IsSignOnSend property getting in Java, 1936, 1938, 1939, JavaScript
Document class, 1908 2029, 2030, 2031, 2033 compiling, 48
IsSortDescending property replacing in Java, 1947 icon, 38
NotesViewColumn class, 1529 stampAll method, 1976 in the programmer's pane, 47
ViewColumn class, 2294 ItemName property overview, 1
IsSorted property NotesViewColumn class, 1531 page header, 48
DocumentCollection class, 1957 ViewColumn class, 2296 remark, 48
NotesDocumentCollection Items writing in a page header, 48
class, 977 accessing in Java, 1640 JavaScript databases
NotesViewColumn class, 1529 accessing in LotusScript, 624 agent output, 523
ViewColumn class, 2295 accessing properties in Java, 1641 JS Header
IsSubForm property accessing properties in using, 48
Form class, 1994 LotusScript, 625
NotesForm class, 1012
IsSummary property
copying in Java, 1644
copying in LotusScript, 633
K
Key property
Item class, 2023 creating in Java, 1644
Document class, 1911
NotesItem class, 1039 creating in LotusScript, 630
NotesDocument class, 928

Index-25
Keys LayoutElementProperties LocalTime property
searching by key in Java, 2251, command, 481 DateTime class, 1861
2253, 2258, 2260 LayoutElementSendToBack NotesDateTime class, 887
sorted column, 616 command, 481 LocateRow method
Keyword field formulas, 4, 24 LayoutProperties command, 482 ODBCResultSet class, 1181
Keyword fields Leading spaces, 367 Log class, 1657, 2041
writing a formula, 84 Left function, 109, 286 Log function, 114, 292
Keyword formulas, 79 LeftBack function, 109, 287 LogAction method
Keyword parameters LeftMargin property NotesLog class, 1061
@functions, 75 NotesRichTextParagraphStyle logAction method
Keyword property class, 1281 Log class, 2052
Name class, 2070 RichTextParagraphStyle LogActions property
NotesName class, 1080 class, 2166 NotesLog class, 1055
Keywords function, 87, 284 Length function, 106, 288 LogError method
Lengths NotesLog class, 1063
of string in a formula, 106 logError method
L Less than operator ( Log class, 2053
Label property Formula Language, 69 LogErrors property
NotesOutlineEntry class, 1215 Less than or equal to operator ( NotesLog class, 1056
OutlineEntry class, 2107 Formula Language, 69 LogEvent method
Language Preference function, 285 Level property NotesLog class, 1067
Language property ACLEntry class, 1724 logEvent method
Name class, 2070 NotesACLEntry class, 756 Log class, 2055
NotesName class, 1081 NotesOutlineEntry class, 1216 Logical operators
LastAccessed property OutlineEntry class, 2107 Formula Language, 69, 72
Document class, 1911 Lexical elements Logs
NotesDocument class, 928 Formula Language, 61 accessing in Java, 1657
LastExitStatus property Like function, 106, 289 in LotusScript, 656
AgentContext class, 1763 Links Lotus components, 715
NotesSession class, 1316 appending in Java, 2157 LotusScript
LastFTIndexed property List concatenation operator block statements, 50
Database class, 1801 Formula Language, 69 compiling, 50
NotesDatabase class, 810 List operations debugger, 51
LastModified property Formula Language, 72 debugging, 53
Database class, 1802 List operators describing, 1
Document class, 1912 Formula Language, 70 Domino-specific features, 547
Item class, 2024 ListDataSources method Errors box, 39
NotesDatabase class, 810 ODBCConnection class, 1109 icon, 38
NotesDocument class, 929 ListFields method in Programmer's pane, 48
NotesItem class, 1040 ODBCConnection class, 1110 Notes classes, 721
NotesView class, 1472 ListProcedures method overview, 1
View class, 2233 ODBCConnection class, 1111 programming environment, 33
LastRow method Lists using the debugger, 52
ODBCResultSet class, 1180 Formula Language, 64, 86 writing in the Programmer's
LastRun property in a formula, 86 pane, 48
Agent class, 1744 ListSep property LotusScript data objects, 661
AgentContext class, 1764 NotesViewColumn class, 1532 LotusScript debugger
NotesAgent class, 772 ViewColumn class, 2297 clearing breakpoints, 54
NotesSession class, 1316 ListTables method enabling and disabling, 52
LayoutAddGraphic command, 480 ODBCConnection class, 1112 enabling and disabling
LayoutAddText command, 480 Ln function, 114, 290 breakpoints, 54
LayoutElementBringToFront Locale function, 291 Output panel, 56
command, 481

Index-26
setting breakpoints, 54 MailRequestCrossCert Mouse operations
stepping through scripts, 53 command, 483 table of, 41
stopping, 53 MailRequestNewName MoveEntry method
using, 52 command, 484 NotesOutline class, 1205
variables panel, 55 MailRequestNewPublicKey moveEntry method
LowerCase function, 112, 293 command, 484 Outline class, 2096
LS:DO MailSavePreference function, 296 Moving
auto-commit mode, 695 MailScanUnread command, 484 insertion point, 40
caching data, 697 MailSend command, 485 Multi-database indexes, 2136
creating script, 666 MailSend function, 76, 102, 125, 297 Multi-database searches
handling ODBC errors, 693 MailSendCertificateRequest isMultiDbSearch method, 1797
handling ODBC events, 690 command, 485 Multi-threading
multi-threading agents, 697 MailSendEncryptionKey in LS:DO, 697
overview, 667 command, 485 MultiDbIndex property
requirements, 663 MailSendPublicKey command, 486 NotesReplication class, 1254
setting for multi-thread MailSignPreference function, 301 Multiple database index, 2142
environment, 665 MakeResponse method Multiple parameters
setting up with ODBC, 664 NotesDocument class, 960 @functions, 75
specifying SQL statements, 672 makeResponse method Multiplication operator (*)
transaction mode, 696 Document class, 1940 Formula Language, 69
transaction processing, 695 Managers property Multiplying, 113
UseLSX, 666 Database class, 1803
working with result sets, 677 NotesDatabase class, 811
LSCONST.LSS file, 548, 699 Matches function, 106, 302
N
LSERR.LSS file, 548, 698 Max function, 113, 303 Name class, 1658, 2062
LSGMTTime property MaxLevel property Name function, 121, 313
NotesDateTime class, 887 NotesViewNavigator class, 1573 Name property
LSLocalTime property ViewNavigator class, 2336 ACLEntry class, 1726
NotesDateTime class, 888 MaxRows property Agent class, 1746
LSXBEERR.LSS file, 548, 698 ODBCResultSet class, 1137 DbDirectory class, 1880
LSXUIERR.LSS file, 548, 698 MaxSize property EmbeddedObject class, 1981
Database, 1804 Form class, 1995
Database class, 1803 Item class, 2024
M NotesDatabase class, 813 NotesACLEntry class, 757
Mail Member function, 87, 304 NotesAgent class, 773
accessing in Java, 1640 Memory NotesDbDirectory, 557
Mail logs recycling, 1694 NotesDbDirectory class, 902
openMailLog method, 2059 MessageBox statement, 552 NotesEmbeddedObject class, 998
MailAddress command, 482 Messages NotesForm class, 1013
MailComposeMemo command, 482 writing, 92 NotesItem class, 1040
MailDbName function, 121, 294 Middle function, 109, 305 NotesOutline class, 1199
MailEncryptSavedPreference MiddleBack function, 109, 307 NotesView class, 1473
function, 295 Min function, 113, 308 Outline class, 2089
MailEncryptSentPreference MinPasswordLength property View class, 2234
function, 296 NotesRegistration class, 1227 NamedElement property
MailForward command, 483 Registration class, 2116 in NotesOutlineEntry class, 1217
MailForwardAsAttachment Minus operator (-), 71 NameLookup function, 317
command, 483 Minus sign (-), 67 NameObject property
Mailing Minute function, 119, 310 ACLEntry class, 1727
in LotusScript, 623 Modified function, 118, 310 NameOfProfile property
Mailing documents Modulo function, 114, 311 Document class, 1912
send method, 1951 Month function, 119, 312 NotesDocument class, 930
MailOpen command, 483

Index-27
Names No function, 321 NotesInternational class, 653, 1018
alternate, 379 NoChronos property NotesItem class, 624, 1029
in Java, 1658 NotesReplication class, 1255 NotesLog class, 657, 1052
in LotusScript, 659 NoExternalApps NotesName class, 659, 1073
primary, 379 environment variables, 77 NotesNewsletter class, 658, 1088
Narrow function, 319 Not equal to operator ( or > NotesOutline class, 562, 1196
NavBarSetText method Formula Language, 69 NotesOutlineEntry class, 563, 1207
NotesUIDocument class, 1404 Not operator NotesRegistration class, 1222
NavBarSpinnerStart method, 1405 Formula Language, 69 NotesReplication class, 1244
NavBarSpinnerStop method, 1405 NoteID function, 126, 322 NotesRichTextItem class, 624,
NavigateNext command, 486 NoteID property 635, 1258
NavigateNextHighlight Document class, 1912 NotesRichTextParagraphStyle class,
command, 486 NotesDocument class, 930 643, 1277
NavigateNextMain command, 487 NotesViewEntry class, 1550 NotesRichTextStyle class, 641, 1290
NavigateNextSelected ViewEntry class, 2312 NotesRichTextTab class, 645, 1301
command, 487 NOTES.INI file, 79, 97, 649, 665, NotesSession class, 646, 1303
NavigateNextUnread command, 488 1592, 1649 NotesSession properties, 1648
NavigatePrev command, 488 NOTES.JAR file, 1592 NotesThread class, 1593, 1692
NavigatePrevHighlight NOTES.LOG file, 552 NotesTimer class, 659, 1341
command, 489 Notes Formula Language, 61 NotesUIDatabase class, 1345
NavigatePrevMain command, 489 guidelines, 83 NotesUIDocument class, 604, 1353
NavigatePrevSelected Notes formula language NotesUIView class, 1413
command, 490 in the Programmer's pane, 58 NotesUIWorkspace class, 603, 1426
NavigatePrevUnread NotesACL class, 565, 728 NotesVersion property
command, 490 NotesACLEntry class, 566, 740 NotesSession class, 1318
NavigateToBackLink NotesAgent class, 650, 765 Session class, 2190
command, 490 notesAppletInit method NotesView class, 1457
Navigator class, 1087 AppletBase class, 1668 NotesViewColumn class, 581, 1506
NavigatorProperties notesAppletStart method NotesViewEntry class, 1539
command, 491 AppletBase class, 1668 NotesViewEntryCollection
NavigatorTest command, 491 notesAppletStop method class, 1554
NCSO.JAR file, 1592 AppletBase class, 1668 NotesViewNavigator class, 594, 1570
needsGUI method NotesBuildVersion property Now function, 118, 322
Visibility interface, 1695 NotesSession class, 1317 Null fields
Negation operator (-) NotesColor property Formula Language, 64
Formula Language, 69 NotesRichTextStyle class, 1296 NumActions property
Negative numbers, 67 NotesDatabase class, 553, 785, 1603 Log class, 2048
Nested NotesDateRange class, 876 NotesLog class, 1057
@If function, 92 NotesDateTime class, 655, 879 NumberAttrib property
Never replicate, 2143 NotesDbDirectory class, 553, 557, NotesViewColumn class, 1533
NeverReplicate property 901, 1603 ViewColumn class, 2297
NotesReplication class, 1254 NotesDocument class, 599, 904 NumberDigits property
New Class button NotesDocumentCollection class, NotesViewColumn class, 1533
defined, 35 610, 974 ViewColumn class, 2299
New lines NotesEmbeddedObject class, NumberFormat property
adding, 112 639, 992 NotesViewColumn class, 1534
adding in Java, 2150 NotesError class, 1669 ViewColumn class, 2299
NewLine function, 112, 320 NotesException class, 1669 NumColumns method
Newsletter class, 1658, 2076 NotesFactory class, 1594, 1691 ODBCResultSet class, 1185
Newsletters NotesFont property Numeric constants
accessing in Java, 1658 NotesRichTextStyle class, 1297 Formula Language, 67
in LotusScript, 658 NotesForm class, 1008 NumErrors property
NextRow method NotesIDs Log class, 2049
ODBCResultSet class, 1183 getDocumentByID method, 1827 NotesLog class, 1058

Index-28
NumParameters method Open method OpenView method
ODBCResultSet class, 1186 NotesDatabase class, 558, 852 NotesUIDatabase class, 1352
NumRows method open method OpenWithFailover method
ODBCResultSet class, 1187 Database class, 1840 NotesDatabase class, 558, 857
OpenAgentLog method Operators
NotesLog class, 1068 Formula Language, 68
O openAgentLog method Operators and values
Object Log class, 2056 Formula Language, 63
renaming, 43 OpenByReplicaID method OptimizeMailAddress function,
Object links NotesDatabase class, 558, 854 121, 322
appending in Java, 2157 OpenCalendar command, 492 Option statement
Object property OpenDatabase method Script Area, 49
EmbeddedObject class, 1982 NotesUIWorkspace class, 1441 Or operator, 69
NotesEmbeddedObject class, 999 openDatabase method Formula Language, 72
ObjectDisplayAs command, 491 DbDirectory class, 1885 Order of evaluation
ObjectExecute event openDatabaseByReplicaID method @commands, 78
Button class, 785 DbDirectory class, 1886 @functions, 77
ObjectOpen command, 492 openDatabaseIfModified method formula operation, 70
ObjectProperties command, 492 DbDirectory class, 1887 Organization property
Objects OpenDocument command, 493 Name class, 2074
assigning, creating, deleting in OpenFileDialog method NotesName class, 1085
LotusScript, 551 NotesUIWorkspace class, 1442 OrgUnit property
embedding with Java, 1978 OpenFileLog method NotesRegistration class, 1228
overview, 3 NotesLog class, 1068 Registration class, 2117
renaming, 43 openFileLog method OrgUnit1 property
Objects and events Log class, 2057 Name class, 2074
overview, 25 OpenFrameset command, 494 NotesName class, 1085
Sequencing, 29 OpenFrameSet method OrgUnit2 property
Objects tab NotesUIWorkspace class, 1443 Name class, 2074
defined, 34 OpenHelpDocument NotesName class, 1085
defining subprograms, 48 command, 494 OrgUnit3 property
global variables, 48 OpenIfModified method Name class, 2075
JavaScript, 47 NotesDatabase class, 558, 854 NotesName class, 1086
using, 37 OpenMail method OrgUnit4 property
ODBC NotesDatabase class, 558, 855 Name class, 2075
Formula Language, 132 openMailDatabase method NotesName class, 1086
handling errors, 693 DbDirectory class, 1888 Outline class, 1620, 2085
handling events, 690 OpenMailLog method OutlineEntry class, 1620, 2099
ODBC Driver Manager, 667 NotesLog class, 1069 Outlines
ODBCConnection class, 667, 1097 openMailLog method accessing, 562
ODBCNonThreadSafeDriver Log class, 2059 accessing in Java, 1620
statement, 665 OpenNavigator command, 495 accessing in LotusScript, 562
ODBCQuery class, 672, 676, 1114 OpenNavigator method creating in Java, 1819
ODBCResultSet class, 676, 1128 NotesUIDatabase class, 1352 getOutline method, 1833
ODBCThreadSaveDriver OpenNotesLog method Output panel
statement, 665 NotesLog class, 1071 using, 56
OLE openNotesLog method Overview
custom controls, 715 Log class, 2060 script objects and events, 25
automation objects, 719 OpenPage command, 496 scripts and formulas, 1
LotusScript, 549 OpenPage method OverwriteFile property
On Error statement NotesUIWorkspace class, 1443 NotesLog class, 1059
LotusScript, 698 OpenURLDb method Owner property
Open Database dialog, 2137 NotesDatabase class, 856 Agent class, 1746
OpenView command, 496 NotesAgent class, 773

Index-29
ParentDocumentUNID property Positive operator
P Document class, 1914 Formula Language, 69
Page breaks NotesDocument class, 932 PostDocumentDelete event
adding in Java, 2152 Parentheses NotesUIDatabase class, 1347
Pages passing by value, 553 PostDragDrop event
defining, 496 Parentheses ( ) NotesUIDatabase class, 1347
setting up, 467 @functions, 75 NotesUIView class, 1414
Pagination property formula operation, 70 PostedCommand function, 76,
NotesRichTextParagraphStyle ParentView property 103, 330
class, 1282 Document class, 1915 PostModeChange event
RichTextParagraphStyle NotesDocument class, 933 NotesUIDocument class, 1356
class, 2166 NotesViewNavigator, 1574 PostOpen event
Pair-wise list operators, 72 Passing by value, 553 NotesUIDatabase class, 1348
Paragraph styles PassThruHTML property NotesUIDocument class, 1357
appending in Java, 2155 NotesRichTextStyle class, 1298 NotesUIView class, 1415
Parent property Password function, 121, 323 PostPaste event
ACL class, 1700 Paste method NotesUIView class, 1415
ACLEntry class, 1728 NotesUIDocument class, 1405 PostRecalc event
Agent class, 1747 PasteBitmapAsBackground NotesUIDocument class, 1359
Database class, 1805 command, 497 PostSave event
DateRange class, 1853 PasteBitmapAsObject NotesUIDocument class, 1360
DateTime class, 1863 command, 498 Power function, 114, 330
DbDirectory class, 1881 Pasting Precedence, 69
DocumentCollection text in Script Editor, 42 Preferences file, 79, 649, 1649
class, 1959 PercentUsed property PreviewDocLink property
EmbeddedObject class, 1982 Database class, 1805 NotesUIDocument class, 1376
Form class, 1996 NotesDatabase class, 814 PreviewParentDoc property
International class, 2009 Permuted list operators, 72 NotesUIDocument class, 1377
Item class, 2024 Permuted operators, 69 PrevRow method
Log class, 2050 Pi function, 114, 324 ODBCResultSet class, 1189
Newsletter class, 2080 PickList function, 76, 102, 325 Primary names, 379, 381
NotesACL class, 730 PickListCollection method Print method
NotesACLEntry class, 759 NotesUIWorkspace class, 1444 NotesUIDocument class, 1406
NotesAgent class, 775 PickListStrings method NotesUIView class, 1425
NotesDatabase class, 813 NotesUIWorkspace class, 1445 Print setup, 470
NotesDocumentCollection PictureProperties command, 498 Printing
class, 978 Platform function, 102, 121, 328 a file, 468
NotesEmbeddedObject Platform property PrintWriter class, 1594, 1668
class, 999 NotesSession class, 1319 Priority property
NotesItem class, 1041 Session class, 2191 NotesReplication class, 1256
NotesView class, 1473 PlayTune method Replication class, 2144
NotesViewEntry class, 1551 NotesUIWorkspace class, 1447 Private views
NotesViewEntryCollection Plus operator (+), 71 View class, 2231
class, 1556 Plus sign (+), 67 PRMD property
RichTextStyle class, 2178 PMString property Name class, 2076
View class, 2235 International class, 2009 NotesName class, 1086
ViewColumn class, 2300 NotesInternational class, 1026 Profile documents
ViewEntry class, 2312 Position property getKey method, 1911
ViewEntryCollection, 2316 NotesRichTextTab class, 1302 getProfileDocCollection
ViewNavigator class, 2337 NotesViewColumn class, 1535 method, 1834
ParentDatabase property RichTextTab class, 2181 getProfileDocument
Document class, 1913 ViewColumn class, 2300 method, 1835
NotesDocument class, 931 isProfile method, 1904

Index-30
Programmable objects, 3 PutAllInFolder method QueryRecalc event
Programmer's pane NotesDocumentCollection NotesUIView class, 1421
accessing, 36 class, 988 QuerySave event, 1365
Classes tab, 35 NotesViewEntryCollection Quotation marks, 66
Compile button, 35 class, 1566
Edit Project button, 35 putAllInFolder method
Errors box, 39 DocumentCollection class, 1972
R
errors box, 34 ViewEntryCollection, 2327 Random function, 114, 337, 339
Export button, 35 PutInFolder method Readers property
formula windows, 58 NotesDocument class, 961 Form class, 1996
formulas, 58 putInFolder method NotesForm class, 1016
Imported Java, 36 Document class, 1941 NotesView class, 1475
Java, 35 View class, 2236
Java Debug Console, 35 ReadOnly property
JavaScript, 47
Q ODBCResultSet class, 1139
LotusScript, 48 Query property ReCertify method
New Class button, 35 Agent class, 1748 NotesRegistration class, 1238
programming properties and DocumentCollection class, 1960 recertify method
events, 37 NotesAgent class, 775 Registration class, 2125
Reference tab, 38 NotesDocumentCollection recycle method
run box, 34 class, 979 Java classes, 1694
selecting text, 41 NotesViewEntryCollection Redundant spaces, 367
setting text properties, 40 class, 1557 Reference list
Simple action(s), 59 ODBCResultSet class, 1138 defined, 34
title bar, 34 ViewEntryCollection, 2317 Reference tab
user interface, 33 QueryAccess method defined, 34
Programming environment NotesDatabase class, 858 help button, 34
LotusScript, 33 queryAccess method paste button, 34
Programming language Database class, 1841 paste full text, 34
determining, 38 QueryAddToFolder event pasting from, 38
Programming overview, 1 NotesUIView class, 1416 short-cut keys, 39
ProgramName property QueryClose event using, 38
Log class, 2050 NotesUIDatabase class, 1349 Refresh method
NotesLog class, 1060 NotesUIDocument class, 1361 NotesUIDocument class, 1407
Prompt function, 76, 103, 331 NotesUIView class, 1417 NotesView class, 1504
Prompt method QueryDocumentDelete event refresh method
NotesUIWorkspace class, 1447 NotesUIDatabase class, 1349 View class, 2272
ProperCase function, 112, 336 QueryDocumentUndelete event RefreshECL function, 338
Property block NotesUIDatabase class, 1350 RefreshHideFormulas
Script Area, 49 QueryDragDrop event command, 499
Protect readers NotesUIDatabase class, 1350 RefreshHideFormulas method
View class, 2232 NotesUIView class, 1418 NotesUIDocument class, 1408
ProtectReaders property QueryExecuteTimeOut property Refreshing
NotesForm class, 1014 ODBCQuery class, 1117 a formula, 498
NotesView class, 1474 QueryModeChange event RefreshParentNote command, 498
ProtectUsers property NotesUIDocument class, 1362 RefreshParentNote method
NotesForm class, 1015 QueryOpen event NotesUIWorkspace class, 1449
Public Address Book NotesUIDocument class, 1363 Regional settings, 653
isPublicAddressBook NotesUIView class, 1418 RegionDoubleClick event
method, 1800 QueryOpenDocument event NotesUIView class, 1422
Public readers, 1722 NotesUIView class, 1419 RegisterNewCertifier method
Public writers, 1723 QueryPaste event NotesRegistration class, 1239
PublishDatabase command, 498 NotesUIView class, 1420

Index-31
registerNewCertifier method RemoveAllFromFolder method replicate method
Registration class, 2126 NotesDocumentCollection Database class, 1844
RegisterNewServer method class, 989 Replicating
NotesRegistration class, 1240 NotesViewEntryCollection a formula, 84
registerNewServer method class, 1567 Replication
Registration class, 2127 removeAllFromFolder method resetting the properties in
RegisterNewUser method DocumentCollection class, 1975 LotusScript, 574
NotesRegistration class, 1241 ViewEntryCollection, 2330 saving the properties in
registerNewUser method RemoveEntry method LotusScript, 574
Registration class, 2128 NotesOutline class, 1206 settings in LotusScript, 570
Registration class, 2112 removeEntry method Replication class, 2130
RegistrationLog property Outline class, 2098 Replication formulas, 3, 6
NotesRegistration class, 1228 RemoveFromFolder command, 499 Replication priority, 2144
Registration class, 2117 RemoveFromFolder method ReplicationInfo property
RegistrationServer property NotesDocument class, 964 Database class, 1807
NotesRegistration class, 1228 removeFromFolder method NotesDatabase class, 815
Registration class, 2117 Document class, 1944 Replicator command, 500
Reload method RemoveItem method ReplicatorReplicateHigh
NotesUIDocument class, 1409 NotesDocument class, 965 command, 500
ReloadWindow method removeItem method ReplicatorReplicateNext
NotesUIWorkspace class, 1450 Document class, 1945 command, 501
Rem keyword, 79, 338 RenameDatabase command, 499 ReplicatorReplicateSelected
Remote calls, 1591 RenameRole method command, 501
Remove method NotesACL class, 738 ReplicatorReplicateWithServer
NotesACLEntry class, 764 renameRole method command, 501
NotesAgent class, 780 ACL class, 1710 ReplicatorSendMail command, 502
NotesDatabase class, 860 Renaming ReplicatorSendReceiveMail
NotesDocument class, 963 object in Script Editor, 43 command, 502
NotesEmbeddedObject subprogram in Script Editor, 43 ReplicatorStart command, 502
class, 1006 RenderToRTItem method ReplicatorStop command, 502
NotesForm class, 1017 NotesDocument class, 966 Reset method
NotesItem class, 1052 renderToRTItem method NotesReplication class, 1257
NotesView class, 1506 Document class, 1946 reset method
remove method Repeat function, 112 Replication class, 2146
ACLEntry class, 1735 Repeating resolve method
Agent class, 1753 a string, 112 Session class, 2210
Database class, 1843 Replace function, 87, 340 Response documents, 616
Document class, 1943 ReplaceItemValue method, 967 isResponse method, 1905
EmbeddedObject class, 1986 replaceItemValue method making in Java, 1940
Form class, 1997 Document class, 1947 Responses function, 103, 123,
Item class, 2040 ReplaceSubstring function, 341 126, 342
View class, 2273 Replacing Responses property
removeACLEntry method text in Script Editor, 42 Document class, 1916
ACL class, 1709 Replica IDs NotesDocument class, 933
RemoveAll method openDatabaseByReplicaID Return function, 78, 99, 103, 343
NotesDocumentCollection method, 1886 Return value
class, 989 ReplicaID property @functions, 76
NotesViewEntryCollection Database class, 1806 RevokeAccess method
class, 1567 NotesDatabase class, 815 NotesDatabase class, 861
removeAll method Replicas revokeAccess method
DocumentCollection class, 1974 creating in Java, 1820 Database class, 1845
ViewEntryCollection, 2329 Replicate method Rich text fields
NotesDatabase class, 861 Formula Language, 63

Index-32
Rich text items RunReadOnly property Script executions
accessing in Java, 1645 NotesEmbeddedObject continuing, 54
appending in Java, 2155 class, 1000 Script Library
creating in Java, 1930 in a Java agent, 44
in LotusScript, 635 Java, 56
Rich text paragraph styles
S LotusScript, 56
in LotusScript, 643 Save method programming events in, 57
Rich text styles NotesACL class, 739 using, 56
in LotusScript, 641 NotesAgent class, 784 using LotusScript, 56
RichTextItem class, 1640, 1645, 2147 NotesDocument class, 969 Scripts
RichTextParagraphStyle class, NotesOutline class, 1207 continuing execution, 55
1645, 2162 NotesReplication class, 1258 debugging LotusScript, 51
RichTextStyle class, 1645, 2172 NotesUIDocument class, 1410 deleting, 42
RichTextTab class, 1645, 2179 save method flow of execution, 53
Right function, 109, 344 ACL class, 1711 overview, 1
RightBack function, 109, 345 Agent class, 1757 saving, 42
RightMargin property Document class, 1950 versus a formula, 1
NotesRichTextParagraphStyle Outline class, 2099 where to use, 1
class, 1283 Replication class, 2146 writing, 6
RichTextParagraphStyle SavedData property Search method
class, 2167 AgentContext class, 1765 NotesDatabase class, 862
Roles NotesSession class, 1320 search method
adding in Java, 1702 SaveFileDialog method Database class, 1847
deleting in Java, 1704 NotesUIWorkspace class, 1450 Searching
disabling in Java, 1732 SaveMessageOnSend property for a document in Java, 1637
enabling in Java, 1733 NotesDocument class, 935 for a document in
renaming in Java, 1710 SaveNewVersion method LotusScript, 612
Roles property NotesUIDocument class, 1410 FTDomainSearch method in
ACL class, 1701 SaveToDisk property Java, 1822
ACLEntry class, 1729 NotesItem class, 1041 FTSearch method in Java, 1823
NotesACL class, 731 Saving full-text in LotusScript, 616
NotesACLEntry class, 760 a file, 470 text in Script Editor, 42
RollbackTransactions method a new version, 470 Second function, 119, 347
ODBCConnection class, 1113 a script, 42 Section access formulas, 3, 18, 84
Round function, 113, 346 SBCS, 390 Section title formulas, 3, 19, 84
RowLines property Scientific formats SectionCollapse command, 503
NotesView class, 1476 ViewColumn class, 2299 SectionCollapseAll command, 503
View class, 2237 Scientific notations, 67 SectionDefineEditors command, 503
Ruler property Scope SectionExpand command, 504
NotesUIDocument class, 1378 of programmable objects, 3 SectionExpandAll command, 504
Run-time errors Script Area SectionProperties command, 504
in a formula, 99 completing a LotusScript SectionRemoveHeader
LotusScript, 698 %directive, 50 command, 505
Run box completing LotusScript block Security
defined, 34 statements, 50 ECL in @Commands, 397
Run method defined, 34 ECL in @Functions, 153
NotesAgent class, 782 editing text, 42 Select function, 349
run method moving insertion points, 40 Select keyword, 79, 84, 103, 348
Agent class, 1755 saving and deleting text, 42 SelectAll method, 1411
Runnable interfaces, 1692 selecting text, 41 SelectDocument method
RunOnServer method setting text properties, 40 NotesUIView class, 1426
NotesAgent class, 783 table of mouse operations, 41 Selecting
runOnServer method using, 39 a subprogram, 53
Agent class, 1756 text in Script Editor, 41

Index-33
Selection formulas, 3, 15 setAuthors method setEffects method
writing, 15, 84 Item class, 2016 RichTextStyle class, 2175
Send method setAutoUpdate method setEnabled method
NotesDocument class, 972 View class, 2225 Agent class, 1740
NotesUIDocument class, 1412 setBold method setEncrypted method
send method RichTextStyle class, 2174 Item class, 2018
Document class, 1951 setCacheSize method setEncryptionKeys method
SendKeys statement, 552 ViewNavigator class, 2336 Document class, 1899
SentByAgent property setCanCreateDocuments method setEncryptOnSend method
NotesDocument class, 936 ACLEntry class, 1714 Document class, 1902
Server property setCanCreateLSOrJavaAgent setEndDateTime method
Database class, 1808 method DateRange class, 1852
NotesDatabase class, 816 ACLEntry class, 1715 SetEnvironment function, 97,
ServerName property setCanCreatePersonalAgent method 103, 352
Agent class, 1749 ACLEntry class, 1716 SetEnvironmentVar method
NotesAgent class, 777 setCanCreatePersonalFolder method NotesSession class, 1338
Session class, 2192 ACLEntry class, 1717 setEnvironmentVar method
Servers setCanCreateSharedFolder method Session class, 2210
Formula Language, 120 ACLEntry class, 1719 setExpiration method
requirements for running setCanDeleteDocuments method Registration class, 2115
Java, 1591 ACLEntry class, 1719 SetField function, 103, 125, 353
Session class, 1594, 1647, 2182 setCategories method setFirstLineLeftMargin method
Sessions Database class, 1786 RichTextParagraphStyle
accessing in Java, 1647 setCertifierIDFile method class, 2165
accessing in LotusScript, 646 Registration class, 2114 setFolderReferencesEnabled method
accessing properties in Java, 1648 setColor method Database class, 1792
accessing properties in RichTextStyle class, 2174 setFont method
LotusScript, 646 setComment method RichTextStyle class, 2176
Set function, 350 Outline class, 2089 setFontSize method
setAbstract method, 2133 setCreateMailDb method RichTextStyle class, 2177
Replication class, 2133 Registration class, 2114 setFormUsers method
SetAction method SetCurrentLocation command, 505 Form class, 1990
NotesOutlineEntry class, 1219 SetCurrentLocation method setFrameText method
setAction method NotesUIWorkspace class, 1451 OutlineEntry class, 2103
OutlineEntry class, 2109 setCutoffDelete method, 2135 setGroup method
setAdminReaderAuthor method Replication class, 2135 ACLEntry class, 1721, 1723
ACLEntry class, 1713 setCutoffInterval method, 2135 setHidden method
setAdminServer method setDateTimeValue method OutlineEntry class, 2105
ACLEntry class, 1714 Item class, 2016 setHideDesign method, 2139
setAlias method setDelayUpdates method Replication class, 2139
OutlineEntry, 2100 Database class, 1794 setIDType method
OutlineEntry class, 2100 setDisabled method, 2136 Registration class, 2115
setAlignment method Replication class, 2136 setIgnoreDeletes method, 2140
RichTextParagraphStyle SetDocField function, 103, 129, 351 Replication class, 2140
class, 2164 setDoNotBrowse method, 2137 setIgnoreDestDeletes method, 2141
SetAnyDate method Replication class, 2139 Replication class, 2141
NotesDateTime class, 898 setDoNotCatalog method, 2138 setImagesText method
setAnyDate method Replication class, 2138 OutlineEntry, 2105
DateTime class, 1875 setDoScore method OutlineEntry class, 2099
SetAnyTime method Newsletter class, 2079 setInterLineSpacing method
NotesDateTime class, 898 setDoSubject method RichTextParagraphStyle
setAnyTime method Newsletter class, 2079 class, 2165
DateTime class, 1876

Index-34
setInternetLevel method setParent method SetTab method
ACL class, 1697 Form class, 1996 NotesRichTextParagraphStyle
setItalic method setPriority method, 2144 class, 1287
RichTextStyle class, 2177 Replication class, 2143 setTab method
setLeftMargin method SetProfileField function, 354 RichTextParagraphStyle
RichTextParagraphStyle setProgramName method class, 2170
class, 2166 Log class, 2050 SetTabs method
setLevel method setProtected method NotesRichTextParagraphStyle
ACLEntry class, 1724 Item class, 2021 class, 1289
setLocalDate method setProtectReaders method setTabs method
DateTime class, 1861 Form class, 1992 RichTextParagraphStyle class,
setLocalTime method View class, 2232 2169, 2170
DateTime class, 1861 setProtectUsers method SetTargetFrame function, 354
setLogActions method Form class, 1993 SetTargetFrame method
Log class, 2044 setPublicReader method NotesUIWorkspace class, 1452
setLogErrors method ACLEntry class, 1722 setText method
Log class, 2045 setPublicWriter method DateRange class, 1854
setMaxLevel method ACLEntry class, 1723 setTitle method
ViewNavigator class, 2336 setReaders method Database class, 1812
setMinPasswordLength method Item class, 2021 setType method
Registration class, 2116 View class, 2236 OutlineEntry, 2108
setMultiDbIndex method, 2142 setRegistrationLog method OutlineEntry class, 2106
Replication class, 2142 Registration class, 2117 setUnderline method
setName method setRegistrationServer method RichTextStyle class, 2179
ACLEntry class, 1726 Registration class, 2117 setUniformAccess method
SetNamedElement method setRightMargin method ACL class, 1699
NotesOutlineEntry class, 1220 RichTextParagraphStyle setUniversalID method
setNamedElement method class, 2167 Document class, 1919
OutlineEntry class, 2110 setSaveMessageOnSend method setUpdateAddressbook method
setNameObject method Document class, 1905 Registration class, 2118
ACLEntry class, 1727 setSaveToDisk method SetURL method
setNames method Item class, 2022 NotesOutlineEntry class, 1221
Item class, 2020 setServerName method setURL method
setNeverReplicate method Agent class, 1749 OutlineEntry class, 2112
Replication class, 2143 setSigned method setUserType method
setNoChronos method Item class, 2022 ACLEntry class, 1730
Replication class, 2143 setSignOnSend method SetValue method
SetNoteLink method Document class, 1908 ODBCResultSet class, 1192
NotesOutlineEntry class, 1220 setSizeQuota method setValueDouble method
setNoteLink method Database class, 1810 Item class, 2029
OutlineEntry class, 2111 setSpacingAbove method setValueInteger method
SetNow method RichTextParagraphStyle Item class, 2030
NotesDateTime class, 898 class, 2168 setValues method
setNow method setSpacingBelow method Item class, 2031
DateTime class, 1876 RichTextParagraphStyle setValueString method
setOrgUnit method class, 2168 Item class, 2033
Registration class, 2117 setStartDateTime method Shadow effect
setOverwriteFile method DateRange class, 1853 NotesRichTextStyle class, 1293
Log class, 2046 setStoreIDInAddressBook property RichTextStyle class, 2175
setPagination method Registration class, 2118 Shared folders
RichTextParagraphStyle setStrikethrough method creating, 1719
class, 2166 RichTextStyle class, 2178 Short-cut keys
SetParameter method setSubjectItemName method Reference tab, 39
ODBCResultSet class, 1190 Newsletter class, 2080

Index-35
Show action formulas, 84 Spacing property Styles
ShowHideLinkPreview NotesView class, 1477 appending in rich text
command, 505 View class, 2237 items, 2156
ShowHideParentPreview SpacingAbove property Sub block, 49
command, 506 NotesRichTextParagraphStyle Subforms
ShowHidePreviewPane class, 1284 insert subform formula, 18
command, 506 RichTextParagraphStyle SubjectItemName property
ShowProperties command, 506 class, 2168 Newsletter class, 2080
SiblingCount property SpacingBelow property NotesNewsletter class, 1091
NotesViewEntry class, 1552 NotesRichTextParagraphStyle Subprograms
ViewEntry class, 2313 class, 1285 defining, 48
Side effects, 76 RichTextParagraphStyle renaming, 43
Sign function, 113, 356 class, 2168 selecting, 53
Sign method Specifying Subroutine
NotesDocument class, 974 form and view names, 81 renaming, 43
sign method SpellCheck method Subroutines
Document class, 1954 NotesUIDocument class, 1413 calling, 552
Signer property SQL property Subscript effect
Document class, 1918 ODBCQuery class, 1118 NotesRichTextStyle class, 1293
NotesDocument class, 937 SQL statements RichTextStyle class, 2175
SignOnSend property in LS:DO, 673 Subset function, 87, 358
NotesDocument class, 938 Sqrt function, 114, 358 Substrings, 109
SilentMode property SSL, 1594 Subtraction, 113
ODBCConnection class, 1101 StampAll method Subtraction operator (-)
Simple Action(s) NotesDocumentCollection Formula Language, 69
icon, 38 class, 990 Success function, 99, 103, 359
Sin function, 114, 356 NotesViewEntryCollection Sum function, 113, 359
sinitThread method, 1593 class, 1568 Superscript effect
NotesThread class, 1692 stampAll method NotesRichTextStyle class, 1293
Size property DocumentCollection class, 1976 RichTextStyle class, 2175
Database class, 1809 ViewEntryCollection, 2331 SurName property
Document class, 1918 StartDateTime property Name class, 2076
NotesDatabase class, 817 DateRange class, 1853 Surname property
NotesDocument class, 939 NotesDateRange class, 878 NotesName class, 1087
SizeQuota property Statements SwitchToID method
Database class, 1810 separators, 62 NotesRegistration class, 1243
NotesDatabase class, 817 Step Exit switchToID method
SmartIcons, 3, 5 LotusScript debugger, 54 Registration class, 2129
SmartIcons formulas, 85 stermThread method, 1593 Symbols
SmartIconsFloating command, 507 NotesThread class, 1692 for @Matches, 302
SmartIconsNextSet command, 507 StoreIDInAddressbook property for @Text, 362
Sorted column keys, 616 NotesRegistration class, 1229 Syntax
Soundex function, 357 Registration class, 2118 @functions, 75
Source property StrikeThrough property errors in a formula, 99
EmbeddedObject class, 1982 RichTextStyle class, 2178 Formula Language, 61
NotesEmbeddedObject Strikethrough property general rules, 62
class, 1000 NotesRichTextStyle class, 1299
Spaces String item values
Formula Language, 62 getting in Java, 1939
T
leading, 367 String operations, 104 Tabs
redundant, 367 Strings adding in Java, 2152
trailing, 367 converting in Java, 1695 clearing in Java, 2169, 2182
StyleCycleKey command, 507 in LotusScript, 645
setting in Java, 2170

Index-36
Tabs property TextSpacingDouble command, 517 Title property
NotesRichTextParagraphStyle TextSpacingOneAndAHalf Database class, 1812
class, 1286 command, 518 Java, 2302
RichTextParagraphStyle TextSpacingSingle command, 518 NotesDatabase class, 819
class, 2169 TextToNumber function, 363 NotesViewColumn class,
Tan function, 114, 361 TextToTime function, 364 1538, 2302
Target property TextUnderline command, 518 Today function, 118, 366
Agent class, 1751 ThousandsSep property Today property
NotesAgent class, 778 International class, 2010 International class, 2011
TemplateName property NotesInternational class, 1027 NotesInternational class, 1028
Database class, 1811 Threads, 1593 toJavaDate method
NotesDatabase class, 818 NotesThread class, 1692 DateTime class, 1878
Templates Time Tomorrow function, 118, 367
creating from in Java, 1817 formatting, 67 Tomorrow property
getDesignTemplateName in LotusScript, 655 International class, 2011
method, 1790 Time/date NotesInternational class, 1028
Temporary variables, 65 constants, 67 ToolsCall command, 519
Text Time function, 119, 365 ToolsCategorize command, 519
appending in Java, 2157 TimeDateFmt property ToolsHangUp command, 520
editing, 42 NotesViewColumn class, 1536 ToolsMarkAllRead command, 520
selecting, 41 TimeDateFormat property ToolsMarkAllUnread command, 520
Text constants, 66 ViewColumn class, 2301 ToolsMarkSelectedRead
Text function, 105, 361 TimeDifference method command, 521
Text operator, 71 NotesDateTime class, 899 ToolsMarkSelectedUnread
Text properties timeDifference method comand, 521
Design panel, 40 DateTime class, 1877 ToolsRefreshAllDocs command, 522
Text property TimeDifferenceDouble method ToolsRefreshSelectedDocs
DateRange class, 1854 NotesDateTime class, 900 command, 522
Item class, 2026 timeDifferenceDouble method ToolsReplicate command, 522
NotesDateRange class, 878 DateTime class, 1877 ToolsRunBackgroundMacros
NotesItem class, 1042 TimeFmt property command, 523
TextAlignCenter command, 508 NotesViewColumn class, 1536 ToolsRunMacro command, 523
TextAlignFull command, 508 ViewColumn class, 2301 ToolsScanUnreadChoose
TextAlignLeft command, 508 TimeOnly property command, 524
TextAlignNone command, 509 DateTime class, 1863 ToolsScanUnreadPreferred
TextAlignRight command, 509 NotesDateTime class, 889 command, 524
TextBold command, 509 Timers ToolsScanUnreadSelected
TextBullet command, 510 in LotusScript, 659 command, 524
TextCycleSpacing command, 510 TimeSep property ToolsSetupLocation command, 525
TextEnlargeFont command, 511 International class, 2010 ToolsSetupMail command, 525
TextFont command, 511 NotesInternational class, 1027 ToolsSetupPorts command, 525
TextItalic command, 512 TimeZone property ToolsSetupUserSetup command, 526
TextNormal command, 512 DateTime class, 1864 ToolsSmartIcons command, 526
TextNumbers command, 513 International class, 2010 ToolsSpellCheck command, 526
TextOutdent command, 513 NotesDateTime class, 889 ToolsUserLogoff command, 527
TextParagraph command, 514 NotesInternational class, 1027 TopLevelEntryCount property
TextParagraphStyles command, 514 TimeZoneFmt property NotesView class, 1478
TextPermanentPen command, 514 NotesViewColumn class, 1537 View class, 2238
TextReduceFont command, 515 ViewColumn class, 2302 toString method
TextSetFontColor command, 515 Title bar Java classes, 1695
TextSetFontFace command, 516 defined, 34 Trailing spaces, 367
TextSetFontSize command, 517

Index-37
Transaction mode unprocessedFTSearch method UserIDClearPassword
in LS:DO, 696 AgentContext class, 1768 command, 527
Trigger property UnprocessedSearch method UserIDCreateSafeCopy
Agent class, 1753 NotesDatabase class, 869 command, 528
NotesAgent class, 779 unprocessedSearch method UserIDEncryptionKeys
Trim function, 112, 367 AgentContext class, 1772 command, 528
Trimming UpdateAddressbook property UserIDInfo command, 528
a string, 112 NotesRegistration class, 1229 UserIDMergeCopy command, 529
True function, 368 Registration class, 2118 UserIDSetPassword command, 529
Truncate during replication, 2133 UpdateAll method UserIDSwitch command, 529
Type block NotesDocumentCollection UserName function, 121, 379
Script Area, 49 class, 991 UserName property
Type property NotesViewEntryCollection NotesSession class, 1321
EmbeddedObject class, 1983 class, 1569 Session class, 2193
Item class, 2026 updateAll method UserNameLanguage function, 381
NotesEmbeddedObject ViewEntryCollection, 2332 UserNameList property
class, 1001 UpdateFTIndex method NotesSession class, 1322
NotesItem class, 1044 NotesDatabase class, 874 Session class, 2194
NotesOutlineEntry class, 1217 updateFTIndex method UserNameObject property
NotesRichTextTab class, 1303 Database class, 1848 Session class, 2194
OutlineEntry class, 2108 UpdateProcessedDoc method UserNamesList function, 382
RichTextTab class, 2182 NotesSession class, 1339 UseRowID property
updateProcessedDoc method ODBCQuery class, 1120
AgentContext class, 1775 UserPrivileges function, 383
U UpdateRow method UserRoles function, 121, 383
Unary operators, 69, 71 ODBCResultSet class, 1194 UserType property
Unavailable function, 103, 369 Updating ACLEntry class, 1730
UndeleteDocument function, 369 a full text index, 461 NotesACLEntry class, 761
Underline property UpperCase function, 112, 370 Using
NotesRichTextStyle class, 1300 URL property @commands, 397
RichTextStyle class, 2179 NotesOutlineEntry class, 1218 @functions, 75, 101
UNIDs OutlineEntry class, 2108 a formula, 83
getDocumentByUNID URLGetHeader function, 371 a list, 86
method, 1828 URLHistory function, 373 AgentRunner, 45
Uniform access URLOpen function, 374 conditional statements, 90
ACL class, 1699 URLOpen method constants, 66
UniformAccess property NotesUIWorkspace class, 1452 debugger utilities, 55
NotesACL class, 732 URLs Java, 57
Unique function, 87, 370 getDocumentByURL JavaScript, 47
Unique ID, 266 method, 1830 keywords, 79
Unique ID function, 243 getting in Java, 1694 LotusScript debugger, 52
UniversalID property getURLHeaderInfo method, 1836 LotusScript in a script library, 56
Document class, 1919 UseLSX operators, 68
NotesDocument class, 939 statement, 666 script libraries, 56
NotesView class, 1478 UseLSX method scripts and formulas, 1
NotesViewEntry class, 1552 NotesUIWorkspace class, 1455 short-cut keys, 39
View class, 2238 User environment, 120 syntax rules, 61
ViewEntry class, 2313 User interface, 33 the Errors box, 39
UnprocessedDocuments property formula window, 58 the Info list, 37
AgentContext class, 1766 Programmer's pane, 33 the Objects tab, 37
NotesDatabase class, 820 User names, 120 the Reference tab, 38
UnprocessedFTSearch method UserAccess function, 377 the script area, 39
NotesDatabase class, 864 UserIDCertificates command, 527 variables, 63

Index-38
accessing documents, 596 Views property
V creating, 586 Database class, 1813
V2If function, 384 properties, 594 NotesDatabase class, 577,
V3EditNextField command, 530 View property 580, 824
V3UserName function, 385 NotesOutlineEntry class, 1219 ViewShowFieldHelp command, 537
ValidateInternetAddress NotesUIView class, 1424 ViewShowObject command, 537
function, 386 OutlineEntry class, 2109 ViewShowOnlyCategories
Value formulas, 4, 24 ViewArrangeIcons command, 531 command, 538
writing, 24 ViewBelowFolders command, 531 ViewShowOnlySearchResults
ValueDouble property ViewBesideFolders commnd, 531 command, 538
Item class, 2029 ViewCertify command, 531 ViewShowOnlySelected
ValueInteger property ViewChange command, 532 command, 538
Item class, 2030 ViewCollapse command, 533 ViewShowOnlyUnread
ValueLength property ViewCollapseAll command, 533 command, 539
Item class, 2030 ViewColumn class, 1626, 2274 ViewShowPageBreaks
NotesItem class, 1046 ViewEntry class, 1628, 2304 command, 539
Values property ViewEntryCollection class, ViewShowRuler command, 539
Item class, 2031 1629, 2314 ViewShowSearchBar command, 539
NotesItem class, 1046 ViewExpand command, 534 ViewShowServerNames
ValueString property ViewExpandAll command, 534 command, 540
Item class, 2033 ViewExpandWithChildren ViewShowUnread command, 540
Variables command, 534 ViewSwitchForm command, 540
using, 63 ViewHorizScrollBar command, 535 ViewTitle function, 103, 122, 389
using the variables panel, 55 ViewMoveName command, 535 Visibility interface, 1695
Verbs property Viewname property Visual Basic
EmbeddedObject class, 1983 NotesUIView class, 1424 with LotusScript, 719
NotesEmbeddedObject ViewNavigator class, 1629, 2333
class, 1002 ViewNavigatorsFolders
Verifier property command, 535
W
Document class, 1920 ViewNavigatorsNone Ways to
NotesDocument class, 941 command, 536 handle an error, 98
Version function, 121, 388 ViewRefresh method perform string operations, 104
Version number NotesUIWorkspace class, use a formula, 83
Session class, 2190 584, 1455 use an operator, 68
View class, 577, 1621, 2212 ViewRefreshFields command, 536 use constants, 66
View entries ViewRefreshUnread command, 536 use syntax rules, 61
accessing, 587 ViewRenamePerson command, 537 use the script area, 39
Accessing in LotusScript, 587 Views use variables, 63
retrieving, 585 accessing in Java, 1621 write a formula, 58
retrieving multiple, 585 accessing in LotusScript, 577 write a message, 92
View entry collections accessing properties in Java, 1621 Weekday function, 118, 389
accessing, 590 accessing properties in Wide function, 390
adding an entry, 591 LotusScript, 578 Width property
deleting an entry, 591 locating in Java, 1625 NotesViewColumn class, 1539
removing a document, 593 locating in LotusScript, 580, 615 ViewColumn class, 2302
retrieving entries, 592 naming in a formula, 81 Window title formulas, 3, 17, 84, 123
searching for entries, 591 refreshing in LotusScript, 584 WindowMaximize command, 541
View Navigator removing in Java, 1631 WindowMaximizeAll command, 541
Accessing in LotusScript, 594 traversing in LotusScript, 615 WindowMinimize command, 541
View navigators WindowMinimizeAll command, 542
accessing an entry, 595
accessing an entry by
position, 598

Index-39
WindowTitle property
NotesUIDocument class, 1379 Z
WindowWorkspace command, 542 Zone function, 119, 394
Word function, 110, 391 ZoneTime property
WorkspaceProperties command, 542 DateTime class, 1866
WorkspaceStackReplicaIcons NotesDateTime class, 890
command, 543 ZoomPreview command, 543
Workstation
Formula Language, 120
Writing
a column formula, 16
a default value formula, 23
a field design formula, 22
a form formula, 15
a formula for SmartIcons, 5
a formula in the Programmer's
pane, 58
a hidden paragraph formula, 19
a keyword field formula, 24
a message, 92
a message with @Prompt, 93
a replication formula, 6
a script and formula for a
button, 12
a script and formula for
action, 10
a script and formula for
events, 19
a section access formula, 18
a section title and hidden
paragraph formula, 19
a section title formula, 19
a selection formula, 15
a value formula, 24
a window title formula, 17
an input translation formula, 23
an input validation formula, 23
an insert subform formula, 18
JavaScript in a page header, 48
LotusScript in the Programmer's
pane, 48
scripts and formulas, 6

Y
Year function, 119, 392
Yes function, 393
Yesterday function, 118, 393
Yesterday property
International class, 2012
NotesInternational class, 1028

Index-40

You might also like