Jmp108

959 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
959
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
15
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Jmp108

  1. 1. JMP108 The Glue That Binds: Integrating IBM Lotus Notes & Domino with Microsoft Office and other Applications John Head – PSC Group, LLC enTouch Framework Offerings and Development Manager
  2. 2. Before we begin … <ul><li>Please turn off/set to vibrate/mute all </li></ul><ul><ul><li>Cell Phones </li></ul></ul><ul><ul><li>Pagers </li></ul></ul><ul><ul><li>Computers </li></ul></ul><ul><li>Please remember to fill out your evaluations </li></ul><ul><ul><li>Hand in at end of session </li></ul></ul><ul><ul><li>Fill out via Lotusphere Online </li></ul></ul>
  3. 3. Who is John Head? <ul><li>Offering and Development Manager for our enTouch frameworks </li></ul><ul><ul><li>Technical and Sales role </li></ul></ul><ul><li>Involved in Lotus technology since 1993 </li></ul><ul><li>Speaker for over 15 sessions at Lotusphere since 1996 </li></ul><ul><li>IBM Lotus Notes/Domino Certified </li></ul><ul><li>Author for Advisor Magazine and Group Computing on Office and SmartSuite integration with Notes </li></ul><ul><li>PSC Group, LLC (www.psclistens.com) </li></ul><ul><ul><li>Midwest Mid-Market Professional Services Firm </li></ul></ul><ul><ul><li>Winner of 2004 Lotus Award for Best Competitive Win! </li></ul></ul>
  4. 4. Purpose <ul><li>Provide a foundation on how to begin integration projects </li></ul><ul><li>Introduce techniques for developers new to integration </li></ul><ul><li>Demonstrate some of the possibilities </li></ul><ul><li>Discuss differences in versions of Notes and Office </li></ul><ul><li>Thinking outside the box with integration on the web and other applications besides Office </li></ul><ul><li>Expect Lots of Code! </li></ul>
  5. 5. A little poll <ul><li>Who is using what version of Office </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 System 2003 </li></ul></ul><ul><ul><li>OpenOffice / StarOffice </li></ul></ul><ul><ul><li>Other (SmartSuite, iWork, etc) </li></ul></ul>
  6. 6. Agenda <ul><li>Planning Ahead </li></ul><ul><li>COM and OLE demystified </li></ul><ul><li>The Big Picture </li></ul><ul><li>Integration from Notes </li></ul><ul><li>Integration from the application </li></ul><ul><li>Alternative Applications </li></ul>
  7. 7. Planning Ahead <ul><li>As in any good application, the planning phase can make or break your application </li></ul><ul><ul><li>Integration Applications exaggerate this </li></ul></ul><ul><ul><li>The more ‘moving parts’ the bigger the potential break </li></ul></ul><ul><ul><li>Integration Applications sometimes include multiple developers </li></ul></ul>
  8. 8. Ask yourself “Can this be done by Notes/Domino?” <ul><li>Do not over complicate </li></ul><ul><li>Use Notes functionality when you can </li></ul><ul><li>Rich Text will be your biggest limiting factor </li></ul>Planning Ahead
  9. 9. How does this fit into the entire N/D architecture <ul><li>Will multiple applications require this functionality? </li></ul><ul><li>Can I build functionality once that I can reuse? </li></ul><ul><ul><li>saving time and money </li></ul></ul><ul><ul><li>Makes project justification simpler </li></ul></ul><ul><li>Look at the big picture, not the specific application </li></ul>Planning Ahead
  10. 10. Target Audience Issues <ul><li>Version of Notes </li></ul><ul><li>Version of Application </li></ul><ul><li>Version of Browser </li></ul><ul><li>Version of Operating System </li></ul><ul><li>Connection Type </li></ul><ul><li>Other pitfalls </li></ul>Planning Ahead
  11. 11. It is time to Integrate! <ul><li>Once you have determined that integration is your best option </li></ul><ul><li>Always use the best tool for the job </li></ul><ul><ul><li>Do not use a shoe as a hammer … </li></ul></ul><ul><li>Notes is not … </li></ul><ul><ul><li>A word processor with Table of Contents, Page Layout, etc </li></ul></ul><ul><ul><li>A spreadsheet with charting, Pivot Tables, etc </li></ul></ul><ul><ul><li>A presentations tool with Screen Shows, etc </li></ul></ul><ul><li>Do not reinvent the wheel … </li></ul><ul><li>COM and OLE are the technologies we use </li></ul>COM and OLE Demystified
  12. 12. The Good News … <ul><li>We are in the Renaissance of the Integration Era </li></ul><ul><li>In “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 data </li></ul></ul><ul><ul><li>OLE Embedding </li></ul></ul><ul><ul><li>Notes F/X </li></ul></ul>COM and OLE Demystified
  13. 13. 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>R5 COM </li></ul></ul><ul><li>2001 </li></ul><ul><ul><li>ND6 </li></ul></ul><ul><li>2004 </li></ul><ul><ul><li>ND6.5 (LS2J, DXL) </li></ul></ul><ul><li>2005 </li></ul><ul><ul><li>ND7 (Web Services) </li></ul></ul>COM and OLE Demystified
  14. 14. COM Explained <ul><li>“Component Object Model” </li></ul><ul><li>Microsoft Standard </li></ul><ul><li>Defines the guidelines for objects </li></ul><ul><ul><li>Objects must tell all other programs what is supported </li></ul></ul><ul><ul><ul><li>Properties </li></ul></ul></ul><ul><ul><ul><li>Methods </li></ul></ul></ul><ul><li>Consistent Programmatic access to functionality </li></ul>COM and OLE Demystified
  15. 15. OLE Explained <ul><li>“Object Linking and Embedding” </li></ul><ul><li>Another Microsoft Standard </li></ul><ul><li>Allows one application document to include a portion of another application </li></ul><ul><ul><li>A Word document with an Excel Spreadsheet </li></ul></ul><ul><li>OLE/1 – Attachments </li></ul><ul><li>OLE/2 – Linking or Embedding </li></ul>COM and OLE Demystified
  16. 16. OLE/1 – File Attachments <ul><li>Advantages </li></ul><ul><ul><li>Functionality clearly divided between applications </li></ul></ul><ul><ul><li>No memory issues </li></ul></ul><ul><ul><li>Much smaller size footprint </li></ul></ul><ul><ul><li>Enables Template usage </li></ul></ul><ul><li>Disadvantages </li></ul><ul><ul><li>Requires more planning </li></ul></ul><ul><ul><li>More effort for basic functionality </li></ul></ul><ul><ul><li>Attachment does not know about the Notes object, must manually connect and update </li></ul></ul><ul><li>Notes 6 added </li></ul><ul><ul><li>User can round trip edit attachments </li></ul></ul>COM and OLE Demystified
  17. 17. OLE/2 – Linking and Embedding <ul><li>Advantages </li></ul><ul><ul><li>“ Integrated”, single interface when using embedded object (if used in-line) </li></ul></ul><ul><ul><li>Document containing embedded object is “aware” of the embedded object </li></ul></ul><ul><ul><li>Less work to get object open for end user </li></ul></ul><ul><li>Disadvantages </li></ul><ul><ul><li>OLE embedded objects are much bigger … 10 to 50 times </li></ul></ul><ul><ul><li>OLE embedding is not reliable (Office XP with Windows XP fixed most of this) </li></ul></ul><ul><ul><li>OLE embedded objects are difficult for users when they are more than one page </li></ul></ul><ul><ul><li>Application functionality is </li></ul></ul><ul><li>Biggest issue … no clean way to export data from embedded objects </li></ul><ul><ul><li>“ Locked” data is bad </li></ul></ul>COM and OLE Demystified
  18. 18. Early binding VS Late binding <ul><li>Early binding is when you declare what an object variable will be before you actually assign the object to it </li></ul><ul><ul><li>Dim db as NotesDatabase Set db = session.CurrentDatabase </li></ul></ul><ul><li>Late binding is when you assign an object to a variable without creating the object variable beforehand </li></ul><ul><ul><li>Set db = New NotesDatabase(“server”, “dbname.nsf”) </li></ul></ul><ul><li>Early binding is much more efficient than late binding </li></ul><ul><li>Only late binding available when in Notes </li></ul>COM and OLE Demystified
  19. 19. The Big Picture <ul><li>Architectures vs. Application </li></ul><ul><li>Build reusable functionality across multiple applications </li></ul><ul><li>PSC enTouch framework was designed with this idea </li></ul><ul><li>Integration functionality written once, used in numerous applications </li></ul><ul><li>Demos developed for this session are stand-alone </li></ul>The Big Picture
  20. 20. Integration from Notes <ul><li>From Notes, we will write application code (modified) to manipulate the application </li></ul><ul><li>In most cases, you will be converting Visual Basics for Applications (VBA) code to LotusScript </li></ul><ul><li>Our first sample </li></ul><ul><ul><li>Create a Microsoft Word document and add content </li></ul></ul>Integration from Notes
  21. 21. Creating a Word Document <ul><li>Must create an instance to the application object first </li></ul><ul><li>All applications that support COM have object names </li></ul><ul><li>Find 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>Word.application </li></ul></ul><ul><ul><li>Word.application.8 </li></ul></ul><ul><li>Set hwd = CreateObject(&quot;Word.Application&quot;) </li></ul>Integration from Notes
  22. 22. 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 current open document, use </li></ul></ul><ul><ul><ul><li>Application.ActiveDocument </li></ul></ul></ul>Integration from Notes
  23. 23. Creating a Word Document <ul><li>How did we write the data into the document? </li></ul><ul><li>Lets look at the code </li></ul>Integration from Notes
  24. 24. Speed Tip – Turn of the Display <ul><li>By default, an object will not display when created programmatically. </li></ul><ul><li>Code executes much faster when the object is not visible </li></ul><ul><li>Prevent User issues when they can not access/see </li></ul><ul><li>Make visible at end Set hwd.visible = True </li></ul>Integration from Notes
  25. 25. How did you figure out the syntax? <ul><li>Integration Developer’s Best friend … </li></ul><ul><ul><li>Tools Macros Record New Macro </li></ul></ul><ul><li>Lets try </li></ul>Integration from Notes
  26. 26. 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>Use the Constants Database </li></ul></ul><ul><ul><li>Get the database that matches your version of Office </li></ul></ul><ul><ul><li>Write a macro </li></ul></ul><ul><ul><ul><li>Msgbox [constantname] </li></ul></ul></ul>Integration from Notes
  27. 27. 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 and above </li></ul></ul><ul><ul><ul><li>Rumor of new format in next version </li></ul></ul></ul><ul><li>Sample of Office 2003 Mail Merge </li></ul><ul><li>Lets look at the code </li></ul>Integration from Notes
  28. 28. Microsoft complicates things <ul><li>Each version of Office has Object and Syntax changes </li></ul><ul><ul><li>Not always backwards compatible </li></ul></ul><ul><ul><li>Each Version has a number </li></ul></ul><ul><ul><ul><li>Office 97 – 8 </li></ul></ul></ul><ul><ul><ul><li>Office 2000 – 9 </li></ul></ul></ul><ul><ul><ul><li>Office XP – 10 </li></ul></ul></ul><ul><ul><ul><li>Office 2003 – 11 </li></ul></ul></ul><ul><ul><li>Need to know for reference on Microsoft Documentation </li></ul></ul><ul><ul><ul><li>Otherwise forget! </li></ul></ul></ul>Integration from Notes
  29. 29. Mail Merge <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>Integration from Notes
  30. 30. Building an Engine <ul><li>Bring data and presentation together seamlessly </li></ul><ul><li>Control what data the user can include </li></ul><ul><li>Two data push methods </li></ul><ul><ul><li>Design Time </li></ul></ul><ul><ul><li>Run Time </li></ul></ul><ul><li>Demo from enTouch.crm </li></ul><ul><li>Standalone Demo </li></ul><ul><li>Lets look at the code </li></ul>Integration from Notes
  31. 31. Working with the attachment <ul><li>Store that attachment in a rich text field </li></ul><ul><li>Programmatically detach and save the attachment </li></ul><ul><li>Let user take advantage of the ND6 in-place edit features </li></ul>Integration from Notes
  32. 32. Working with the attachment <ul><li>Set attachmentfield = commCurrentDocument.getfirstitem(fieldname) </li></ul><ul><li>If attachmentfield.embeddedobjects(0) Is Nothing Then </li></ul><ul><li>Msgbox MSGBOX_TEXT_01, 16, MSGBOX_TITLE_01 </li></ul><ul><li>Exit Function </li></ul><ul><li>End If </li></ul><ul><li>If attachmentfield.EmbeddedObjects(0).Type <> EMBED_ATTACHMENT Then </li></ul><ul><li>Msgbox MSGBOX_TEXT_02, 16, MSGBOX_TITLE_01 </li></ul><ul><li>Exit Function </li></ul><ul><li>End If </li></ul><ul><li>Forall o In attachmentfield.EmbeddedObjects </li></ul><ul><li>filename = o.source </li></ul><ul><li>End Forall </li></ul><ul><li>Set Object = commCurrentDocument.GetAttachment(filename) </li></ul><ul><li>Call Object.ExtractFile (filepath + filename) </li></ul>Integration from Notes
  33. 33. Saving the attachment <ul><li>Once the code is complete, save that attachment back to the Notes document </li></ul><ul><li>Dim newrichtextfield As notesrichtextitem </li></ul><ul><li>Dim newobject As notesembeddedobject </li></ul><ul><li>newdoc.removeitem (&quot;Attachment&quot;) </li></ul><ul><li>Set newrichtextfield = newdoc.CreateRichTextItem(&quot;Attachment&quot;) </li></ul><ul><li>Set newobject = newrichtextfield.EmbedObject(EMBED_ATTACHMENT, &quot;&quot;, filepath + filename) </li></ul>Integration from Notes
  34. 34. Lets work with Excel <ul><li>Build an Excel spreadsheet with data from Notes </li></ul><ul><li>Generate a Chart </li></ul><ul><li>Lets see the demo </li></ul><ul><li>Lets look at the code </li></ul>Integration from Notes
  35. 35. Exporting with Excel <ul><li>ND6 Export has lots of limitations </li></ul><ul><ul><li>No Excel support </li></ul></ul><ul><ul><li>Limited to number of rows </li></ul></ul><ul><li>Build your own Export Tool </li></ul><ul><li>Let’s see the demo </li></ul><ul><li>Let’s see the code </li></ul>Integration from Notes
  36. 36. Some other tips <ul><li>Create objects for each object in the external application </li></ul><ul><ul><li>Application </li></ul></ul><ul><ul><li>Documents </li></ul></ul><ul><ul><li>Document </li></ul></ul><ul><ul><li>Paragraph </li></ul></ul><ul><li>Always Error Trap your code </li></ul><ul><li>AD210 Error Trapping in LotusScript </li></ul><ul><ul><li>Speaker: Rocky Oliver </li></ul></ul><ul><ul><li>SW 6 - Wednesday 3:00pm - 4:00pm </li></ul></ul><ul><li>BP104 Leveraging the LotusScript NotesLog Class to Build a Proactive Bug Tracking System </li></ul><ul><ul><li>Speaker: Christopher Byrne </li></ul></ul><ul><ul><li>SW Osprey - Tuesday 8:30am - 9:30am </li></ul></ul>Integration from Notes
  37. 37. Some other tips <ul><li>To pass parameters, try not to use the Notes.ini </li></ul><ul><ul><li>I prefer to use the Properties of the Document </li></ul></ul><ul><ul><li>Must clear the property before updating it’s value </li></ul></ul>Integration from Notes
  38. 38. Integration from the application <ul><li>Sometimes it makes sense to start from within the application </li></ul><ul><li>Good news </li></ul><ul><ul><li>Easier then working from within Notes </li></ul></ul><ul><ul><ul><li>If you are manipulating the Office application </li></ul></ul></ul><ul><ul><li>LotusScript translates better than VBA </li></ul></ul>Integration from the applications
  39. 39. Retrieve data from Notes <ul><li>Sample using Microsoft PowerPoint </li></ul><ul><li>Lets look at the Code </li></ul>Integration from the applications
  40. 40. <ul><li>Working with the Domino Objects is almost the same as writing code in Notes! </li></ul><ul><li>Only supports back-end objects </li></ul><ul><li>COM support was added in Notes 5.0.2b </li></ul><ul><li>Updated in 6.5.1 to support 6.X </li></ul><ul><ul><li>Objects </li></ul></ul><ul><ul><li>Properties </li></ul></ul><ul><ul><li>Methods </li></ul></ul><ul><li>COM interface is same as LotusScript interface, with some exceptions </li></ul>Domino COM Basics Integration from the applications
  41. 41. Domino COM Basics <ul><li>Must load the Lotus Domino Objects reference </li></ul><ul><ul><li>In MS Office products: Tools/References </li></ul></ul>Integration from the applications
  42. 42. Domino COM Basics <ul><li>The COM objects must be able to find NOTES.INI </li></ul><ul><ul><li>Looks in program directory first </li></ul></ul><ul><ul><li>Looks in path next </li></ul></ul><ul><li>KeyFileName in NOTES.INI is used to determine what ID to use for authentication </li></ul><ul><li>Multiple installed versions of Notes is a problem </li></ul><ul><ul><li>Uses the last installed version </li></ul></ul><ul><ul><ul><li>HKEY_CLASSES_ROOT.nsfShellOpenCommand </li></ul></ul></ul><ul><ul><ul><li>HKEY_CLASSES_ROOT otes.exeShellOpenCommand </li></ul></ul></ul><ul><ul><ul><li>HKEY_LOCAL_MACHINESOFTWARELotusNotes </li></ul></ul></ul>Integration from the applications
  43. 43. Make your end users happy! <ul><li>Prevent Password prompts by… </li></ul><ul><li>Notes Release 5.x Notes 6 </li></ul>Integration from the applications
  44. 44. Domino COM Basics <ul><li>Must use NotesSession.Initialize(“”) to establish connectivity </li></ul><ul><ul><li>Cannot use extended syntax (I.e. “dot notation”) to reference items in a document </li></ul></ul><ul><ul><ul><li>NO: NotesDocument.Form(0) </li></ul></ul></ul><ul><ul><ul><li>YES: NotesDocument.GetItemValue(“Form”)(0) </li></ul></ul></ul>Integration from the applications
  45. 45. Domino COM Basics <ul><li>Can’t use “New” to create Domino objects </li></ul><ul><ul><li>Exception is NotesSession </li></ul></ul><ul><ul><li>NO: Dim db as New NotesDatabase(server, dbpath) </li></ul></ul><ul><ul><li>YES: Dim db as NotesDatabase Set db = NotesSession.GetDatabase(server, path) </li></ul></ul>Integration from the applications
  46. 46. Domino COM Basics <ul><li>No such thing as a “current” environment </li></ul><ul><ul><li>No CurrentDatabase, DocumentContext, etc. </li></ul></ul><ul><li>If a property returns an array of objects , you must assign the property to a variable first </li></ul><ul><ul><li>NO: Dim view as NotesView Set view = NotesDatabase.Views(0) </li></ul></ul><ul><ul><li>YES: Dim views as Variant, view as NotesView views = NotesDatabase.Views Set view = views(0) </li></ul></ul>Integration from the applications
  47. 47. <ul><li>VB doesn’t use Forall…EndAll </li></ul><ul><ul><li>Uses For Each…Next instead </li></ul></ul><ul><li>VB doesn’t support Today keyword </li></ul><ul><li>VB doesn’t support using pipes ( | ) and braces ( {} ) for string delimiting </li></ul><ul><li>Refer to ND Designer Help for more info </li></ul>Domino COM Basics Integration from the applications
  48. 48. Remember the Insert Menu <ul><li>Uses COM to read the available text values to insert into the document </li></ul><ul><li>Lets look at the code </li></ul>Integration from the applications
  49. 49. Alternative Applications <ul><li>Microsoft Office is not the only application's) out there </li></ul><ul><li>SmartSuite still has a loyal following </li></ul><ul><li>OpenOffice (StarOffice) is gaining a foothold </li></ul><ul><li>Nice to have some options </li></ul>
  50. 50. SmartSuite Demo <ul><li>Has built in connections to browse Notes databases for documents </li></ul><ul><li>Supports all of the LotusScript syntax </li></ul><ul><ul><li>Notes 5.X syntax and below </li></ul></ul><ul><li>Lets look at the demo </li></ul>Alternative Applications
  51. 51. OpenOffice Demo <ul><li>Uses OLE </li></ul><ul><li>Very Different Object Model </li></ul><ul><li>Lets see the demo </li></ul><ul><li>Lets see how it works in an application </li></ul>Alternative Applications
  52. 52. Wrap-up <ul><li>Reviewed how to architecture integration </li></ul><ul><li>Discussed the hurdles </li></ul><ul><li>Walked thru how to integrate Notes to external applications </li></ul><ul><li>Walked thru how to integration an external application with Notes </li></ul><ul><li>Looked into the future! </li></ul>
  53. 53. The Future <ul><li>XML is the foundation </li></ul><ul><li>DXL provides powerful functionality </li></ul><ul><li>Web Services will remove the need for the Notes client to be installed to perform integration </li></ul><ul><li>Come see a glimpse into the future </li></ul><ul><ul><li>BP124 Integration SuperGlue - Advanced Integration Techniques with IBM Lotus Notes and Domino and Office 2003 </li></ul></ul><ul><ul><ul><li>Speaker: John D Head </li></ul></ul></ul><ul><ul><ul><li>SW 1-2 - Wednesday 11:15am - 12:15pm </li></ul></ul></ul>
  54. 54. Other sessions that you should attend <ul><li>AD211 Leveraging the Power of Object Oriented Programming in LotusScript </li></ul><ul><ul><li>Speaker: Jens Augustiny </li></ul></ul><ul><ul><li>SW 10 - Monday 2:15pm - 3:15pm </li></ul></ul><ul><li>AD204 Getting the Most From the IBM Lotus Domino Objects </li></ul><ul><ul><li>Speaker: James Cooper </li></ul></ul><ul><ul><li>DL S. Hemisphere III - Monday 5:00pm - 6:00pm </li></ul></ul><ul><li>BP107 Best Practices for Object Oriented LotusScript </li></ul><ul><ul><li>Speaker: Bill Buchan </li></ul></ul><ul><ul><li>SW 10 - Thursday 8:30am - 9:30am </li></ul></ul><ul><li>BP124 Integration SuperGlue - Advanced Integration Techniques with IBM Lotus Notes and Domino and Office 2003 </li></ul><ul><ul><li>Speaker: John D Head </li></ul></ul><ul><ul><li>SW 1-2 - Wednesday 11:15am - 12:15pm </li></ul></ul>
  55. 55. Resources <ul><li>LDD Discussions (www-130.ibm.com/developerworks/lotus) </li></ul><ul><li>Advisor Magazine (www.advisor.com) </li></ul><ul><ul><li>Articles </li></ul></ul><ul><li>MSDN (msdn.microsoft.com) </li></ul><ul><li>My blog (www.johndavidhead.com) </li></ul><ul><li>Slides and content available on PSC’s website by next Monday </li></ul><ul><ul><li>www.psclistens.com </li></ul></ul>
  56. 56. Questions & Answers Thank You! Please turn in or perform online your evaluations See the enTouch Framework at Booth #433

×