|
|
BOOK EXCERPT
What's New in IBM Lotus Notes/Domino 8 Development: @Formula Language and LotusScript
In this book excerpt, learn about additions to the @Formula language and LotusScript in Lotus Notes/Domino 8, as well as what's ahead.
By Tim Speed, Dick McCarrick, Barry Rosen, Bennie Gibson, Brad Schauf, David Byrd, and Joseph Anderson
PAGE 1 of 1 - 2 - 3 - » Next
Domino Designer 8 includes several enhancements to formula language and LotusScript.
Formula Language Additions
The following are some selected new commands that are available within Notes/Domino 8.
@Command([CopySelectedAsTable]): This new command performs the same action as its menu command counterpart, Edit | Copy As | Table, which copies one or more selected view entries into a table. It places the table of the selected view entries on the clipboard. It also includes a link to each of the documents in the table. This is very useful when sending co-workers links to documents from a database in a pre-formatted table.
@Command([OpenInNewWindow]): This new command allows your formula language code to open a document from a view, folder, or calendar in a new window instead of opening it within a new tab within Lotus Notes.
LotusScript Additions
The following are some selected new classes, methods, and events available within Notes/Domino 8. The NotesProperty and NotesProperyBroker classes, and the Onselect event were added to support the new composite application-programming model.
MarkAllRead and MarkAllUnread methods: Finally, within the NotesView, NotesViewEntryCollection, and NotesViewNavigator classes, two new methods dealing with read/unread marks are available. Using these classes, you can mark documents as having been read or unread using the MarkAllRead or MarkAllUnread methods. These methods will affect the documents within the collection or navigator. There are, of course, Java counterparts available.
NotesDirectory class: Objects created with this new class correspond to the directories on a specific Domino server or Notes client. The objects are contained within a NotesSession object, and they contains one or more NotesDirectoryNavigator objects. The properties in table 2 are available in the NotesDirectory class. Unless otherwise specified, these properties are read-only.
The methods in table 3 are available for the NotesDirectory class.
NotesDirectoryNavigator class: NotesDirectoryNavigator objects are returned by methods of the NotesDirectory class and allow the developer to navigate the items returned by a directory search. The properties in table 4 are available for the NotesDirectoryNavigator class. Unless otherwise specified, these properties are read-only.
The methods in table 5 are available for the NotesDirectoryNavigator class.
NotesProperty class: This class represents a single component property within the composite application. Component properties are data items that a given component produces and the NotesProperty class allows your application to manage the publishing of the defined properties within an application.
The methods for the NotesProperty class are only active when used within the Notes 8 Standard configuration. They are not available when used by applications running on Domino server or from within the Notes 8 Basic configuration.
The properties in table 6 are available for the NotesProperty class. Unless otherwise specified, the properties are read-only.
Table 2: Properties in the NotesDirectory class.
| Property | Type | Description |
| AvailableItems | Variant array | This property is set by the methods LookupNames and LookupAllNames. If a NotesDirectory object has been created but no lookups have been performed with it, this property will be null. |
| AvailableNames | Variant array | This property will contain the names returned from the most recent LookupAllNames or LookupNames call. If a NotesDirectory object has been created but no lookups have been performed with it, this property will be null. |
| AvailableView | String | This property contains the name of the view specified in the most recent LookupAllNames or LookupNames call. If a NotesDirectory object has been created but no lookups have been performed with it, this property will be null. |
| GroupAuthorizationOnly | Boolean | Read/write property. This property controls which directories will be used during lookups. If the property is True, only directories marked "Enable for Group Authorization" will be searched. If set to False, the default, lookups performed will search all directories available. |
| LimitMatches | Boolean | Read/write property. If True, directory lookups will be limited to fifty entries. If False then lookups performed will return all matches. |
| PartialMatches | Boolean | Controls whether or not lookups will match on partial names. If True, partial names will match. If False, the default, lookups will not match on partial names. |
| SearchAllDirectories | Boolean | Read/write property. If True, the default, all directories will be searched during lookups. If False, lookups will cease after the first directory containing the view name specified. |
| Server | String | This property contains the name of the server represented by the instance of NotesDirectory. |
| TrustedOnly | Boolean | Read/write property. This property controls which directories will be used during lookups. If True, lookups will search only directories which contain trust information. If False, the default, the lookups will search all directories. |
| UseContextServer | Boolean | Read/write property. This property controls whether the server of the context database or the server specified in the lookup methods will be used. If True, the server context database will be used. If False, the default, and then the server specified in the lookup method will be used. |
Table 3: Methods for the NotesDirectory class.
| Method | Returns | Description |
| CreateNavigator | NotesDirectoryNavigator | Use to create additional DirectoryNavigators to allow multiple DirectoryNavigators to be used. |
| FreeLookupBuffer | N/A | Since the resultant name lookup buffers can be quite large, this method can be used to free memory in the current lookup buffer, in effect resetting all navigators. Used for memory management. |
| LookupAllNames | NotesDirectoryNavigator | Performs a lookup of designated items contained within the specified view. |
| LookupNames | NotesDirectoryNavigator | Performs a lookup of designated items contained within the specified view for the specified items. |
Table 4: Properties for the NotesDirectoryNavigator class.
| Property | Type | Description |
| CurrentItem | String | This property will contain the current item for the NotesDirectoryNavigator and is updated with subsequent calls of GetNextItemValue and GetNthItemValue methods. |
| CurrentMatch | Long | An index to the current match for the NotesDirectoryNavigator and is updated by subsequent calls to FindFirstMatch, FindNextMatch and FindNthMatch methods. |
| CurrentName | String | The name of the current match indicated by the CurrentMatch property index for NotesDirectoryNavigators created with the LookupNames method. |
| CurrentView | String | Contains the name of the directory view used to create the NotesDirectoryNavigator object. This property is updated when directory lookups are performed. |
| MatchLocated | Boolean | If True, a match was successful. If False, the match was not successful. |
| NameLocated | Boolean | If True, a name was located. If False, the name was not located. |
Table 5: Methods for the NotesDirectoryNavigator class.
| Method | Returns | Description |
| FindFirstMatch | Boolean | Moves the navigator of the first match of the current name in the NotesDirectoryNavigator. Returns True if a match was found otherwise returns False indicating no match was found. |
| FindNextMatch | Boolean | Moves the navigator of the next match of the current name in the NotesDirectoryNavigator. Returns True if a match was found otherwise returns False indicating no match was found. |
| FindNthMatch | Boolean | Moves the navigator of the nth match of the current name in the NotesDirectoryNavigator. Returns True if a match was found, otherwise returns False indicating no match was found. |
| FindFirstName | Long | Moves the navigator to the first name in the NotesDirectoryNavigator returning the number of matches found. |
| FindNextName | Long | Moves the navigator to the next name in the NotesDirectoryNavigator returning the number of matches found |
| FindNthName | Long | Moves the navigator to the nth name in the NotesDirectoryNavigator returning the number of matches found. |
| GetFirstItemValue | Variant | Returns the value of the first item of the current match. |
| GetNextItemValue | Variant | Moves the navigator to the next item within the current match and returns the value of that match. |
| GetNthItemValue | Variant | Moves the navigator to the nth item within the current match and returns the value of that match. |
Table 6: Properties for the NotesProperty class.
| Property | Type | Description |
| Description | String | This class property returns the description for the NotesProperty object. |
| IsInput | Boolean | If True, the property is an input property. If False, the property is an output property. |
| Name | String | This class property returns the name of the NotesProperty. |
| NameSpace | String | This class property returns the namespace for the NotesProperties data-type. |
| Title | String | This class property returns the title of the NotesProperty. |
| TypeName | String | This class property returns the type name of the NotesProperty. When combined with the NameSpace property, it provides a unique identifier for the NotesProperty type. |
| Values | Variant array of Strings, Integer, Real, or NotesDateTime | This read/write class property sets or returns the array of values for the NotesProperty. The array items must be of all the same data type and input properties by definition cannot be set using this property. The Publish method must be called after using this property to set values or the values will not persist. |
PAGE 1 of 1 - 2 - 3 - » Next
Tim Speed is an IBM Certified Systems Architect with IBM Software Services for Lotus. In that capacity, he's responsible for designing, implementing, and supporting various engagements with its clients. Mr. Speed lives in Denton, Texas, and has been an IBM/Lotus employee for more than 12 years in a variety of networking, technical, hardware and software support and consulting positions. He has been working with Notes for more than 15 years focusing on administration roles and infrastructure. He also has international experience with working on infrastructure engagements in Spain, Japan, Hong Kong, Singapore, Malaysia, the UK, and Indonesia.
Dick McCarrick is a freelance writer who has worked extensively with Lotus Notes and Domino over the years. Dick spent more than 15 years with the Lotus Notes and Domino team, initially as a documentation writer, then later with developerWorks: Lotus. Since leaving IBM, he continues to be involved with Notes/Domino, co-authoring three previous books on this product.
Barry Rosen is an Advisory IT Specialist with IBM Software Services for Lotus. During the last two years, Mr. Rosen has worked on several large messaging and migration projects as well as performed Domino upgrades and messaging assessments. Before that he was a Software Engineer in Lotus Support for more than five years. While in support Mr. Rosen was on several teams specializing in mail routing, Lotus Notes Client, calendaring and scheduling, and server core. He focused on clustering, Lotus Notes for the Macintosh, and rooms and resources. Currently Mr. Rosen resides in Houston. Having graduated from the University of Texas at Austin, Mr. Rosen enjoys following Longhorn sports.
Bennie Gibson is an IBM Certified Systems Architect with IBM Software Services for Lotus. In that capacity, he is responsible for managing various engagements with its clients. Mr. Gibson lives in Wake Forest, NC and has been an IBM/Lotus employee for more than 24 years in a variety of sales, consulting, and management roles. He has been working with Notes for more than 10 years focusing on architecture and infrastructure. He also has international experience with working on infrastructure engagements in Malaysia.
Brad Schauf is an IBM Executive I/T Architect with more than 20 years of experience in the computer services and consulting industry. He has experience with enterprise-wide software and messaging and portal deployments, with a concentration on Lotus Notes/Domino messaging infrastructure architecture, application development, and integration as well as WebSphere portal architecture design and deployments. His experience includes API-level application development and lead programmer, enterprise lead for messaging and portal deployments to General Manager including P&L commitments. He was a founder of a successful IBM business partner before joining IBM in 1999.
David Byrd is an IBM Senior Certified Executive IT Architect with IBM Software Services for Lotus from Fayetteville, GA. He has been an IBM/Lotus employee for more than 9 years in a number of consulting positions covering various technology areas. David has a deep background in virtually all areas of Lotus products and technologies covering areas ranging from low-level API development and collaborative application architectures, to security architectures and messaging architectures. His current focus is on Lotus Quickr as well as other team collaboration technologies and its deployment in enterprise customers. He has worked with Lotus Notes and Domino for more than 15 years.
Joseph Anderson is an IBM Certified Senior Managing Consultant from the IBM Software Services for Lotus team. Joseph has worked with Lotus Notes/Domino, Lotus Sametime, and Lotus QuickPlace since the early 1990s, primarily as a consultant. He is currently working with the Competitive Software team focusing on Domino/Notes administration, migration/upgrade, and security. Prior to working in the consulting industry, Joseph worked in the legal industry as a Director of Operations, where he leveraged his Master of Science in Legal Administration from the University of Denver College of Law.
ARTICLE INFO
Web Edition: 2008 Week 20, Doc #19464
FREE ACCESS
Keyword Tags: Application Development, Collaboration, Development, IBM, IBM DB2, IBM Lotus, IBM Lotus Domino, IBM Lotus Notes, IBM WebSphere, IT Networking, Java, Lotus @Formula Language, Lotusscript, LotusScript, Messaging, Portals, Security, Software Development
ADVISORAMA The thing that impresses me the most about America is the way parents obey their children. -- King Edward VIII
|
|