Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
MMLUG 2009 Integration And Coexistence Session
1. MWLUG Conference 2009
Empowering the Lotus
Community
Integration and Coexistence:
Leveraging Lotus & Microsoft
products to build better solutions
John Head
IBM Center
PSC Group, LLC
Chicago, IL
August 27-28, 2009
2. Before We Begin
• Please turn off/set to vibrate/mute all
Cell Phones
Pagers
Computers
Please remember to fill out your
evaluations
3. What We’ll Cover …
• Who we are?
• Integration Background
• Integration from the Notes client
• Integration from other applications
• Integration from a web browser
• Integration with Google Docs
• Real World Integration
• Looking forward
• Wrap-up and Q&A
4. Who Are We?
• John D. Head
– Director of Enterprise Collaboration at PSC Group, LLC
– Involved in Lotus technology since 1993
– OpenNTF.org Steering Committee Member and IP Working Group
Chairman
• Speaker
– Over 30 sessions at Lotusphere since 1996
– Speaker at Lotus Developer , ILUG, UKLUG, and other conferences
• Author
– Publications on Office and SmartSuite integration with Notes
– LotusUserGroup.org contributing Author and Forum moderator
– ―Lotus Symphony for Dummies‖ Technical Editor
– ―Self Assessment and Strategy Guide for Migrating from Domino Document
Manager ― Redbook Author
• www.johndavidhead.com twitter.com/johnhead
5. PSC Group, LLC
IBM Premium Business Partner for 19+
Years
Host of the following blogs:
Microsoft Managed Partner Ed Brill’s
(www.edbrill.com)
Notes & Domino 8.5 Design Partner Lotus Design Blog(Mary Beth Raven)
(www.notesdesign.com)
OpenNTF.org Alliance Member, Steering LotusStaffNotes (Brent Peters)
(www.lotusstaffnotes.com)
Committee Company, & Former Host of
Lotus Connections Team
OpenNTF.org
(synch.rono.us)
Lotus Sametime
Winner of 2007 & 2009 Lotus Awards! (www.thesametimeblog.com)
Domino Server Team
(www.dominoblog.com)
Lotus Mashups
(www.mix-and-mash.com)
Chris Pepin
IBM CTO’s Office
(www.chrispepin.com)
6. Demo Databases
• Presentation example database
– Single database with all examples
– You can configure it for your Notes client
– Example numbers in the presentation match those in the
database
• Lotusphere 2009 session database
– From Genii Software
– Updated version inside the demo database
• Personal name and address book
– My demos work with the standard Notes 6, 7, 8, & 8.5
templates
7. Let’s take a little poll …
• Who is using …
– Office 97 and earlier
– Office 2000
– Office XP
– Office 2003
– Office 2007
– Office 2010 Beta
– OpenOffice / StarOffice
– Lotus Symphony
– iWork
– Other
8. What We’ll Cover …
• Who we are?
• Integration Background
• Integration from the Notes client
• Integration from other applications
• Integration from a web browser
• Integration with Google Docs
• Real World Integration
• Looking forward
• Wrap-up and Q&A
9. Integration History
• 1994 • 2004
– DDE with Ami Pro – Notes Domino 6.5 with LS2J and DXL
• 1996 • 2005
– Notes R4 – Notes Domino 7 with Web services
– OLE • 2007
– LotusScript – 2007 Office System
– VBA – Lotus Notes/Domino 8
• 1997 – Lotus Symphony
– SmartSuite with LotusScript (Word • 2008
Pro)
– Visual Studio 2008
• 1998 – Notes/Domino 8.5
– Notes R5 with COM support • 2009
• 2001 – Notes/Domino 8.5.1
– Notes Domino 6 • 2010
– Visual Studio 2010
– Office 2010
10. The Good News
• We have entered the ―Industrial Revolution‖ period of
the Integration Era
• In the ―Medieval Times‖
– DDE with Ami Pro
– NotesSQL was used to get even the most basic of data
– OLE embedding
– Notes F/X
11. The Good News (continued)
• The Renaissance brought us new tools
– OLE automation
– COM automation
– And much more
• The Revolution brings us major changes
– A true competitor to Office
– Visual Studio.NET 2008 and VSTO 3.0
– Code begins to move from inside a document to complete
applications
12. Integration from the Notes Client
• Integrating Microsoft Word
• Integrating Lotus Symphony Documents
• Mail Merge
• Integrating Microsoft Excel
13. Integration from Notes
• From Notes, you will write code to manipulate the
application
• In most cases, you will be converting Visual Basic for
Applications (VBA) code to LotusScript
• The VBA code will be written so it saves in Notes as
LotusScript
• Once you get the knack of converting the code, you
can focus on the process vs. the code
14. Creating a Word Document — ―Hello World‖
Demo — Example 1
Launch Microsoft
Word and enter
some text
15. The Easiest Way to Start
• Microsoft Office provides us with a recorder
• Records all keyboard actions
– Mouse actions are sometimes recorded, so avoid
when possible
• Generates VBA code for you
• Easy way to learn how something is done
– Table is created
– Page settings are set
– etc.
16. Use the MS Constants Database
• Provides a listing of all Microsoft
Office variables and their
converted constants
• Extraction of constants by
John Collidge
• Database built by Tom Duff
• OpenNTF.org project
• Supports Microsoft Office 2000,
XP, 2003, and 2007
• More features planned!
17. Word Template — Data from Notes
Demo — Example 2
Create a new document
Prompt user
Place data into document
18. Introduction to OpenOffice.org
Development
• Designed on an interface-based component model
called Universal Network Objects (UNO)
• UNO definition
– UNO offers interoperability between different programming
languages, different object models, different machine
architectures, and different processes; either in a local
network or even via the Internet
– UNO components can be implemented in, and accessed
from, any programming language for which a UNO language
binding exists
19. Notes to Writer
Demo — Example 3
“Hello World” from
Notes to
Symphony Documents
20. Merging Mail from Notes
• Most requested Notes-to-Office Integration
functionality
• Users have no idea how to get data from
Notes into Word
• Lotus has not provided this functionality …
yet
• Quick win for you — take this code back and
add it to your boss’s personal name and
address book and be the HERO!
21. Mail Merge from Address Book
Demo — Example 4
Generate a mail merge
from the personal
name and address
book
22. Integration with Microsoft Excel
• Working with Excel is very different from Word
• The objects we use are different
Microsoft Word Microsoft Excel
Text Position/Cursor Cell
Paragraph Range
Page Worksheet
Document Workbook
• In Excel, we tend to move more data from Notes to
the application
– Lots of rows in Excel vs. filling in bookmarks in Word
23. Working with Microsoft Excel
Demo — Example 5
Create a spreadsheet
from Notes data and
generate a chart
24. What We’ll Cover …
• Who we are?
• Integration Background
• Integration from the Notes client
• Integration from other applications
• Integration from a web browser
• Integration with Google Docs
• Real World Integration
• Looking forward
• Wrap-up and Q&A
25. Moving to the Other Side
• This part covers the more advanced subjects
– Such as automating Lotus Notes from Microsoft
Office and other technologies
– We will use COM, XML, Web services, and .NET
technologies
– As the title suggests, this part is more technical We
are about to pick up the pace
26. Automation from the Microsoft Side
• Many integration scenarios require that user interaction
start, or solely be, from an application other than Notes
• Many times we will not have the Notes client installed
• We will not be writing LotusScript
– We may call LotusScript through the Notes COM interface
• We need to take advantage of ―new‖ technologies
– XML
– Web services
– .NET
– Managed code
27. Demo — Example 6
Word template that
reads a Notes database
via a Web service
28. Microsoft Excel and XML
Demo — Example 7
Importing Domino data
into a spreadsheet
using XML
29. VSTO Versions
• Visual Studio Tools for Office
– Version 1 = VSTO 2003 with Visual Studio.NET 2003
– Version 2 = VSTO Second Edition with Visual Studio.NET
2005
– Version 3 = VSTO 3.0 with Visual Studio.NET 2008
• Unless you are forced too, only use VSTO 3.0
• VSTO allows for VB.NET and C#
– PSC has moved to C# for all our development
– C# is more powerful
– More third-party tools available for C#
31. VSTO 3.0 and Microsoft Word and Domino Web Service
Demo — Example 8
Creating a new Word
document that prompts
the user and fills out
Domino data via
Using VSTO
32. What We’ll Cover …
• Who we are?
• Integration Background
• Integration from the Notes client
• Integration from other applications
• Integration from a web browser
• Integration with Google Docs
• Real World Integration
• Looking forward
• Wrap-up and Q&A
33. Ways to Add Domino Functionality to ASP.NET
• Using Domino Web services
• Using Domino Web agents and XML
• NOTE: Selecting the right option is dependent on the
Domino Server version and the developer’s skill
34. ASP.NET Calling a Domino Web Service
• We can call the same Domino Web service we have
used before
• ASP.NET will import the Web service
• Code behind the button will be virtually the same as
when ASP.NET called Domino via COM
35. ASP.NET Calling Domino via a Web Service
Demo — Example 9
Creating an ASP.NET
Web page that calls
Domino via a
Web service
36. ASP.NET Can Also Work with Domino XML
• ASP.NET can display Domino data in a great grid
control
• Steps to make this happen:
– Drag a GridView data control onto your page
– An XMLDataSource object is automatically added
– The XMLDataSource is associated with the GridView
control
– Set the DataFile property of the XMLDataSource to the
XML agent
37. Domino Data in a Grid on an ASP.NET Web Page
• This is what the data will look like in the grid
control:
38. Displaying Domino XML in an ASP.NET Web Page Grid
Demo — Example 10
Creating an ASP.NET
Web page that uses
the grid control
to display Domino XML
39. Microsoft SharePoint Integration
• Integration at the Notes client
– Mainsoft Sharepoint Integrator
• Integration with Domino data
– A combination of
• VSTO
• Domino XML
• Some magic :-)
• Samples inspired by Gary Devendorf @
Microsoft
• Demo in download database
40. What We’ll Cover …
• Who we are?
• Integration Background
• Integration from the Notes client
• Integration from other applications
• Integration from a web browser
• Integration with Google Docs
• Real World Integration
• Looking forward
• Wrap-up and Q&A
41. Google Docs Integration
• Higher degree of difficulty
• Java code integrated with the Notes 8
and 8.5 Standard Clients
– Eclipse.org plug-ins
• A sidebar application that displays the
documents
– Just like Quickr!
• This sample is not for the timid!
• There is also a C# library available
42. Google Docs Integration – Posting Documents
Demo — Example 11
Posting Document to
Google Doc from
Notes
43. What We’ll Cover …
• Who we are?
• Integration Background
• Integration from the Notes client
• Integration from other applications
• Integration from a web browser
• Integration with Google Docs
• Real World Integration
• Looking forward
• Wrap-up and Q&A
44. Real World Integration
• Real World Use Cases
• Zain Africa Challenge Application
– www.zainafricachallenge.com
• PSC won the 2009 Best Philanthropic Lotus Award for this solution
• Integration Samples
– Excel for reporting
– Word for Scripts
– Integra for XML export
46. What We’ll Cover …
• Who we are?
• Integration Background
• Integration from the Notes client
• Integration from other applications
• Integration from a web browser
• Integration with Google Docs
• Real World Integration
• Looking forward
• Wrap-up and Q&A
47. Looking Forward
• 2009
– Lotus Symphony Toolkit with Notes 8.5.1
• LotusScript and Java
• Requires 8.5.1 Client
• Full automation API
– XPages in the Notes Client in 8.5.1
• Automation from the web
• 2010
– Visual Studio 2010 with VSTO 4
– Office 2010
• Backstage
48. What We’ll Cover …
• Who we are?
• Integration Background
• Integration from the Notes client
• Integration from other applications
• Integration from a web browser
• Integration with Google Docs
• Real World Integration
• Looking forward
• Wrap-up and Q&A
49. We Only Scratched the Surface
• There are over 3 hours of content available
for this presentation
• Search Slideshare for Lotusphere 2009
JMP205
• Over 25 demos including
– Symphony Spreadsheets
– Microsoft PowerPoint
– Symphony Presentations
– Microsoft Project
– Microsoft Visio
– Microsoft InfoPath
– ASP.NET and COM
– Google Docs consuming Domino XML
50. Resources
• Microsoft Office developer’s Web site
– http://msdn2.microsoft.com/en-us/office/default.aspx
• Microsoft Developer Network
– http://msdn.microsoft.com
• Microsoft Office blog listing
– http://msdn2.microsoft.com/en-us/office/aa905342.aspx
• PSC’s Reporting and Office Integration page
– www.psclistens.com/enTouchCMS/app/viewCategory?
catgId=66
52. Lotus Community Sites
Planet Lotus (www.planetlotus.org) is an aggregation of Lotus related blogs
and news
IdeaJam (www.ideajam.net) is a place where people can post and share their
ideas, and gauge the marketability, popularity and viability with input from
others
OpenNTF (www.openntf.org) is a site devoted to getting groups of individuals
all over the world to collaborate on Lotus Notes/Domino applications and
release them as open source
IBM’s Official portal for developers including a dedicated section for Lotus
(www.ibm.com/developerworks/lotus)
Bleedyellow.com provides community implementations of
Lotus Connections and Sametime
Lotus Greenhouse (greenhouse.lotus.com) is a live
community website where you can use Lotus Collaboration
Products for free!
LotusUserGroup.org is the on-line home of the IBM Lotus
community for regional and virtual user groups
The Lotus Community Podcasts
53. Follow Up
How to contact us:
John Head
jhead@psclistens.com
Twitter.com/johnhead
Linkedin.com/in/johndhead
Facebook.com/johnhead
Slideshare.com/johnhead