Published on

  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Get better logos for this slide Complex, cool integration ..stuff that can not be done, we do it and make it work - psc does a good job of not what people need us to do, its how we work …
  • ‘ we are not talking about Office 2007 at this time because the code is changing so fast
  • Picture (someone raising their hand)
  • Timeline w/ logos
  • 2 slides … the medieval times (bad graphic of plague), second slide about he renaissance w/ picture of da vinci and why
  • Technology improvments … but we can now focus integration on end user
  • Get rid of, talk to topic on here on slide before
  • Screenshots of demos
  • Screenshot of action in PNAB – absract size
  • Funny picture for limitations
  • Alphabet soup picture
  • Class description – cover what a class is, how easy it is to build one
  • Lead in to smart documents
  • Reiterate number of examples
  • Bp205

    1. 1. BP205 - The Integration Revolution: Microsoft Office 2007 with IBM Lotus Notes and Domino John D. Head
    2. 2. Before we begin … <ul><li>Please turn off/set to vibrate/mute all Cell Phones Pagers Computers Please remember to fill out your evaluations </li></ul>
    3. 3. Who is John D. Head? <ul><li>Offering and Development Manager for frameworks at PSC Group, LLC </li></ul><ul><li>Involved in Lotus technology since 1993 </li></ul><ul><li>Speaker for over 20 sessions at Lotusphere since 1996 </li></ul><ul><li>Speaker at Advisor conferences </li></ul><ul><li>IBM Lotus Notes/Domino Certified </li></ul><ul><li>Author for Advisor Magazine and other publications on Office and SmartSuite integration with Notes </li></ul><ul><li>LotusUserGroup.org contributing Author and Forum moderator </li></ul><ul><li>Blog with articles </li></ul><ul><ul><li>www.johndavidhead.com </li></ul></ul>
    4. 4. PSC Group, LLC <ul><li>IBM Premium Business Partner for 15+ Years </li></ul><ul><li>Microsoft Gold Partner </li></ul><ul><li>Winner 2007 Lotus Award </li></ul><ul><li>Notes 8 Design Partner </li></ul><ul><li>Host of OpenNTF.org </li></ul><ul><li>Host of the following blogs: </li></ul><ul><ul><li>Mike Rhodin – Lotus GM (www.mikerhodin.com) </li></ul></ul><ul><ul><li>Ed Brill’s ( www.edbrill.com ) </li></ul></ul><ul><ul><li>Alan Lepofsky’s Notes Tip’s ( www.alanlepofsky.net ) </li></ul></ul><ul><ul><li>Alan Gartenberg - Sametime ( www.adamgartenberg.com ) </li></ul></ul><ul><ul><li>Jeff Eisen – Hannover ( www.jeffeisen.com ) </li></ul></ul><ul><ul><li>Domino Server Team ( www.dominoblog.com ) </li></ul></ul><ul><ul><li>Chris Pepin – IBM CTO’s Office (www.chrispepin.com) </li></ul></ul>www.PSCListens.com
    5. 5. Purpose <ul><li>Present new ways to integrate </li></ul><ul><li>Utilize new features in Visual Studio.NET 2005 and Visual Studio Tools for Office (including VSTO SE) </li></ul><ul><li>Take advantage of Notes & Domino 7 functionality </li></ul><ul><li>Discuss the impact of Notes & Domino 8 on Office Integration </li></ul><ul><li>Demonstrate some of the possibilities </li></ul>
    6. 6. A word of warning … <ul><li>Expect lots of Code !!! </li></ul><ul><li>This session starts out basic … and then gets advanced very fast! </li></ul><ul><li>If you have never programmed LotusScript of VBA … </li></ul><ul><li>Updated Jumpstart from 2006 for Office 2007 </li></ul>
    7. 7. A little poll <ul><li>Who is using … </li></ul><ul><ul><li>Office 97 and earlier </li></ul></ul><ul><ul><li>Office 2000 </li></ul></ul><ul><ul><li>Office XP </li></ul></ul><ul><ul><li>Office 2003 </li></ul></ul><ul><ul><li>Office 2007 </li></ul></ul><ul><ul><li>OpenOffice.org / StarOffice </li></ul></ul><ul><ul><li>Office for the Mac </li></ul></ul><ul><ul><li>Microsoft Works </li></ul></ul><ul><ul><li>iWorks or Appleworks </li></ul></ul><ul><ul><li>SmartSuite </li></ul></ul><ul><ul><li>Other </li></ul></ul>
    8. 8. Before I continue … <ul><li>IBM has given me permission to demonstrate Notes 8 </li></ul><ul><li>PSC is a Lotus Notes and Domino 8 Design Partner </li></ul><ul><li>The build I am showing is about 3 weeks old </li></ul><ul><li>Public Beta is coming very soon (1Q 2007) </li></ul><ul><li>Please bear with me if we see any crashes </li></ul>
    9. 9. Agenda <ul><li>Getting Started </li></ul><ul><li>EXAMPLE 1 – Word and Lotus Notes “ Hello World ” </li></ul><ul><li>EXAMPLE 2 – Word 2007 Demo </li></ul><ul><li>EXAMPLE 3 – Mail Merge </li></ul><ul><li>EXAMPLE 4 – Working with Excel </li></ul><ul><li>EXAMPLE 5 – Working with PowerPoint </li></ul><ul><li>EXAMPLE 6 – Working with Project </li></ul><ul><li>Web Services </li></ul><ul><li>EXAMPLE 7 – Word and Web Services </li></ul><ul><li>EXAMPLE 8 – InfoPath </li></ul><ul><li>EXAMPLE 9 – Office Template Installation </li></ul><ul><li>XML, ODF, and OOXML </li></ul><ul><li>EXAMPLE 10 – Using XML with Excel </li></ul><ul><li>EXAMPLE 11 – VSTO </li></ul><ul><li>Question and Answers </li></ul>
    10. 10. The Demo Databases <ul><li>BP205 Example Database </li></ul><ul><ul><li>Single database with all examples </li></ul></ul><ul><ul><li>You can configure it for your Notes client </li></ul></ul><ul><ul><li>Example Numbers in the Presentation match to those in the database </li></ul></ul><ul><li>Lotusphere 2007 Session Database </li></ul><ul><ul><li>Developed By Genii Software </li></ul></ul><ul><ul><li>You can download and schedule your LS 2007 experience from http://www.geniisoft.com/showcase.nsf/LS2007_SessionsDB </li></ul></ul><ul><ul><li>I have added some design elements for this session </li></ul></ul><ul><li>Personal Name and Address Book </li></ul><ul><ul><li>My demos work with the standard Notes 7 and 8 templates </li></ul></ul>
    11. 11. Integration History <ul><li>1994 </li></ul><ul><ul><li>DDE with Ami Pro </li></ul></ul><ul><li>1996 </li></ul><ul><ul><li>Notes R4 </li></ul></ul><ul><ul><li>OLE </li></ul></ul><ul><ul><li>LotusScript </li></ul></ul><ul><ul><li>VBA </li></ul></ul><ul><li>1997 </li></ul><ul><ul><li>SmartSuite with LotusScript (Word Pro) </li></ul></ul><ul><li>1998 </li></ul><ul><ul><li>Notes R5 with COM support </li></ul></ul><ul><li>2001 </li></ul><ul><ul><li>Notes Domino 6 </li></ul></ul><ul><li>2004 </li></ul><ul><ul><li>Notes Domino 6.5 with LS2J and DXL </li></ul></ul><ul><li>2005 </li></ul><ul><ul><li>Notes Domino 7 with web services </li></ul></ul><ul><li>2007 </li></ul><ul><ul><li>2007 Office System </li></ul></ul><ul><ul><li>Lotus Notes/Domino 8 </li></ul></ul>
    12. 12. The Good News <ul><li>We are at the end Renaissance of the Integration Era </li></ul><ul><li>Via Revolution! </li></ul><ul><li>In the “Medieval Times” </li></ul><ul><ul><li>DDE with Ami Pro </li></ul></ul><ul><ul><li>NotesSQL was used to get even the basic of data </li></ul></ul><ul><ul><li>OLE Embedding </li></ul></ul><ul><ul><li>Notes F/X </li></ul></ul><ul><li>The Renaissance brought us new tools </li></ul><ul><ul><li>Visual Studio.Net </li></ul></ul><ul><ul><li>Visual Studio Tools for Office </li></ul></ul><ul><ul><li>XML </li></ul></ul><ul><ul><li>Web Services </li></ul></ul><ul><li>The Revolution blurs the lines … </li></ul>
    13. 13. Integration in 2007 <ul><li>Proprietary Technologies are being replaced </li></ul><ul><ul><li>Moving to standards-based </li></ul></ul><ul><ul><li>Document formats that are “open” </li></ul></ul><ul><ul><li>Web Services </li></ul></ul><ul><li>No Longer limited to OLE and COM </li></ul><ul><li>Integration without needing local data </li></ul><ul><ul><li>Notes Client not required </li></ul></ul><ul><li>XML is the foundation </li></ul><ul><li>Web Services allow for new types of applications </li></ul>
    14. 14. Integration in 2007 (cont) <ul><li>New applications and tools </li></ul><ul><li>Difficulty scale increasing drastically </li></ul><ul><li>Limitations being removed </li></ul><ul><ul><li>Speed </li></ul></ul><ul><ul><li>Data Size </li></ul></ul><ul><ul><li>Presentation Options </li></ul></ul><ul><li>Integration should always focus on the end user! </li></ul>
    15. 15. Integration from Notes <ul><li>From Notes, we will write application code to manipulate the application </li></ul><ul><li>This application code will be modified so it saves in Notes </li></ul><ul><li>In most cases, you will be converting Visual Basic for Applications (VBA) code to LotusScript </li></ul>
    16. 16. EXAMPLE 1 Creating a Word Document – “Hello World” <ul><li>Launch Microsoft Word </li></ul><ul><li>Enter some text </li></ul>
    17. 17. Creating a Word Document <ul><li>Must create an instance of the application object first </li></ul><ul><li>All applications that support COM have object names </li></ul><ul><li>Finding the object name … </li></ul><ul><ul><li>Application Documentation </li></ul></ul><ul><ul><li>Registry </li></ul></ul><ul><li>Never use version specific application object names </li></ul><ul><ul><li>Good – Word.application </li></ul></ul><ul><ul><li>Bad – Word.application.11 </li></ul></ul><ul><ul><li>When the application upgrades, you have to modify your code </li></ul></ul><ul><li>Set hwd = CreateObject(&quot;Word.Application&quot;) </li></ul>
    18. 18. Creating a Word Document <ul><li>Must follow the applications object model </li></ul><ul><ul><li>Word.application </li></ul></ul><ul><ul><ul><li>Documents </li></ul></ul></ul><ul><ul><ul><ul><li>Document </li></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Paragraph </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Bookmark </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>CustomDocumentProperties </li></ul></ul></ul></ul></ul><ul><ul><li>If accessing the current open document, use </li></ul></ul><ul><ul><ul><li>Application.ActiveDocument </li></ul></ul></ul><ul><ul><ul><li>Application.ActiveWorkbook </li></ul></ul></ul><ul><ul><ul><li>Application.ActivePresentation </li></ul></ul></ul><ul><ul><ul><li>Etc </li></ul></ul></ul><ul><ul><li>All Applications have a Object Map in Help </li></ul></ul>
    19. 19. What’s up with the recorded syntax? <ul><li>Selection.TypeText Text:=&quot;this is new text&quot; </li></ul><ul><li>Selection.TypeParagraph </li></ul><ul><li>Selection.TypeParagraph </li></ul><ul><li>Selection.Font.Bold = wdToggle </li></ul><ul><li>Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter </li></ul><ul><li>Selection.TypeText Text:=&quot;this is more text“ </li></ul><ul><li>Saving LotusScript with wdToggle and wdAlignParagraphCenter fails! </li></ul><ul><li>Need to replace VBA constants with raw values </li></ul><ul><ul><li>Write a macro </li></ul></ul><ul><ul><ul><li>Msgbox [constantname] </li></ul></ul></ul>
    20. 20. Microsoft Constants Database <ul><li>Provides a listing of all Microsoft Office Variables and their converted constants </li></ul><ul><li>Extraction of Constants by John Collidge </li></ul><ul><li>Database built by Tom Duff </li></ul><ul><li>Now an OpenNTF.org project </li></ul><ul><li>Supports Microsoft Office 2000, XP, 2003, and 2007 </li></ul><ul><li>More features planned! </li></ul>
    21. 21. EXAMPLE 2 Word 2007 Demo <ul><li>Create a new document </li></ul><ul><li>Prompt User to select something </li></ul><ul><li>Place data into document </li></ul><ul><li>Let’s look see the demo </li></ul><ul><li>Demo database is the “Lotusphere Sessions” database – used for most of the demos </li></ul><ul><ul><li>Available for download </li></ul></ul>
    22. 22. EXAMPLE 3 Mail Merge from Address Book <ul><li>Most requested Notes to Office integration functionality </li></ul><ul><li>Users have no idea how to get data from Notes into Word </li></ul><ul><li>Lotus has not provided this functionality … yet </li></ul><ul><li>Quick win for you – take this back and add it to your boss’ Personal Name and Address Book and be the HERO! </li></ul>
    23. 23. Mail Merge <ul><li>Mail Merge is version specific </li></ul><ul><ul><li>One version for Word 2000 and before </li></ul></ul><ul><ul><li>One version for Word XP </li></ul></ul><ul><ul><li>One version for Word 2003 </li></ul></ul><ul><ul><ul><li>Minor change on closing documents in 2003 </li></ul></ul></ul><ul><ul><li>New version for Word 2007 </li></ul></ul><ul><li>Sample of Office 2007 Mail Merge </li></ul>
    24. 24. Mail Merge - Details <ul><li>Let’s look at the code </li></ul><ul><li>Mail Merge object allows for user interaction </li></ul><ul><li>Select what pieces of the Mail Merge Wizard the user sees </li></ul><ul><li>Interaction is your choice! </li></ul>
    25. 25. EXAMPLE 4 Working with Microsoft Excel <ul><li>Build an Excel spreadsheet with data from Notes </li></ul><ul><li>Use Excel Charting functionality </li></ul><ul><li>Let’s see the demo </li></ul><ul><li>Let’s see the code </li></ul>
    26. 26. EXAMPLE 5 Working with PowerPoint <ul><li>Once you learn how to move data to the application, all you have to do is learn the object model for that application </li></ul><ul><li>Demo from Personal Address Book </li></ul><ul><li>Demo from Sessions Database </li></ul>
    27. 27. EXAMPLE 6 Working with Project <ul><li>Microsoft Project’s COM API is the ‘hardest’ of all the Office Applications </li></ul><ul><li>Syntax is very different </li></ul><ul><li>Demo from Tasks in Notes Mail File </li></ul><ul><li>Demo of Export with Session Database </li></ul>
    28. 28. Limitations with traditional methods <ul><li>Notes Client must be installed </li></ul><ul><li>Must have understanding of </li></ul><ul><ul><li>Notes Object Model </li></ul></ul><ul><ul><li>Notes Storage Model </li></ul></ul><ul><li>Can be slow with large amounts of data </li></ul>
    29. 29. Web Services <ul><li>Self-contained application published and invoked from web </li></ul><ul><li>Based on XML </li></ul><ul><li>Uses WSDL and SOAP </li></ul><ul><li>Designed for machine-to-machine interaction </li></ul><ul><li>Advantages </li></ul><ul><ul><li>Connects various applications running on different platforms </li></ul></ul><ul><ul><li>Use open standards and protocols </li></ul></ul><ul><ul><li>Use HTTP bypassing firewall and other security measures </li></ul></ul><ul><li>Disadvantages </li></ul><ul><ul><li>Poor performance as opposed to DCOM </li></ul></ul>
    30. 30. First things first <ul><li>First, you need to build a Web Service </li></ul><ul><li>They can be written using LotusScript, Java or importing WSDL </li></ul><ul><li>They are very similar to an agent </li></ul><ul><li>To be able to write a web service, you must know how to write a Class </li></ul>
    31. 31. Web Service Classes <ul><li>Example of a simple class </li></ul><ul><li>Class GetPersonInfo </li></ul><ul><li>Sub New </li></ul><ul><li>End Sub </li></ul><ul><li>Public Function GetEmailAddress(personname As String) As String </li></ul><ul><li>End Function </li></ul><ul><li>Public Function GetPhoneNumber(personname As String) As String </li></ul><ul><li>End Function </li></ul><ul><li>End Class </li></ul>
    32. 32. Lotusphere Sessions Web Service
    33. 33. EXAMPLE 7 Word 2007 Demo – Web Services <ul><li>Create a new document </li></ul><ul><li>Prompt User to select something </li></ul><ul><li>Place data into document </li></ul><ul><li>Let’s look see the demo </li></ul><ul><li>Same demo as the Word 2007 COM demo </li></ul><ul><li>Different Technology </li></ul><ul><li>Get to the same place with different technique </li></ul><ul><li>Remember, it is not how you build it, but how the user experiences it </li></ul>
    34. 34. EXAMPLE 8 InfoPath <ul><li>Using the Sessions database </li></ul><ul><li>Uses a Web Service </li></ul><ul><li>Stand-alone application </li></ul><ul><li>Let’s look at the demo and code This demo uses data and techniques from InteropTips.com </li></ul>
    35. 35. EXAMPLE 9 Office Templates <ul><li>How did I get that template in my New dialog? </li></ul><ul><li>Template Installation Tool </li></ul><ul><ul><li>Each template is a document </li></ul></ul><ul><ul><li>Supports all Office 2000 thru 2007 applications </li></ul></ul><ul><li>Can also be used as a programmatic template tool </li></ul><ul><li>Located on OpenNTF.org </li></ul><ul><li>Let’s see the demo </li></ul>
    36. 36. Office 2007 and XML <ul><li>Office 2007 XML is a now a Standard </li></ul><ul><ul><li>Open XML </li></ul></ul><ul><li>Many documents can be stored as XML </li></ul><ul><ul><li>Options to save only data </li></ul></ul><ul><li>Import data from XML file </li></ul><ul><li>Specific/Import XML Schema </li></ul><ul><li>Transform XML with XML Style Sheets </li></ul>
    37. 37. How Domino Data looks as XML
    38. 38. EXAMPLE 10 Using XML with Excel <ul><li>Read XML from a Notes Database </li></ul><ul><li>XML generated via Agent in Notes Database </li></ul><ul><li>Chart the data using Excel charting tools </li></ul><ul><li>Works with Domino 5.X, 6.X, 6.5.X, 7, and 8 </li></ul>
    39. 39. Visual Studio.NET <ul><li>Microsoft Development Environment </li></ul><ul><li>Supports Multiple Languages </li></ul><ul><ul><li>VB.NET </li></ul></ul><ul><ul><li>C# </li></ul></ul><ul><ul><li>Etc </li></ul></ul><ul><li>Support for WinForms </li></ul><ul><li>Uses .NET Security </li></ul>
    40. 40. Visual Studio Tools for Office <ul><li>Addin for Visual Studio.NET </li></ul><ul><li>Adds support for </li></ul><ul><ul><li>Word </li></ul></ul><ul><ul><li>Excel </li></ul></ul><ul><ul><li>InfoPath </li></ul></ul><ul><ul><li>Outlook </li></ul></ul><ul><li>Can develop in </li></ul><ul><ul><li>Visual Basic </li></ul></ul><ul><ul><li>C# </li></ul></ul><ul><li>VSTO Second Edition adds Application Add-ins for Office 2007 </li></ul>
    41. 41. EXAMPLE 11 Word 2007 Demo with VSTO <ul><li>Same demo as the Word 2007 Web Services demo </li></ul><ul><li>Build in VS.Net using VSTO </li></ul><ul><li>Get to the same place with different technologies </li></ul><ul><li>Remember, it is not how you build it, but how the user experiences it </li></ul>
    42. 42. Office 2007 Introduces Much More
    43. 43. <ul><li>Notes/Domino 7 brought web services into our world </li></ul><ul><li>Notes/Domino 8 will make web services ‘normal’ in our applications </li></ul><ul><ul><li>Web Service Consumption </li></ul></ul><ul><li>Integration will allow the end user to determine which application they live in </li></ul>The Future
    44. 44. At Lotusphere2007 <ul><li>In the Product Showcase </li></ul><ul><ul><li>PSC Group, LLC – booth 277 </li></ul></ul><ul><ul><li>Integra for Notes – booth 610 </li></ul></ul>
    45. 45. Wrap-up <ul><li>Demonstrated multiple technology paths to reach the same goal </li></ul><ul><li>Discussed COM/OLE, Web Services, and XML </li></ul><ul><li>Walked thru lots of examples </li></ul><ul><li>Hopefully gave you ideas on how to add value to your applications </li></ul>
    46. 46. Resources <ul><li>MSDN </li></ul><ul><li>http://msdn.microsoft.com </li></ul><ul><li>InteropTips.com </li></ul><ul><li>http://interoptips.com </li></ul><ul><li>John Head’s blog </li></ul><ul><li>http://www.johndavidhead.com </li></ul><ul><li>Slides and content available from </li></ul><ul><li>http://www.psclistens.com </li></ul>
    47. 47. <ul><li>Thank you! </li></ul><ul><li>Questions & Answers </li></ul><ul><li>Please remember to fill out your evaluation. </li></ul><ul><li>[email_address] </li></ul><ul><li>www.johndavidhead.com www.psclistens.com </li></ul>