integration and coexistence: leveraging lotus & microsoft products to build...
DESCRIPTION
Integration and Coexistence: Leveraging Lotus & Microsoft products to build better solutions. John Head Alex Kassabov PSC Group, LLC. Before We Begin. Please turn off/set to vibrate/mute all Cell Phones Pagers Computers Please remember to fill out your evaluations. What We’ll Cover …. - PowerPoint PPT PresentationTRANSCRIPT
© 2009 by the individual speaker
Integration and Coexistence: Leveraging Lotus & Microsoft products to buildbetter solutions
John HeadAlex Kassabov
PSC Group, LLC
IamLUG 2009 2
Before We Begin
• Please turn off/set to vibrate/mute allCell PhonesPagersComputers
Please remember to fill out your evaluations
IamLUG 2009 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
IamLUG 2009 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
IamLUG 2009 5
Who Are We?
• Alex Kassabov Vice President of Collaboration at PSC Group, LLC Involved in Lotus technology since 1995 Notes R3 – got dragged there kicking and screaming
• Speaker Lotusphere sessions on Desktop Integration Collaboration Summit GRAINTE Chicago Lotus User Group
• Akassabov.wordpress.com
IamLUG 2009
PSC Group, LLC IBM Premium Business Partner for 19+ Years
Microsoft Managed Partner
Notes & Domino 8.5 Design Partner
OpenNTF.org Alliance Member, Steering Committee Company, & Former Host of OpenNTF.org
Winner of 2007 & 2009 Lotus Awards!
Host of the following blogs: Ed Brill’s
(www.edbrill.com) Lotus Design Blog(Mary Beth
Raven)(www.notesdesign.com)
LotusStaffNotes (Brent Peters)(www.lotusstaffnotes.com)
Lotus Connections Team(synch.rono.us)
Lotus Sametime(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)
IamLUG 2009 7
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
IamLUG 2009 8
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
IamLUG 2009 9
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
IamLUG 2009
Integration History• 1994
DDE with Ami Pro• 1996
Notes R4 OLE LotusScript VBA
• 1997 SmartSuite with LotusScript (Word Pro)
• 1998 Notes R5 with COM support
• 2001 Notes Domino 6
• 2004 Notes Domino 6.5 with LS2J and DXL
• 2005 Notes Domino 7 with Web services
• 2007 2007 Office System Lotus Notes/Domino 8 Lotus Symphony
• 2008 Visual Studio 2008 Notes/Domino 8.5
• 2009 Notes/Domino 8.5.1
• 2010 Visual Studio 2010 Office 2010
IamLUG 2009 11
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
IamLUG 2009 12
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
IamLUG 2009 13
Integration from the Notes Client
• Integrating Microsoft Word• Integrating Lotus Symphony Documents• Mail Merge• Integrating Microsoft Excel• Integrating Lotus Symphony Spreadsheets
IamLUG 2009 14
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
IamLUG 2009
Creating a Word Document — “Hello World”
Demo — Example 1
Launch MicrosoftWord and enter
some text
IamLUG 2009
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.
IamLUG 2009
Use the Microsoft 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!
IamLUG 2009
Word Template — Data from Notes
Demo — Example 2
Create a new documentPrompt user
Place data into document
IamLUG 2009
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 languagebinding exists
19
IamLUG 2009
Notes to Writer
Demo — Example 3
“Hello World” fromNotes to
Symphony Documents
20
IamLUG 2009
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!
IamLUG 2009
Mail Merge from Address Book
Demo — Example 4
Generate a mail mergefrom the personalname and address
book
IamLUG 2009
Integration with Microsoft Excel• Working with Excel is very different from Word• The objects we use are different
• In Excel, we tend to move more data from Notes to the application Lots of rows in Excel vs. filling in bookmarks in Word
Microsoft Word Microsoft Excel
Text Position/Cursor Cell
Paragraph Range
Page Worksheet
Document Workbook
IamLUG 2009
Working with Microsoft Excel
Demo — Example 5
Create a spreadsheetfrom Notes data and
generate a chart
IamLUG 2009 25
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
IamLUG 2009
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
IamLUG 2009
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
IamLUG 2009
Demo — Example 6
Word template thatreads a Notes database
via a Web service
IamLUG 2009
Microsoft Excel and XML
Demo — Example 7
Importing Domino datainto a spreadsheet
using XML
IamLUG 2009 30
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#
IamLUG 2009
VSTO 3.0 Project Types
IamLUG 2009
VSTO 3.0 and Microsoft Word and Domino Web Service
Demo — Example 8
Creating a new Worddocument that prompts
the user and fills outDomino data via
Using VSTO
IamLUG 2009 33
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
IamLUG 2009
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
IamLUG 2009
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
IamLUG 2009
ASP.NET Calling Domino via a Web Service
Demo — Example 9
Creating an ASP.NETWeb page that calls
Domino via aWeb service
IamLUG 2009
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
IamLUG 2009
Domino Data in a Grid on an ASP.NET Web Page
• This is what the data will look like in the grid control:
IamLUG 2009
Displaying Domino XML in an ASP.NET Web Page Grid
Demo — Example 10
Creating an ASP.NETWeb page that uses
the grid control to display Domino XML
IamLUG 2009 40
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
IamLUG 2009 41
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
IamLUG 2009 42
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
IamLUG 2009
Google Docs Integration – Posting Documents
Demo — Example 11
Posting Document toGoogle Doc from
Notes
IamLUG 2009 44
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
IamLUG 2009 45
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
IamLUG 2009 46
Real World Integration
• VSTO 3.0 Solution for Microsoft Word Custom Ribbon Implementation Integration with a Notes database for storing information Inserting Graphics into a Document
• More Advanced Solutions PowerPoint Insert Slides Supports Searching
IamLUG 2009
Real World Integration - Demos
Demo — Example 12
Advanced VSTODemos
IamLUG 2009 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
IamLUG 2009 49
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
IamLUG 2009 50
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
IamLUG 2009 51
We Only Scratched the Surface
• There are over 3 hours of content available for this presentation
• Search Slideshare for Lotusphere 2009 JMP2005• 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
IamLUG 2009 52
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
IamLUG 2009 53
Resources (continued)
• OpenOffice.org http://www.openoffice.org
• OpenOffice Developers Guide http://api.openoffice.org/DevelopersGuide/DevelopersGuide.html
• Programming OpenOffice with Visual Basic http://www.kalitech.fr/clients/doc/VB_APIOOo_en.html
IamLUG 2009
Lotus Community Sites
Lotus Greenhouse (greenhouse.lotus.com) is a live community website where you can use Lotus Collaboration
Products for free!
The Lotus Community Podcasts
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
Bleedyellow.com provides community implementations of Lotus Connections and Sametime
IBM’s Official portal for developers including a dedicated section for Lotus (www.ibm.com/developerworks/lotus)
LotusUserGroup.org is the on-line home of the IBM Lotus community for regional and virtual user groups
IamLUG 2009 55
Follow Up
How to contact us:John Head Alex Kassabov
[email protected] [email protected]
Twitter.com/johnhead twitter.com/akassabov
Linkedin.com/in/johndhead Linkedin.com/in/akassabov
Facebook.com/johnhead
Slideshare.com/johnhead