ibm connect 2014 - ad204: what's new in the ibm domino objects: by example

Download IBM Connect 2014 - AD204: What's new in the IBM Domino Objects: By Example

If you can't read please download the document

Upload: ibm-connections-developers

Post on 16-Apr-2017

22.790 views

Category:

Technology


5 download

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