Printed in the U.S.A. SG24-5331-01 Part No. CC7EDNA Lotus Domino Release 5.0: A Developer’s Handbook Lotus Domino Release 5.0: A Developer’s Handbook Fiona Collins, David Morrison, Søren Peter Nielsen, Sami Serpola, Reinhold Strobl SG24-5331-01 International Technical Support Organization http://www.redbooks.ibm.com Lotus Domino Release 5.0: A Developer’s Handbook Lotus Domino Release 5.0: A Developer’s Handbook xii Lotus Domino Release 5.0: A Developer’s Handbook SG24-5331-01 International Technical Support Organization Lotus Domino Release 5.0: A Developer’s Handbook September 1999 Take Note! Before using this information and the product it supports, be sure to read the general information in the Special Notices section at the back of this book. Second Edition (September 1999) This edition applies to Lotus Domino Release 5.0.1. Comments may be addressed to: IBM Corporation, International Technical Support Organization Dept. JN9B Building 045 Internal Zip 2834 11400 Burnet Road Austin, Texas 78758-3493 When you send information to IBM, you grant IBM a non-exclusive right to use or distribute the information in any way it believes appropriate without incurring any obligation to you. © International Business Machines Corporation 1999. All rights reserved. Note to U.S. Government Users: Documentation related to restricted rights. Use, duplication or disclosure is subject to restrictions set forth in GSA ADP Schedule Contract with IBM Corp . 16 Fields 16 Views 15 Subforms 15 Forms 15 The Domino Database 15 Domino Design Elements 14 The Script Area 14 The Reference View 13 The Objects View 13 The Programmer’s Pane 12 The Launch Buttons 12 The Window Tabs 11 The Design Pane 10 Managing Your Workspace 9 2 Lotus Domino Designer: An Overview 8 Summary 6 Domino Administrator R5.0 4 Notes R5.0 4 Clients for Domino R5.0 2 Services Offered by Domino Servers 2 Domino Enterprise Server 1 Domino Application Server 1 Domino Mail Server 1 Domino R5.0 Server 1 1 What is Lotus Domino? xv Comments Welcome xiii The Team That Wrote This Redbook xiii Preface 60 Sharing and Reusing a Field 57 Performing a Test Run 56 Creating a Field 53 Objects View 52 Giving the Form a Title 43 Specifying Form Properties 43 Forms 43 4 Forms 42 Summary 40 Using Design Synopsis 33 Changing the Database Properties 27 Creating a Database 27 Domino Databases 27 3 Domino Design Elements: Basics 25 Easy Access to Enterprise Data and Applications 24 Multilingual Applications Support 24 Multi-Client Applications Support 23 Industry Standards Support 23 New Rapid Development Capabilities in IDE 22 Domino User Interface Applets 22 Page Designer 21 Frameset Designer 20 Outline Designer 17 New Features of Domino Designer 16 Action Buttons 16 Tables 16 Shared Fields Contents iii Contents 102 Importing Pictures 102 Copying Images 102 Images Within Forms 99 Buttons, Action Bar Buttons, and Hotspots 97 Computed Text 97 Horizontal Rules 97 Other Features of Forms 96 Embedded File Upload Control 94 Embedded Folder Pane 94 Embedded Group Scheduling Control 93 Embedded View 93 Embedded Outline Control 93 Embedded Date Picker 93 Embedded Navigators 92 Embedded Elements 86 Table Properties 84 Merge and Split Cells 84 Create Tables Within Tables 82 Using Tables 82 Creating a Collapsible Section 82 Working With Collapsible Sections 80 Creating a Layout Region 80 Working With Layout Regions 79 Displaying a Different Form to Web Users and Notes Users 78 Computed Subforms 77 Removing Subforms 77 Subform Properties 75 Sharing Design Elements With Subforms 74 Field Events 70 Using the $$Return Field 68 Rich Text Field (RTF) Applet 63 Field Properties 138 Presenting Views to Users 137 Creating an All by Category View 136 Using Categories in Views 136 Identifying Unread Documents 133 Overview of Styles 132 Naming Views 132 Hints and Tips on Designing Views 128 Using HTML Formatting for Views 127 Using Java Applets for Display 125 Using the Default Display 125 Views and the Web 123 Working With Views as a Developer 121 Creating a Button on the Action Bar 121 Personal Views 120 Shared, Personal-on-First-Use Views 120 Shared Views 120 Shared and Private Views 118 Summary 117 Creating Calendar Views 114 Editing View Columns 111 Working With View Properties 107 Creating Views 107 What is a Navigator? 107 What is a Folder? 107 What is a View? 107 5 Views , Folders , and Navi g ators . 106 Summary 106 Using a LotusScript Agent to Capture CGI Variables 105 Using a Field to Capture CGI Variables 103 Table of CGI Variables Supported by Domino 103 Using CGI Variables 103 Alternate Text 103 Using Image Resource iv Lotus Domino Release 5.0: A Developer’s Handbook 173 Resources 170 Embedded Outline 169 Creating a New Outline 167 Outlines 166 Changing the Layout of a Frameset 163 Creating a Frameset 163 Framesets 162 Launching Pages 161 Using Pages 159 Specifying Page Properties 158 Creating a New Page 157 Pages 157 6 New R5.0 Desi g n Elements 156 Summary 155 Including a Navigator in the View Menu 154 Testing a Navigator 154 Adding an Action Using @Functions or LotusScript 154 Adding an Action to a Navigator Object 152 Creating a Navigator 151 Navigator Actions 151 Navigator Objects 150 Using Navigators 150 Creating a Write Access List 149 Creating a Read Access List 149 Managing Access to Views and Folders 148 Designing a Folder 145 Exporting and Importing Views 143 Sorting Documents in Views 142 Indenting Response Documents 142 Formatting Numbers in Columns 141 Formatting Date and Time Columns 140 Hiding Views 138 Embedding Views 194 Using a LotusScript Agent to Capture CGI Variables 194 Using the @URLOpen Command to Call Agents 193 WebQueryOpen and WebQuerySave Agents 193 Running Multiple Instances of an Agent 192 Agents and the Web 189 Troubleshooting Agents 189 To Disable All Automated Agents in a Database 189 To Disable Individual Agents 189 Disabling Scheduled Agents 188 Debugging Agents 188 Checking the Agent Log 187 Testing an Agent Before Copying it to a Live Database 187 Testing an Agent During Development 187 Testing an Agent 186 Displaying the Agent Pop-up Menu 183 Specifying What the Agent Should Do 182 Selecting Documents to be Processed 180 Scheduling the Agent 179 Naming the Agent 179 Creating an Agent 178 Restricted and Unrestricted Agents 177 Access Control 177 About Agents 177 7 A g ents 176 Summary 176 Other 176 Script Libraries 175 Shared Fields 175 Applets 173 Images Contents v 230 When to Use Internet Security 230 Domino and SSL 228 Secure Sockets Layer (SSL) 227 HTTP Basic Authentication 227 Authentication on the Web 225 Using Encryption for Field Security 225 Use of Hide-When Formulas 224 Controlled Access Sections 223 Combining Readers and Authors Fields 222 Editor Access 220 Read Access 219 Controlling Access to Documents 219 Preventing Printing, Forwarding, and Copying of Documents 216 Controlling Access to Forms 215 Controlling Access to Views 215 Controlling Access to Views and Forms 214 Using Directory Link Files to Control Access to an Application 214 Using Outline Control to Hide Parts of an Application 212 Changing the ACL Programmatically 212 Maximum Internet Name and Password Access 211 Enforce Consistent ACL 210 Roles in the ACL 206 Setting Up and Refining the ACL 204 Using the Access Control List to Control Access to an Application 202 Overview of Domino Security Architecture 201 Controlling Access to Domino Data 201 8 Securin g Your A pp lication 199 Summary 197 Using Agents — Advanced Topics 195 Creating a Web Page Counter 261 How Users Search Using a Search Site Database 260 Multi-Database Full Text Indexes 258 Creating a Search Site Database 258 Search Site Databases 256 Customizing Search Result Forms 252 Creating a TeamRoom Search 251 Customizing Search and Result Forms 249 Full Text Indexing 249 Search Site URLs 248 Search View URLs 248 Search-Related URLs 247 Adding Search Capabilities to Your Web Site . 247 9 Searchin g 245 Summary 244 Distinguishing True Security Features 242 Key Design Issues 240 Developing a Plan for Securing Your Application 240 Backup and Restore 239 APIs for Customized Authentication, Encryption, and Signing 237 Access Control for HTML and Other Files . 234 Using Signatures for Security 234 Other Security Options and Considerations 234 Hiding the Design of a Database 234 Controlling if Users Paste Documents into Database 234 Password Field 233 Using @UserNameList 233 Using @ClientType 232 Using @UserName 232 Using @UserRoles 232 Programming Considerations 231 Defining Web Users vi Lotus Domino Release 5.0: A Developer’s Handbook 301 Making Field Value Changes Effective 300 Using the Evaluate Function to Combine LotusScript and Formulas 298 When to Use Formulas and LotusScript 297 Improving Form Performance 297 Catching Errors at Compile Time 295 Using a Template Database 293 Using Script Libraries 292 Reserved Fields 291 Use Consistent Variable Names 290 General Suggestions 290 LotusScript Programming Tips and Considerations 285 How Scripts and Formulas Are Executed 285 Using LotusScript in Web Applications 284 Action Object 280 Event Type and Sequence 278 The Event Model 278 Programming With LotusScript 278 Using Domino Objects From Java 276 Understanding Front-end and Back-end Classes 274 Using Domino Objects from LotusScript 273 Object Hierarchy 270 Domino Back-End Objects 270 Domino Front-End UI Objects 269 The Domino Object Model 267 LotusScript 264 Formula Language 263 Simple Actions 263 Programming in Notes 263 10 Pro g rammin g for Domino 262 Summary 261 Customizing Search Site Result Forms 349 Runtime Requirements 348 Compiling and Running a Java Program 347 How and When to Use CORBA 347 Benefits of Using CORBA 346 Adding CORBA to the Picture 345 Agents, Applets, Applications, and Servlets 343 J ava 343 11 Advanced Domino Pro g rammin g 342 Summary 341 The API for Domino and Notes 341 External Tools 338 Accessing Java/CORBA Applets via LiveConnect 337 Accessing an Applet From JavaScript 337 LiveConnect — JavaScript Access to the Domino Classes 334 Cookies and Domino 328 Examples of Adding JavaScript to Forms 323 Mapping Domino Objects to the Document Object Model 323 Where JavaScript Gives You Access in Domino 321 Using JavaScript in Domino Design Elements 320 Using JavaScript 318 Tracing Programs Without a Debugger 314 How to Enable the Debugger 313 Using the Debugger 312 Error Handling 306 New Domino Objects in Domino R5.0 302 Working With a Rich Text Item and Rich Text Style 302 Using Validation Formulas and QuerySave Contents vii 396 Using the LSX Wizard 396 The LSX Development Process 395 Creating an LSX 393 What the LSX Toolkit Contains 392 Overview 392 Using the LSX Toolkit 392 Using an LSX 391 What Is an LSX? 391 The LSX Toolkit 390 Considerations Before Using OLE Embedding/Automation 387 Troubleshooting 385 Using OLE Automation Without Embedding 380 Embedding OLE Objects 378 LotusScript Functions and Methods to Use for OLE Applications 377 Classes of OLE Objects 376 Accessing Other Applications From Notes Using OLE Automation 374 Runtime Errors and Debugging 372 More Examples 369 Sending Information From Excel Using Domino 367 Accessing the Domino Object Model Using OLE Automation 367 Domino and OLE Automation 361 Coding the CORBA Applet 359 CORBA and Domino 358 Internet Inter-ORB Protocol (IIOP) 358 CORBA Architecture 357 Benefits of Using CORBA 357 CORBA/IIOP 353 Creating a Java Agent 351 Applet Calls to lotus.domino Package 349 Remote Calls to lotus.domino Package 431 Lesson 4 - Comment Your Code 431 Lesson 3 - Try to Standardize on a Web Browser 431 Lesson 2 - Design the Outlook as Thoroughly as Possible 431 Lesson 1 - Use Professional Graphics 431 Creating Your Application 430 Lesson 7 - Project Scope Creep 430 Lesson 6 - Even Domino Has Limitations 430 Lesson 5 - Planning Your Application 430 Lesson 4 - Understanding the Deliverables . 429 Lesson 3 - Ensure That There is a Real Business Need 429 Lesson 2 - Communication 429 Lesson 1 - Getting a Business Sponsor 429 Before You Write a Single Line of Code 429 12 Develo p ment Dos and Don’ts 428 Summary 427 Accessing LSX Class Property Arguments . 425 Accessing LSX Class Method Arguments 423 LSX Design Decisions 419 Understanding the C++ LSX Class Framework 416 Architecture and Advanced Design 415 LSX Registration 415 LSX Installation 414 The LSX Runtime Environment 414 Deploying an LSX 414 The LSXRUN Tool 413 The LSXTEST Tool 413 Testing an LSX 409 Using LotusScript System Services 408 Using Data Type Descriptions 406 Using LSX Data Types 406 Compiling the LSX viii Lotus Domino Release 5.0: A Developer’s Handbook [...]... following section gives you a short overview of the design elements The Domino Database A Domino database is a collection of related information stored in a single file A Domino application uses at least one database However, applications of a more complex nature may use several databases and may route information between databases on one or more servers A database holds information about its design (see... Lotus Domino Release 5.0 The earlier chapters in the book introduce some of the basic design elements of a Domino database such as the database itself, forms, views, folders, and navigators Those readers that are familiar with developing applications using earlier releases of Lotus Domino may want to move straight to the chapters that introduce the new features in Domino 5.0, such as framesets, pages,... with Domino Server R5.0 and Domino Designer R5.0 As a developer you will need Domino Administrator R5.0 for tasks like signing databases Summary In this chapter we have described the Domino Server Family: • Domino Mail Server R5.0 • Domino Application Server R5.0 • Domino Enterprise Server R5.0 and the clients for Domino from Lotus: • Domino Designer R5.0 • Notes R5.0 • Domino Administrator R5.0 8 Lotus. .. administrators easily perform common database tasks such as check the disk status, move, compact, and more From the Server Tab, Administrators can get a graphical representation of the state of their servers, with details on the current status of specific tasks Chapter 1: What is Lotus Domino? 7 Installation Domino Administrator R5.0 is not a stand-alone client, but is included as optionally installable... the Domino design elements below) as well as data Domino data is organized as documents A document is defined as an object containing text, graphics, video, or audio objects, or any other kind of “rich text” data Forms A form is a framework for entering and viewing information in a database A Notes database contains documents created from one or more forms A form can contain: Fields that store data... tools and reduce the cost of ownership 6 Lotus Domino Release 5.0: A Developer’s Handbook Domino Directories Administration Tab The Domino Administrator provides logical groupings for administration functions and tasks via five specific interfaces reached via tabs across the top of the Administrator UI These tabs are People & Groups, Configuration, Files, Server, Messaging, and Replication On each tab,... server-based applications like e-mail and calendaring In addition, Notes R5.0 offers full standards support including POP, IMAP4, SMTP, LDAP v3, MIME, S/MIME, HTML, Java, Javascript, and X.509 certificates So now, even users with non -Domino, standards-based back ends or that use ISP hosted mail at home will benefit from the power of Notes R5.0 Domino Administrator R5.0 Domino Administrator R5.0 is a new,... integrated administration control panel that provides simple, yet flexible administration Administration benefits are universal whether you are a smaller company just getting started with Domino, or an enterprise managing a large-scale deployment, with thousands of people and applications The Domino Administrator R5.0 utilizes the Windows Explorer metaphor, providing an easy, intuitive interface and allowing... to achieve deep, integrated connectivity to external data from Domino applications This allows developers to map fields in forms directly to fields in relational database tables, without storing any data within the Domino database Scalability and Reliability Domino Enterprise Server enable you to cluster up to six Domino servers to provide both scalability and failover protection, to maximize the availability... Toolbar along the right side provides context-specific administration tools (also available via right-mouse click) The People & Groups Tab in the Domino Administrator provides a central interface for all user and group management, such as user registration, certification, and group management From the Files Tab, Administrators can easily manage files and applications Context-sensitive tools let administrators . Handbook xii Lotus Domino Release 5. 0: A Developer’s Handbook SG24 -53 31 - 01 International Technical Support Organization Lotus Domino Release 5. 0: A Developer’s Handbook September 19 99 Take. Properties 10 7 Creating Views 10 7 What is a Navigator? 10 7 What is a Folder? 10 7 What is a View? 10 7 5 Views , Folders , and Navi g ators . 10 6 Summary 10 6 Using a LotusScript Agent to Capture. Navigator in the View Menu 15 4 Testing a Navigator 15 4 Adding an Action Using @Functions or LotusScript 15 4 Adding an Action to a Navigator Object 15 2 Creating a Navigator 15 1 Navigator