ibm connect 2014 - ad204: what's new in the ibm domino objects: by example
TRANSCRIPT
AD204: What's New in the IBM Domino Objects:
By Example
James Cooper, IBMNathan Barry, IBM
IBMs statements regarding its plans, directions, and intent are subject to change or withdrawal without notice at IBMs sole discretion. Information regarding potential future products is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information mentioned regarding potential future products is not a commitment, promise, or legal obligation to deliver any material, code or functionality. Information about potential future products may not be incorporated into any contract. The development, release, and timing of any future features or functionality described for our products remains at our sole discretion
Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will experience will vary depending upon many factors, including considerations such as the amount of multiprogramming in the users job stream, the I/O configuration, the storage configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve results similar to those stated here.
Please Note
Agenda
Introduction
Calendaring & Scheduling Discussion & Examples
Advanced View Navigation Discussion & Examples
Q & A
Introduced in Notes and Domino 9.0
Create, read, or modify calendar dataUses the iCalendar data format
Encapsulates the complex Domino calendar schema
Implicit scheduling takes care of sending out notifications
Perform common calendar workflow actions on calendar entries or noticesAccept, decline, cancel, etc
Extended in 9.0.1Added switches and methods based on demand will cover changes within
REST calendar service added to Domino out of the box
Calendar and Scheduling APIs
Calendar and Scheduling APIs: Multi-layered
C SDK
Rest ServicesiCal>JSONJava Classes
LotusScript ClassesCore N/D Logic
JavaScript web apps (JSON)IBM API Offering
Design Partners
Web apps using iCalendarNotes/Domino Java pluginsXPages appsTraditional Domino apps
Open Source
iCalendar parsers (iCal4J, libical, etc)OpenNTF projects
JavaScript
iCalendar is text-based calendar information that follows the industry-accepted iCalendar data format, defined in RFC 5545.
Easily created or interpreted using open source (ie. iCal4J)BEGIN:VCALENDARPRODID:-//Nate//MySampleApp//ENBEGIN:VEVENTDTSTART:20140308T140000ZDTEND:20140308T150000ZUID:MyUniqueEventIdentifier_0123456_NatesAppTRANSP:OPAQUESUMMARY:My first event!END:VEVENTEND:VCALENDAR
Calendar and Scheduling APIs: What is iCalendar?
NotesCalendarA representation of a single user's personal calendar
NotesCalendarEntryA representation of a single entry on a user's calendar
NotesCalendarNoticeA representation of a calendar workflow notice that would arrive from another user (usually in the inbox)
Calendar and Scheduling APIs: Backend classes
Read view level data as iCalendar
Get lists of entries or notices that meet criteria
Get a specific entry or notice
Create an entryImplicit scheduling capabilities
New: Create with HTML description
New: Consistent UID->Apptunid mapping
Utility methodsNew: String getApptunidFromUID( String UID)
Calendar and Scheduling APIs: NotesCalendar class
ppt template divider slide 1c-01.png
Create Meeting Demo
Read as iCalendar
Update (with iCalendar)Implicit scheduling capabilities
New: Update with HTML description
New: Informational series updates to repeating meetings
New: Series updates to repeating appointments
New: Smart Sequence updates
Calendar and Scheduling APIs: NotesCalendarEntry class
Take action on a calendar entry or repeating instance/range (without iCalendar):Accept, decline, delete, cancel, delegate, counter, etc
New: Add and/or remove invitees
Open as a documentNew: Ability to open the parent note
Get unprocessed noticesGet any outstanding invitations, reschedules, updates, or cancels from organizer
Calendar and Scheduling APIs: NotesCalendarEntry class
ppt template divider slide 1c-01.png
Update meeting demo
Read a notice as iCalendar
Take action on a calendar notice:Accept, decline, delete, cancel, delegate, counter, accept counter, etc
Get a notice as a Document
Get all unaccepted invitation(s) that correspond to this meeting
Calendar and Scheduling APIs: NotesCalendarNotice class
ppt template divider slide 1c-01.png
Process notices demo
NotesCalendar
String getApptunidFromUID( String UID)
NotesCalendarEntry
String addInvitees( Vector requirednames, Vector optionalNames, Vector fyiNames, String comments, int flags, int scope, String recurID)
NotesCalendarEntry
String removeInvitees( Vector names, String comments, int flags, int scope, String recurID)
NotesCalendarEntry
String modifyInvitees( Vector requirednames, Vector optionalnames, Vector fyinames, Vector removenames String comments, int flags, int scope, String recurID)
New Constants
NotesCalendarEntry:
update()
CS_WRITE_SMARTSEQUENCECS_WRITE_GUARANTEE_NO_RESCHEDULECS_WRITE_PRESERVE_PERSONAL_DATA
New Constants
NotesCalendarEntry:
getAsDocument()
CS_DOCUMENT_ALLOW_PARENT
ppt template divider slide 1c-01.png
Related Methods
Session
Vector Session.freeResourceSearch( DateTime start, DateTime end, String site, int type,int maxresult, String user, int mincapacity, String apptUNID, String server, int outputversion)Type constants:
CAL_RESOURCE_TYPE_ROOMCAL_RESOURCE_TYPE_OTHER
Outputversion constants:AVAILABLERESOURCESLOOKUP_VERSION_0
Session
Session.freeResourceSearch
Output format for initial version:
AVAILABLERESOURCESLOOKUP_VERSION_0Java:Vector of strings, each entry is composite, separated by semicolonResourceName;Capacity;Email; LS:Array of strings, same formatResourceName;Capacity;Email;
AdministrationProcess
String delegateMailFile( String mailfileowner, Vector publicreaders, Vector publicwriters, Vector otherreaders, Vector otherwriters, Vector othereditors, Vector otherdeletors, Vector removefromacl, String mailfilename, String mailserver)
ppt template divider slide 1c-01.png
ViewNavigator Enhancements
Rapid View Navigation
8.52Simple Cache
8.53Cache with Guidance (By Method)
9.01Cache with AutoExpand Guidance
AutoExpand Guidance
Last piece of the Xpage Client display problem
Explicit high speed control over View entry expansion
Inputs:NoteIDs
Expand list
Collapse list
View.setEnableNoteIDsForCategories(boolean enable)
ViewNavigator
AutoExpand Guidance
Normally, NoteIDs are blank for Categories
Helper method:
View.setEnableNoteIDsForCategories(boolean enable)
Helper method:
false:NoteIDCat 1Child 1.18FAChild 1.28FECat 2Child 2.18F2Child 2.28F6
true:NoteIDCat 180000004Child 1.18FAChild 1.28FECat 280000008Child 2.18F2Child 2.28F6
ViewNavigator
AutoExpand Guidance
AutoExpand Guidance
Example:
Cat 1 Child 1.1 Child 1.2 Child 1.3 Child 1.4Cat 2 Child 2.1 Child 2.2 Child 2.3 Child 2.4 Child 2.5Cat 3 Child 3.1
AutoExpand Guidance
Example: expandlist[0]: 0x800000ac (Cat 2)setMaxLevel(0);setAutoExpandGuidance( 10, expandlist, null)
Cat 1 Child 1.1 Child 1.2 Child 1.3 Child 1.4Cat 2 Child 2.1 Child 2.2 Child 2.3 Child 2.4 Child 2.5Cat 3 Child 3.1
AutoExpand Guidance
Example: expandlist[0]: 0x800000ac (Cat 2)setMaxLevel(0);setAutoExpandGuidance( 10, null, expandlist)
Cat 1 Child 1.1 Child 1.2 Child 1.3 Child 1.4Cat 2 Child 2.1 Child 2.2 Child 2.3 Child 2.4 Child 2.5Cat 3 Child 3.1
Cat 1Cat 2 Child 2.1 Child 2.2 Child 2.3 Child 2.4 Child 2.5Cat 3
AutoExpand Guidance Collapsed List
Example:
Cat 1 Child 1.1 Child 1.2 Child 1.3 Child 1.4Cat 2 Child 2.1 Child 2.2 Child 2.3 Child 2.4 Child 2.5Cat 3 Child 3.1
AutoExpand Guidance Collapsed List
Example: collapsedlist[0]: 0x800000ac (Cat 2)setMaxLevel(1);setAutoExpandGuidance( 10, collapsedlist, null)
Cat 1 Child 1.1 Child 1.2 Child 1.3 Child 1.4Cat 2 Child 2.1 Child 2.2 Child 2.3 Child 2.4 Child 2.5Cat 3 Child 3.1
AutoExpand Guidance
Example: collapsedlist[0]: 0x800000ac (Cat 2)setMaxLevel(1);setAutoExpandGuidance( 10, collapsedlist, null)
Cat 1 Child 1.1 Child 1.2 Child 1.3 Child 1.4Cat 2 Child 2.1 Child 2.2 Child 2.3 Child 2.4 Child 2.5Cat 3 Child 3.1
Cat 1 Child 1.1 Child 1.2 Child 1.3 Child 1.4Cat 2Cat 3 Child 3.1
ViewNavigator
Cache Expand/Collapse Guidance
The usual cache requirement applies:
View.setAutoUpdate( false );
ViewNavigator
Cache Guidance/Expand & Collapse
setAutoExpandGuidance(int maxentries,NotesNoteCollection collapsednc,NotesNoteCollection expandednc);
setAutoExpandGuidance(int maxentries,int[ ] collapsednoteids,int[ ] expandednoteids);
Expand & Collapsed Lists
Ways to get them
GetAllDocumentsByKey
DocumentCollection.getNoteIDs
Enumerate ViewNavigator with MaxLevel set
Track Entries based on UI Interactions
Search for them with FTSearch
Formula evaluation in a NoteCollection
Logical operations on multiple DocumentCollections
ppt template divider slide 1c-01.png
Demo: View Navigation usingAutoExpand Guidance
ppt template divider slide 1c-01.png
Demo: AutoExpand Guidancein XPages
Enabling AutoExpand Guidance in XPages
Can be enabled for all Xpages
OR
Per Application
OR
Per page within an Application
Enabling AutoExpand Guidance in XPages
file: /data/properties/xsp.properties(see example: xsp.properties.sample)legacy:xsp.domino.view.navigator=ByPosition
faster:*xsp.domino.view.navigator= ByNoteId
* slight behavior changesimilar to Notes Client
ppt template divider slide 1c-01.png
REST Calendar Service
Included in 9.0.1 (disabled by default)
Exposes calendar functionality over HTTPDe-couples from language and OS requirements
Allows use without a Notes/Domino install
Offers both iCalendar and JSON data formatting, for easier JavaScript parsing
Calendar and Scheduling APIs: REST Calendar Service
ppt template divider slide 1c-01.png
REST demo: Calendar feed
ppt template divider slide 1c-01.png
Q&A
Engage Online
SocialBiz User Group socialbizug.org
Join the epicenter of Notes and Collaboration user groups
Follow us on Twitter
@IBMConnect and @IBMSocialBiz
LinkedIn http://bit.ly/SBComm
Participate in the IBM Social Business group on LinkedIn:
Facebook https://www.facebook.com/IBMSocialBiz
Like IBM Social Business on Facebook
Social Business Insights blog ibm.com/blogs/socialbusiness
Read and engage with our bloggers
Engage Online
ppt template thank you 1-01.pngAccess Connect Online to complete your session surveys using any:
Web or mobile browser
Connect Online kiosk onsite
Copyright IBM Corporation 2014. All rights reserved.
U.S. Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
IBM, the IBM logo, ibm.com, and Domino are trademarks or registered trademarks of International Business Machines Corporation in the United States, other countries, or both. If these and other IBM trademarked terms are marked on their first occurrence in this information with a trademark symbol ( or ), these symbols indicate U.S. registered or common law trademarks owned by IBM at the time this information was published. Such trademarks may also be registered or common law trademarks in other countries. A current list of IBM trademarks is available on the Web at Copyright and trademark information at www.ibm.com/legal/copytrade.shtml
Other company, product, or service names may be trademarks or service marks of others.
Availability. References in this presentation to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. The workshops, sessions and materials have been prepared by IBM or the session speakers and reflect their own views. They are provided for informational purposes only, and are neither intended to, nor shall have the effect of being, legal or other guidance or advice to any participant. While efforts were made to verify the completeness and accuracy of the information contained in this presentation, it is provided AS-IS without warranty of any kind, express or implied. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this presentation or any other materials. Nothing contained in this presentation is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software.All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual environmental costs and performance characteristics may vary by customer. Nothing contained in these materials is intended to, nor shall have the effect of, stating or implying that any activities undertaken by you will result in any specific sales, revenue growth or other results.
Acknowledgements and Disclaimers
ppt template title slide 2-01.png 2014 IBM Corporation
IBM SP 8-bar pos_horizontal-01.png
ppt template content slide 2-01.png
ppt template content slide 2-01.png
ppt template content slide 2-01.png
ppt template content slide 2-01.png
ppt template content slide 2-01.png
ppt template content slide 2-01.png
Click to edit the outline text formatSecond Outline LevelThird Outline LevelFourth Outline LevelFifth Outline LevelSixth Outline Level
2013 IBM Corporation
ppt template title slide 2-01.png 2014 IBM Corporation
IBM SP 8-bar pos_horizontal-01.png