bp110: ibm lotus symphony and you - a developer's perspective

Download BP110: IBM Lotus Symphony and You - A Developer's Perspective

If you can't read please download the document

Upload: john-head

Post on 02-Jun-2015

2.438 views

Category:

Technology


5 download

DESCRIPTION

Lotus Symphony has matured quite a bit the past year, but are you taking full advantage of it in your own applications? This session will provide you the roadmap for integrating Lotus Symphony within your custom applications using the UNO API, Composite Applications, IBM Lotus Expeditor, OLE/COM, and the new LotusScript API that debuts with the current version of Lotus Symphony. We will walk thru each option, review the pros and cons of each, and build samples that demonstrate real-world usage. The session will end with an application that uses multiple integration techniques that you can take home and put to use straight away! This session is designed for those familiar with LotusScript development.

TRANSCRIPT

  • 1.

2. BP110: IBM Lotus Symphony and You - A Developer's Perspective 3. Before we begin

  • Please turn off/set to vibrate/mute all Cell Phones Pagers Computers Please remember to fill out your evaluations

4. Agenda

  • Overview
  • What you get 'out of the box'
  • UNO
    • Understanding
    • LotusScript
  • LotusScript LSX
  • Symphony Toolkit
  • Plug-ins

5. Who are we?

  • John D. Head
  • Director of Enterprise Collaboration at PSC Group, LLC
  • Involved in Lotus technology since 1993
  • Speaker
    • Over 30 sessions at Lotusphere since 1996
    • Speaker at Lotus Developer and ILUG conferences
  • Author
    • Advisor Magazine and other publications on Office and SmartSuite integration with Notes
    • LotusUserGroup.org contributing Author and Forum moderator
  • www.johndavidhead.com

6. PSC Group, LLC

  • IBM Premium Business Partner for 18+ Years
  • Microsoft Managed Partner
  • Notes & Domino 8.5 Design Partner
  • Host of IdeaJam.net
  • Former Host of OpenNTF.org
  • Winner of 2007 & 2009 Lotus Awards!
  • Host of the following blogs:
    • Ed Brills(www.edbrill.com)
    • Alan Lepofskys Notes Tips(www.alanlepofsky.net)
    • Alan Gartenberg - Sametime(www.adamgartenberg.com)
    • Domino Server Team (www.dominoblog.com)
    • Lotus Connections Team
    • (synch.rono.us)
    • Chris Pepin IBM CTOs Office ( www.chrispepin.com )
    • Lotus Usability (Mary Beth Raven) (www.notesdesign.com)

7. The 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

8. Lets take a little poll

  • Who is using
    • Office 97 and earlier
    • Office 2000
    • Office XP
    • Office 2003
    • Office 2007
    • OpenOffice / StarOffice
    • Lotus Symphony
    • iWork
    • Other

9. Agenda

  • Overview
  • What you get 'out of the box'
  • UNO
    • Understanding
    • LotusScript
  • LotusScript LSX
  • Symphony Toolkit
  • Plug-ins

10. What is Lotus Symphony?

  • IBM branded the Notes 8 Productivity Tools as Lotus Symphony
  • Stand-alone Release
  • Symphony 1.0 released Q2 2008
  • IBM is on a 8 week release cycle with Symphony
  • Notes 8.0.2 has Symphony 1.1
  • Symphony 1.2 stand alone available
  • Notes 8.5 has Symphony 1.2

11. Identifying Users

  • Casual- Task Users
    • Common uses of documents, spreadsheets & presentations
    • Mostly viewing and light editing
    • Filling out templates (status reports, etc.)
    • Use out of box with little to no customization
    • Example: Customer service, and other supporting functions
    • Start now!

12. Identifying Users

  • Medium Power Users
    • More robust needs for documents, spreadsheets & presentations
    • Stronger interoperability requirements as need to collaborate with Office users
    • Example: Sales, marketing,
    • Move over time

13. Identifying Users

  • Power & Macro Users
    • Heavy Excel users
    • Third-party application integration
    • Heavy reliance on macros
    • Example: Finance department
    • A target for 2009

14. Lotus Symphony Features

  • Three applications
    • Lotus Symphony Documents
    • Lotus Symphony Presentations
    • Lotus Symphony Spreadsheets
  • Robust and complete feature set
    • Designed for the majority of end users
    • Intuitive interface, easy to learn
    • Multiple file formats supported

15. Lotus Symphony File Formats

  • Additional supported formats
    • Export documents, spreadsheets and presentations to Adobe PDF
    • Import Lotus SmartSuite documents, spreadsheets, and presentations

16. Lotus Symphony Documents

  • Create, edit, & share complex word processing documents
  • Robust feature set including:
    • Formatting options for text, page, paragraph
    • Headers, footers, footnotes, indexes, table of contents
    • Drawing tools
    • Pre-defined document styles
    • Pre-defined fields (i.e., dates, page numbering)

17. 18. Lotus Symphony Presentations

  • Create, edit, and share complex presentations
  • Robust feature set including:
    • Pre-defined presentation templates
    • Slide show mode with animations and page transitions
    • Speaker presentation timing and rehearsal modes
    • Speaker notes
    • Flexible navigation views page by page, text outline, page thumbnail, and speaker note views

19. 20. Lotus Symphony Spreadsheets

  • Create, edit, and share complex spreadsheets
  • Robust feature set includes:
    • Supports conventional row and column format for spreadsheets
    • Spreadsheet sizes up to 256 columns and 65,536 rows
    • Supports up to 256 sheets per spreadsheet
    • Large library of pre-defined calculation functions

21. 22. What About Support?

  • Support Option 1
    • Symphony Embedded Version
    • Passport Advantage support
    • Included with purchase of other products
    • Notes 8
    • Foundations
    • No additional charge
  • Support Option 2
    • Standalone Symphony Free Support
    • Web based moderated forum support
    • Forums monitored by IBM and the community
    • Hints and Tips
    • Developer support forum
  • Support Option 3
    • Symphony Standalone Fee Based Support Offering
    • Passport Advantage support Passport Advantage or Express Contract required
    • $25,000 for up to 20,000 users Limited to 20 technical contacts
    • Worldwide 24x7 Unlimited Incidents

23. Agenda

  • Overview
  • What you get 'out of the box'
  • UNO
    • Understanding
    • LotusScript
  • LotusScript LSX
  • Symphony Toolkit
  • Plug-ins

24. 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

25. OpenOffice.org? StarOffice? Lotus Symphony?

  • StarDivision StarOffice written in the mid 80s
  • Bought by Sun Microsystems in 1999, StarOffice released in August 1999
  • Source code released October 2000
  • OpenOffice.org 1.0 released May 2002, 2.0 in October 2005
  • OpenDocument format becomes international standard ISO/IEC 26300 November 2006
  • IBM Lotus Workplace Productivity Editors released 2005
    • Based on OpenOffice.org 1.1
  • OpenOffice.org 2.2 released March 2007
  • Notes 8 to include IBM Productivity Tools, based on OpenOffice.org 1.1X
  • Lotus Symphony 1.2 Released December 2008

26. What is the ServiceManager?

  • ServiceManager is similar to the NotesSession class
  • It is a factory class that gets you to other places
    • Set SM=CreateObject("com.sun.star.ServiceManager")
  • Think of the ServiceManager as a back-end class, and we want the front end (like NotesUIWorkspace)
    • Set Desktop=SM.createInstance("com.sun.star.frame.Desktop")

27. What Did That Do?

  • Calling the ServiceManager created an Lotus Symphony window, but we need to do more

28. Lets StartLotus Symphony Documents

  • So far we have an Lotus Symphony window, but it doesnt know what application it will be we have to tell it
    • Dim args()
    • Set WriterApplication=Desktop.loadComponentFromURL ("private:factory/swriter","_blank",0,args)
  • Args is a variant array
    • We dont want to pass any parameters, but it must be an array
  • The s in swriter stands for Star
  • Now we have a word processor up and running

29. The Picture So Far

  • Now we have an application open
  • Time to do something!

30. Lets Add Some Text

  • First, we need to get a handle to the text part ofthe document
    • Set WriterText=WriterApplication.getText()
  • Next, we need a cursor position where we can insertthe text
    • Set Cursor=WriterText.createTextCursor()
  • Finally, we can make the traditional greeting
    • Call WriterText.insertString(Cursor,"Hello World!",False)

31. Hello World!

  • After executing all of the code we walked through, this is the result
  • Now lets try it for real

32. Notes toLotus Symphony Documents Demo Example 1 Hello World from Notes to Lotus Symphony Documents pe01832_ 33. The Help Files How to Read Them

  • Objects
  • Interfaces collections of properties
  • In LotusScript you can use methods and properties from any interface
  • In Java and C you have to specify which interface you want to use

34. OpenOffice.org Help Demo Example 2 Walking through help pe01832_ 35. Help from Your Browser

  • You can get a Firefox extension for OpenOffice.org
  • Easier to navigate

36. Mail Merge with OpenOffice.org Writer

  • Just like the other applications, mail merge has itsown URL
    • Set objMailMerge = objServiceManager.createInstance ("com.sun.star.text.MailMerge")
  • Mail merge has seven arguments
    • DocumentURL
    • DataSourceName
    • CommandType
    • Command
    • OutputType
    • OutputURL
    • FileNamePrefix

37. Mail Merge with OpenOffice.org Writer (cont.)

  • Set the seven arguments
    • Set args(1) = OOoNamedValue("DocumentURL", url)
    • Set args(0) = OOoNamedValue("DataSourceName", "mrgdata")
    • Set args(2) = OOoNamedValue("CommandType", 0)
    • Set args(3) = OOoNamedValue("Command", "mrgdata")
    • Set args(4) = OOoNamedValue("OutputType", 2)
      • Output has two options
        • 1 = Send to printer
        • 2 = Save to file
    • Set args(5) = OOoNamedValue("OutputURL", savelocation)
    • Set args(6) = OOoNamedValue("FileNamePrefix", "mailmergeoutput1")

38. Mail Merge with OpenOffice.org Writer (cont.)

  • Finally, call the Execute method to complete themail merge
    • objMailMerge.Execute args()

39. Mail Merge and Notes Demo Example 3 Mail Merge from LotusSymphony pe01832_ 40. Lets StartLotus Symphony Spreadsheets

  • Calc uses a different URL to define the application
    • Set CalcApplication = Desktop.loadComponentFromURL_("private:factory/scalc","_blank",0,args)
  • The command above creates the workbook
  • Next, we need to get the first sheet
    • Set Worksheet=CalcApplication.Sheets.getByName("Sheet1")

41. Lets StartLotus Symphony Spreadsheets(cont.)

  • Finally, we access the cell into which we want toenter text
    • Set cell=Worksheet.getCellByPosition(3,6)
  • We have set the string in a cell, but which cell is it?

42. Notes withLotus Symphony Spreadsheets Demo Example 4 Hello World with Notes and Lotus Symphony Spreadsheets Where will the text go? pe01832_ 43. Notes withLotus Symphony Spreadsheets D7!

  • Why did the text go into cell D7? Didnt we write to cell (3,6)?

44. Rows and Columns Are Numbered from Zero

  • Just like arrays in Notes, the index starts at 0!

45. Introduction toLotus Symphony Presentations

  • Pages contain shapes
  • Shapes can contain text
  • Text is handled just as it is in Lotus Symphony Documents

46. Lets StartLotus Symphony Presentations

  • To create the instance of Impress, call its URL
    • Set ImpressApplication=Desktop.loadComponentFromURL_ ("private:factory/simpress","_blank",0,args)
  • Next, call the getDrawPages function to create the default presentation
    • Set Presentation=ImpressApplication.getDrawPages()
  • To get the first slide, use the getByIndex method
    • Set Slide=Presentation.getByIndex(0)

47. Lets StartLotus Symphony Presentations(cont.)

  • Each layout type has its own number
    • To create a title page, enter the following:
      • Slide.layout=1
  • Finally, we need to get the title and handle it like its a Lotus Symphony Documents text object
    • Set title=Slide.getbyindex(0)
    • Set TitleText=title.getText()
    • Set Cursor=TitleText.createTextCursor()
    • Call TitleText.insertString(Cursor,"Hello World!",False)

48. Lotus Symphony Presentations &Notes - Result 49. Lotus Symphony Presentationsand Notes Demo Example 5 Hello World with Notes and Lotus Symphony Presentations pe01832_ 50. Managing OpenOffice.org Templates

  • How did I get that template in my new dialog?
  • Use the template installation tool
    • Each template is a document
    • Supports OpenOffice.org Writer, Calc, and Impress applications
  • Can also be used as a programmatic template tool
  • Located on OpenNTF.org and on the conference CD

OpenNTF Logo 51. Lotus Symphony Real World Application

  • Using Lotus Symphony as the end point for a real world application
  • Invoicing Application
  • Uses UNO API to generate an editable file in OpenOffice.org format
  • Uses UNO API to generate a read-only file in PDF format

52. Lotus Symphony in Real World Application Demo Example 6 Invoicing Application that Uses Lotus Symphony for edit and read-only files pe01832_ 53. Symphony Edition 820x400.jpg Third-Party Application Support

  • Product vs. Custom Development
  • Both have their place
  • Integra for Notes Symphony Edition
  • Supports Lotus Symphony Spreadsheets
  • Requires 8.0.1 or higher

www.integra4notes.com 54. Integra for Notes Quick Reports to Spreadsheets Demo Example 7 Integra for Notes Symphony Edition Sample pe01832_ 55. Agenda

  • Overview
  • What you get 'out of the box'
  • UNO
    • Understanding
    • LotusScript
  • LotusScript LSX
  • Symphony Toolkit
  • Plug-ins

56. Lotus Symphony LSX

  • For use within Lotus Notes
  • LotusScript based
  • Creates classes and objects much like the Domino Object Model
  • First version will come with Symphony 1.3 and Notes 8.5.1
  • Focus on basic operations in first release
    • Documents
    • Spreadsheets

57. 58. Symphony LSX with Documents Demo Example 8 Symphony LSX integrating Lotus Notes with Documents pe01832_ 59. 60. Symphony LSX with Spreadsheets Demo Example 9 Symphony LSX integrating Lotus Notes with Spreadsheets pe01832_ 61. 62. Symphony LSX with Presentations Demo Example 10 Symphony LSX integrating Lotus Notes with Presentations pe01832_ 63. Symphony Edition 820x400.jpg Third-Party Application Support

  • Integra for Notes Symphony Edition using the LSX
  • Supports Lotus Symphony Documents and Mail Merge
  • Requires 8.5 or higher
  • Winner of the 2009 Lotus Awards CTO Award for EMEA

www.integra4notes.com 64. Integra for Notes Quick Reports to Spreadsheets Demo Example 11 Integra for Notes Symphony Edition LSX Demo pe01832_ 65. Agenda

  • Overview
  • What you get 'out of the box'
  • UNO
    • Understanding
    • LotusScript
    • Java
  • LotusScript LSX
  • Symphony Toolkit
  • Plug-ins

66. Using the Productivity Editor Toolkit

  • Documentation and samples for integrating the Notes 8 Productivity Editors with Notes 8 Standard
  • Lotus Productivity Toolkit 8.0 Windows.exe
  • Download this from IBM Passport Advantage or PartnerWorld
  • Targeted at people who know:
    • Java
    • HTML internals
    • OPF
  • Most of the time you will use this from a Composite Application (CA)

67. Productivity Tools Architecture 68. Automating Lotus Symphony Demo Example 11 Lotus Symphony within a Composite Application pe01832_ 69. Agenda

  • Overview
  • What you get 'out of the box'
  • UNO
    • Understanding
    • LotusScript
    • Java
  • LotusScript LSX
  • Symphony Toolkit
  • Plug-ins

70. Lotus Symphony with Eclipse.org Plug-ins

  • Enable deploying Eclipse plug-ins to Symphony
  • API for accessing Symphony controls and document content
  • Enable UI extensions
    • Menu (add-ins)
    • Toolbar (set of buttons)
    • Stack in side shelf
    • Another window
  • Examples
    • AutoRecognizer
    • Translator
    • Backend integration
    • Customized editor

71. Lotus Symphony Plugins

  • Plugins can extend the functionality of Lotus Symphony
  • Quickr Plugin
    • Acts like the Quickr Plugin for Notes
  • Not the same as Notes plugins or sidebar panels
  • Built using Java via the Eclipse.org platform

72. Lotus Symphony Plugins Demo Example 13 Demonstrating a LotusSymphony Plugin pe01832_ 73. Lotus Symphony Programmability Summary 74. Possible Future for Developers

  • Content model for easy control and content manipulation
  • As editor component in Expeditor solutions
  • Composite application on Symphony
  • Need stand alone composite application editor
  • Interoperability with OpenOffice.org programmability
  • OpenOffice.org 3.x Code Stream Merge
  • UNO API and StarBasic
  • Interoperability with MS Office programmability
  • VBA interpreter
  • Enable plug-ins for Symphony in Notes
  • Symphony in a browser
  • DOM model for accessing content via JavaScript

75. 2009

  • Expanded OS platform support
    • Ubuntu Linux
    • Mac OS X (beta)
  • New functions
    • Mail/Merge
    • Support for Office 2007 file format (read only)
    • Improved pivot table capabilities
    • Macro enablement
  • Continued Focus Items
    • Usability
    • Developer 3rd party application support
    • Performance
  • GA Mac OS X support
  • Full Office 2007 file format support
  • New plug-ins
    • Lotus Connections
  • More enhancements
    • Major enhancements to Data Pilots (Pivot Charts)
    • Lots of changes for developers

Lotus Symphony Roadmap 76. Sessions you should see this week

  • JMP205: Integration of IBM Lotus Notes and Lotus Domino with Microsoft Office, .NET, and IBM Lotus Symphony
    • John Head
    • Loction TBD
  • BP305: The Document Format Dance
    • John Head
    • Location TBD
  • BP111: Reports, Charts, and Graphs 2.0
    • Julian Robichaux & Rob McDonagh
    • Location TBD

77. Project Liberate

  • SW License Optimization Can:
    • Understand how to demonstrate the alternatives to Microsoft EA bundle so your customers could reduce their budget and be able to invest in mission critical projects.
    • Explain Microsoft interdependencies strategy and how customers can be tied without being able to negotiate.
    • Show customers the Real Cost of Microsofts collaboration strategy based on lessons learned from hundreds of customers engagements.
  • [email_address]
  • www.ibm.com/software/info/liberate

Executive Briefings

  • 2 Day on-site briefings
  • Covers the Lotus Symphony story for
    • Executives
    • Administrators
    • Developers
  • Includes a Microsoft Office assessment and strategy white paper

Resources 78. Resources (cont.)

  • LDD Discussions (Notes.Net) http://www-130.ibm.com/developerworks/lotus
  • OpenOffice.orghttp://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
  • John Heads blog http://www.johndavidhead.com
  • Slides and content available from http://www.johndavidhead.com http://www.psclistens.com

79. Resources (cont.)

  • Lotus Symphony website
    • symphony.lotus.com
  • OpenNTF.org the open source Web site for Notes
    • www.openntf.org
  • Integra4Notes Web site
    • www.integra4notes.com
  • PSCs Reporting and Office Integration page
    • www.psclistens.com/enTouchCMS/app/viewCategory? catgId=66

80. Thank You! Questions & Answers Please remember to fill out your evaluation. [email_address] www.johndavidhead.com www.psclistens.com 81. Legal disclaimer

  • IBM Corporation 2008. All Rights Reserved.
  • The information contained in this publication is provided for informational purposes only. While efforts were made to verify the completeness and accuracy of the information contained in this publication, it is provided AS IS without warranty of any kind, express or implied. In addition, this information is based on IBMs current product plans and strategy, which are subject to change by IBM without notice. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this publication or any other materials. Nothing contained in this publication 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.
  • 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. Product release dates and/or capabilities referenced in this presentation may change at any time at IBMs sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way.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.
  • IBM, the IBM logo, Lotus, Lotus Notes, Notes, Domino and Lotusphere are trademarks of International Business Machines Corporation in the United States, other countries, or both. Adobe, the Adobe logo, PostScript, and the PostScript logo are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States, and/or other countries. Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. Microsoft and Windows are trademarks of Microsoft Corporation in the United States, other countries, or both.