Description
During this course
you will thoroughly explore the use of Domino Designer to create
applications used by Notes clients and Web browsers. Almost every
aspect of application planning, design, security, and testing
is covered in this thorough introduction to Domino Designer.
Course goals
This course will teach
you how to:
- Build
applications that can be used by Notes clients and Web browsers
- Design applications
using Pages, Forms, Fields, Subforms, Views, Framesets, Outlines,
Hotspots, Actions, Navigators, Shared Images, and Agents
- Work with the Simple
Action, @Function, LotusScript, and JavaScript languages
- Establish relationships
between documents through Field data inheritance and Response
Document hierarchy
- Assign user rights
and roles in the database, form, and view Access Control Lists
- Restore deleted
documents
- Mail-enable an
application for workflow applications
- Design and configure
a database for single database Full Text Search, Site Search,
and Domain Search
- Utilize design
templates to centralize your code changes
- Maximize Form and
View performance.
Audience
This course is designed
for individuals new to Domino Designer but who have:
- Significant
experience using the Notes R6 client
- Experience with
another programming language, or with any worksheet or word
processor macro language
- Basic knowledge
of HTML.
This course only introduces
the programming languages used in Domino Designer, and does not
require a strong programming background.
Duration
This course is sold
as a 4-day course, but it is unlikely that you can finish all
the topics in four days. To finish in four days, it is recommended
that you defer the last few topics for self-study. Most training
centers allocate five days to cover this material.
Course design
This is a lecture/lab
course that follows a task-oriented approach. During the many
course exercises you will create a working application from the
ground up. As you learn about various aspects of Domino Designer,
you will immediately apply the concepts and techniques as you
work on your application.
Topic 1: Domino as an Application Server
Application Server
requirements
Designer metaphor
How applications are executed
Client-side code execution
Programming languages
Event-driven language
Adjunct programming tools
Topic 2: Create
Database using Domino Designer
Self-contained design
Three ways to start Designer
Create new database
Server access rights
Advanced Database Options
Database properties
Using database templates
How designs are automatically maintained
Database access rights
Exercise: Create new database
Domino Designer quick tour
Designer Panes
Autocompletion
Search and replace
Programmers Pane properties
Saving the design element
Test the code
Exercise: Database/Bookmark Icon
Designer Bookmarks
Designer Tools
Topic 3: Application
Architecture
Application types
Applications "right" for Notes
Application structure options
Increasing detail
Linear process
Random access
Data source
User Interface
One design, two clients
Designing for both clients
Required design changes to support both clients
Backward compatibility with previous versions
Course project
Topic 4: Design
Pages
Serving static HTML
What is a design Page?
Create Page
Page properties
Exercise: Create Pages
Hotspots
Link Hotspot
Exercise: Link to named element
Computed URL Links for browsers
Doclink Links
Removing a Hotspot
Hotspot button
Action Hotspot
Rollover images
Image maps
Page events
Exercise: Add window titles
Topic 5: Database
Launch Options
Default database
launch property for Notes clients
Default database launch property for browsers
Control database launch
Database Postopen event for Notes clients
Exercise: Database Launch
Topic 6: Page Contents
Orientation
Import HTML
Insert HTML Shared Resource
Pass-Thru HTML
Cascading Style Sheets
CSS attributes of objects
Adding a Style Sheet
Formatted text
Layers
Table type
Nested tables
Create table
Exercise: Add content to Pages
Sections
Pictures
Shared Image Resources
Image resource properties
Exercise: Shared Image Resources
Topic 7: Computed
Page Contents
Hide When
Example Hide When formulas
Text pop-up
Formula pop-up
Computed Text
Exercise: Computed Text
Topic 8: Forms
When to use Forms
instead of Pages
Form is not the document
Design Form
Designer concerns
Exercise: Design new Form
Form properties
Form Name
Cascaded Form names
Accelerator key assignment
Other Form Info tab properties
Defaults tab
Launch tab
Form Background tab
Exercise: Form properties
Non-scrolling header
Features that browsers don't support
Exercise: Form layout
Topic 9: Fields
Purpose of Fields
Add Field
Edit existing Field
Text properties
Field properties
Data types and Field types
Control tab
Advanced tab
Exercise: Add Fields to Product Form
Input width for "Native OS Style" Fields
Standard Fields
Internal Field names
Field names with built-in functionality
Example of reserved Field name: SaveOptions
Example reserved field: Form
Shared Fields
Add Shared Field to Form
Work with Shared Fields
Topic 10: List
Field Properties
Where the choices
come from
Static text list
Keyword synonyms
Formula-based lists
Example lookup
Name lookups
View lookup
Checkbox and Radio button options
Exercise: Field Format and Lists
Refresh on change
Topic 11: Rich
Text Field Properties
Rich Text Fields
Rich Text Field properties
Interoperability warning
Exercise: Modify Body Field
Rich Text Lite
Exercise: Modify Picture Field
Attach files from browser
Detach attached files
Delete attached files
Display image in browser
Topic 12: Form
Actions
Limitations with
Form navigation
Inherent Notes client capabilities
Actions or Hotspots--which to use?
Using @Command
Cross-client @Commands
Differences between Notes and browsers
Action Pane
Working in the Action Pane
Create Action
Action Bar properties
Using HTML or Java applet
Action with Children
System Actions
Shared Actions
Hidden Actions
Exercise: Form navigation using Actions
Syntax guidelines
Simple actions
Topic 13: Views
View Characteristics
View restrictions
Browsers and Views
Folders versus Views
View updates
View size
Create View
View Name
Other Create View properties
Ascertaining the View type
Customize
Exercise: Add Views
Topic 14: View
Properties
View properties
box
Style tab
Advanced tab
Exercise: Change View properties
Views and performance
Topic 15: View
Column Formulas
Adding View columns
Understand the data
Column options
Simple Function
Field name
Formulas
Example formulas
Special View functions
Document statistics
Column totals
Topic 16: View
Column Properties
Open Column properties
box
Column Info tab
Sorting tab
Format tabs
Exercise: Column Formulas and Properties
Exercise: Create AllDocs view
Advanced tab: Column name
Advanced tab: Hide column
Advanced tab: Web links
Quick Search
Topic 17: View
Actions
Appropriate View
Actions
Exercise: View Actions
Topic 18: View
Selection Formulas
Search Builder selection
Conditions options
Select by formula
Time-based selections
Select by user name
Normalizing names
Select by document property
Selection by exclusion
"Fuzzy" selections
(Not Categorized) documents
Exercise: Selection Formulas
Exercise: Sales Rep view
Exercise: Publish status View
Topic 19: Embedded
Views
Embedded View
How to embed a View
Single category view
Exercise: Single Category View
Change the look of all Views for Browsers
Template View override
Topic 20: Calendar
Views
Calendar features
Create a calendar View
Style tab
Font tab
Calendar Format
Two types of entries
Defining the columns
Exercise: Calendar View
Topic 21: Data
Grid Views
View properties
View-level edit caveats
Enabling cell edits
Column programmatic name
Inviewedit event code
NEWENTRY_REQUEST
Cycling through allowable values
Exercise: Create Inventory data grid
Topic 22: Framesets
Default window environment
What are Frames? Framesets?
Create Frameset
Assign Frame content
Example Frameset
What usually goes in the Frames
Linking frames together
Special targets
Special Frame names
Hand coding Framesets
Exercise: Framing the application
Topic 23: Outline
Controls
Default Outline
Custom Outline
Create an Outline
Step 1: Create Outline
Step 2: Embed Outline
Info tab properties
Font tab properties
Background tab properties
Layout tab properties
Look and Feel #1: Plain
Look and Feel #2: Color menu bars
Look and Feel #3: Same graphic
Look and Feel #4: Different graphics
Border tab properties
Exercise: Create and Embed Outline
Special entries
Topic 24: Form
Programming for Notes Clients
Form flow
Form processing for Notes client
Field type and related events
When formulas compute
Exercise: Investigate Field formulas
Entering formulas
Programming rules
What Field formulas contain
@Function syntax
Debugging Field formulas
Default Value formula
Input Translation event
Input Validation event
Computed formula
Exercise: Add Field formulas
Field onBlur event
Field onBlur using Javascript
Language choice for Field operations
Topic 25: Form
Programming for Browsers
Form processing
for browsers
Exercise: Investigate Field formulas in browser
WebQueryOpen Agent
Field behavior
Field validation using Formulas
Dual-client validation formulas
Submit response using $$Return Field
Open a Page or Form after the submit
Useful @functions
Purpose of the WebQuerySave Agent
Create WebQuerySave Agent
Referencing the current document
To save or not to save?
Print statements
Exercise: WebQuerySave Agent
Web Agent errors
Custom error pages for users
Topic 26: Form
Performance
General Form performance
Notes client advantages
Browser Form performance
Unsupported features on browsers
Resources
Topic 27: Field
Data Inheritance
Why inherit data?
Configuring inheritance
Using inheritance
Inheriting data across databases
Browser exceptions
Exercise: Inherit data
Topic 28: Response
Documents
Three types of documents
Designing Response documents
@Commands to create Response documents
Response with reference
URL to create Response document
Viewing Response documents
Designing a hierarchical View
Selecting Response documents in a View
Common columns
Responses only column
Responses only column formula
Indicating Response documents in a View
Exercise: Response documents
Topic 29: Authentication
and User Names
Security model
General observations
Register Notes users
Register browser users
Added browser security
Force browser authentication
Authentication process
Anonymous users
Distinguished Names
"Authenticated Name"
Alternate name
Domino Administrator Responsibilities
Developer responsibilities
Topic 30: Access
Control List
Access Control List
ACL Entries
Add users to the ACL
Acceptable ACL Entries
Standard settings
User Type
Maximum Internet name & password access
Special rights
Roles
Create and assign a role
Enforce local security
Exercise: Define ACL and roles
Topic 31: Form,
View, and Document Security
Form security
View security
Exercise: Design element access
Name storage
@UserName and data type
Authors Fields
Authors Fields you should always include
Readers Fields
Implied readership
Readers/Authors Fields interaction
Author access and replication
@Name
Determining user access
@Author
Determining user role membership
Exercise: Refining access
Topic 32: Controlled
Access Sections
Controlled access
sections refine authorship
Define controlled access section
Controlled access sections and security
Controlled access sections and signed Fields
Topic 33: Field
Security
Editor access to
update
Example: Editor access to update
When to encrypt Fields
Task 1: Create the Secret Key
Task 2: Distribute the key
Task 3: Enable the Field(s) for encryption
Task 4: Associate the key
Encryption caveats
Changing/ removing encryption
Topic 34: Shared
Resources
Using shared resources
Inheriting a shared resource design
Topic 35: Programmed
Table Row Display
Computed table rows
versus Hide When
Programming the table row display
Exercise: Ratings as stars
Topic 36: Subforms
and Embedded Editors
Subforms
Subform examples
Create Subform
Exercise: Create Subform
Computed Subforms
Example: Computed Subform
Insert a computed Subform
Exercise: Computed Subform
Exercise: Fixing a small navigation problem
Embedded Editors
Topic 37: Update
Agents
Agent categories
Four components of every Agent
Create new Agent
Agents run On event trigger
Agents run On schedule trigger
How Formulas operate in Update Agents
Agent storage
Agent execution rights
Trigger: Running the Agent from the menu
Trigger: Running an Agent from the browser
Search: SELECT statements
Search: Full Text Search
Search: Cannot select Response documents
Action: Field operations
Examples: Field and Document-related Actions
Exercise: Fix values for existing documents
Topic 38: Mailing
Documents
Characteristics
of mail-enabled applications
Mail mechanisms
SendTo value
Mailing to a person in your Notes domain
Mailing to a person in another Notes domain
Mailing through gateways
Mailing to a group
Name spoofing
Mailing to a mail-in database
User mail environment
Mail triggers
Trigger 1: Form property
Mailed documents become new documents
Trigger 2: MailOptions field
Mail-related fields
SaveOptions field
Other useful fields
Ensure documents are mailed once
Trigger 3: @Command([MailSend])
Trigger 4: @MailSend without arguments
Exercise: @MailSend without arguments
@MailSend and scheduled Agents
Trigger 5: @MailSend with parameters
Exercise: @MailSend with parameters
Trigger 6: Notes Mail memo
Three mail-enabled models
Model 1: Document routing
Resolving duplicate documents
Model 2: Duty/status change notification
Model 3: Hybrid model
Topic 39: Document
Deletions
Soft deletions
Step 1: Database soft deletions property
Step 2: Create Deletions View
Step 3: Create the Restore and Purge Agents
Step 4: Create the Actions in the Deletions View
Using the SoftDeletions View
Exercise: Soft Deletions View
Soft deletions and security
Topic 40: Full
Text Search
Create full text
index
Full text index properties
Exercise: Create Index
Limitations of Full Text Search
Enable multi-database search
Searching multi database indexes
Server configuration for Domain Search
Topic 41: Database
Rollout
Add Form Window
titles
About/Using This Database
Set Database properties
Verify ACL
Notes client ECLs and signatures
Re-sign the design
Manually change the ECL
Enforcing standard ECLs
Copy database to Domino Server
Database Catalog and Domain Catalog
Libraries
Librarians
Create library
Exercise: Publish application
Notify Users
Topic 42: Design
Maintenance
Creating a Database
Template
Using a Database Template
Default ACL settings
Exercise: Database Templates
Design administration
Create a Design Template
Template Manager
Entire database refresh
Specific design element refresh
Blocking design element refresh/replace
Copy and paste design elements
Manual design refresh
Exercise: Design Templates
Hide design
Design template strategies
One-to-many
One-to-one
Example: One to one
Many-to-one
Where to work
Design Synopsis
FORMS.NTF