jmp108

56
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

Upload: john-head

Post on 24-Jan-2015

546 views

Category:

Documents


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Jmp108

1

JMP108 The Glue That Binds: Integrating IBM Lotus Notes & Domino with Microsoft Office and other Applications

JMP108 The Glue That Binds: Integrating IBM Lotus Notes & Domino with Microsoft Office and other Applications

John Head – PSC Group, LLCenTouch Framework Offerings and Development Manager

John Head – PSC Group, LLCenTouch Framework Offerings and Development Manager

Page 2: Jmp108

2

Before we begin …Before we begin …

Please turn off/set to vibrate/mute all Cell Phones Pagers Computers

Please remember to fill out your evaluations Hand in at end of session Fill out via Lotusphere Online

Please turn off/set to vibrate/mute all Cell Phones Pagers Computers

Please remember to fill out your evaluations Hand in at end of session Fill out via Lotusphere Online

Page 3: Jmp108

3

Who is John Head?Who is John Head? Offering and Development Manager for our enTouch

frameworks Technical and Sales role

Involved in Lotus technology since 1993 Speaker for over 15 sessions at Lotusphere since 1996 IBM Lotus Notes/Domino Certified Author for Advisor Magazine and Group Computing on

Office and SmartSuite integration with Notes PSC Group, LLC (www.psclistens.com)

Midwest Mid-Market Professional Services Firm Winner of 2004 Lotus Award for

Best Competitive Win!

Offering and Development Manager for our enTouch frameworks

Technical and Sales role Involved in Lotus technology since 1993 Speaker for over 15 sessions at Lotusphere since 1996 IBM Lotus Notes/Domino Certified Author for Advisor Magazine and Group Computing on

Office and SmartSuite integration with Notes PSC Group, LLC (www.psclistens.com)

Midwest Mid-Market Professional Services Firm Winner of 2004 Lotus Award for

Best Competitive Win!

Page 4: Jmp108

4

PurposePurpose Provide a foundation on how to begin integration projects Introduce techniques for developers new to integration Demonstrate some of the possibilities Discuss differences in versions of Notes and Office Thinking outside the box with integration on the web and

other applications besides Office

Expect Lots of Code!

Provide a foundation on how to begin integration projects Introduce techniques for developers new to integration Demonstrate some of the possibilities Discuss differences in versions of Notes and Office Thinking outside the box with integration on the web and

other applications besides Office

Expect Lots of Code!

Page 5: Jmp108

5

A little pollA little poll

Who is using what version of Office

Office 97 and earlier Office 2000 Office XP Office System 2003 OpenOffice / StarOffice Other (SmartSuite, iWork, etc)

Who is using what version of Office

Office 97 and earlier Office 2000 Office XP Office System 2003 OpenOffice / StarOffice Other (SmartSuite, iWork, etc)

Page 6: Jmp108

6

AgendaAgenda

Planning AheadCOM and OLE demystifiedThe Big PictureIntegration from NotesIntegration from the applicationAlternative Applications

Planning AheadCOM and OLE demystifiedThe Big PictureIntegration from NotesIntegration from the applicationAlternative Applications

Page 7: Jmp108

7

Planning AheadPlanning Ahead

As in any good application, the planning phase can make or break your application

Integration Applications exaggerate this The more ‘moving parts’ the bigger the potential

break Integration Applications sometimes include multiple

developers

As in any good application, the planning phase can make or break your application

Integration Applications exaggerate this The more ‘moving parts’ the bigger the potential

break Integration Applications sometimes include multiple

developers

Page 8: Jmp108

8

Ask yourself “Can this be done by Notes/Domino?”Ask yourself “Can this be done by Notes/Domino?”

Do not over complicateUse Notes functionality when you canRich Text will be your biggest limiting factor

Do not over complicateUse Notes functionality when you canRich Text will be your biggest limiting factor

Planning Ahead

Page 9: Jmp108

9

How does this fit into the entire N/D architectureHow does this fit into the entire N/D architecture

Will multiple applications require this functionality?

Can I build functionality once that I can reuse? saving time and money Makes project justification simpler

Look at the big picture, not the specific application

Will multiple applications require this functionality?

Can I build functionality once that I can reuse? saving time and money Makes project justification simpler

Look at the big picture, not the specific application

Planning Ahead

Page 10: Jmp108

10

Target Audience IssuesTarget Audience Issues

Version of NotesVersion of ApplicationVersion of BrowserVersion of Operating SystemConnection TypeOther pitfalls

Version of NotesVersion of ApplicationVersion of BrowserVersion of Operating SystemConnection TypeOther pitfalls

Planning Ahead

Page 11: Jmp108

11

It is time to Integrate!It is time to Integrate!Once you have determined that integration is your best option

Always use the best tool for the job Do not use a shoe as a hammer …

Notes is not … A word processor with Table of Contents, Page Layout,

etc A spreadsheet with charting, Pivot Tables, etc A presentations tool with Screen Shows, etc

Do not reinvent the wheel … COM and OLE are the technologies we use

Once you have determined that integration is your best option

Always use the best tool for the job Do not use a shoe as a hammer …

Notes is not … A word processor with Table of Contents, Page Layout,

etc A spreadsheet with charting, Pivot Tables, etc A presentations tool with Screen Shows, etc

Do not reinvent the wheel … COM and OLE are the technologies we use

COM and OLE Demystified

Page 12: Jmp108

12

The Good News …The Good News …

We are in the Renaissance of the Integration EraIn “Medieval Times” …

DDE with Ami Pro NotesSQL was used to get even the basic data OLE Embedding Notes F/X

We are in the Renaissance of the Integration EraIn “Medieval Times” …

DDE with Ami Pro NotesSQL was used to get even the basic data OLE Embedding Notes F/X

COM and OLE Demystified

Page 13: Jmp108

13

Integration HistoryIntegration History 1994

DDE with Ami Pro 1996

Notes R4 OLE LotusScript VBA

1997 SmartSuite with LotusScript (Word Pro)

1998 R5 COM

2001 ND6

2004 ND6.5 (LS2J, DXL)

2005 ND7 (Web Services)

1994 DDE with Ami Pro

1996 Notes R4 OLE LotusScript VBA

1997 SmartSuite with LotusScript (Word Pro)

1998 R5 COM

2001 ND6

2004 ND6.5 (LS2J, DXL)

2005 ND7 (Web Services)

COM and OLE Demystified

Page 14: Jmp108

14

COM ExplainedCOM Explained

“Component Object Model”Microsoft StandardDefines the guidelines for objects

Objects must tell all other programs what is supported

Properties Methods

Consistent Programmatic access to functionality

“Component Object Model”Microsoft StandardDefines the guidelines for objects

Objects must tell all other programs what is supported

Properties Methods

Consistent Programmatic access to functionality

COM and OLE Demystified

Page 15: Jmp108

15

OLE ExplainedOLE Explained

“Object Linking and Embedding”Another Microsoft StandardAllows one application document to include a

portion of another application A Word document with an Excel Spreadsheet

OLE/1 – AttachmentsOLE/2 – Linking or Embedding

“Object Linking and Embedding”Another Microsoft StandardAllows one application document to include a

portion of another application A Word document with an Excel Spreadsheet

OLE/1 – AttachmentsOLE/2 – Linking or Embedding

COM and OLE Demystified

Page 16: Jmp108

16

OLE/1 – File AttachmentsOLE/1 – File Attachments Advantages

Functionality clearly divided between applications No memory issues Much smaller size footprint Enables Template usage

Disadvantages Requires more planning More effort for basic functionality Attachment does not know about the Notes object, must

manually connect and update

Notes 6 added User can round trip edit attachments

Advantages Functionality clearly divided between applications No memory issues Much smaller size footprint Enables Template usage

Disadvantages Requires more planning More effort for basic functionality Attachment does not know about the Notes object, must

manually connect and update

Notes 6 added User can round trip edit attachments

COM and OLE Demystified

Page 17: Jmp108

17

OLE/2 – Linking and EmbeddingOLE/2 – Linking and Embedding Advantages

“Integrated”, single interface when using embedded object (if used in-line)

Document containing embedded object is “aware” of the embedded object

Less work to get object open for end user Disadvantages

OLE embedded objects are much bigger … 10 to 50 times OLE embedding is not reliable (Office XP with Windows XP fixed most

of this) OLE embedded objects are difficult for users when they are more than

one page Application functionality is

Biggest issue … no clean way to export data from embedded objects

“Locked” data is bad

Advantages “Integrated”, single interface when using embedded object (if used in-

line) Document containing embedded object is “aware” of the embedded

object Less work to get object open for end user

Disadvantages OLE embedded objects are much bigger … 10 to 50 times OLE embedding is not reliable (Office XP with Windows XP fixed most

of this) OLE embedded objects are difficult for users when they are more than

one page Application functionality is

Biggest issue … no clean way to export data from embedded objects

“Locked” data is bad

COM and OLE Demystified

Page 18: Jmp108

18

Early binding VS Late bindingEarly binding VS Late bindingEarly binding is when you declare what an object

variable will be before you actually assign the object to it

Dim db as NotesDatabaseSet db = session.CurrentDatabase

Late binding is when you assign an object to a variable without creating the object variable beforehand

Set db = New NotesDatabase(“server”, “dbname.nsf”)Early binding is much more efficient than late

bindingOnly late binding available when in Notes

Early binding is when you declare what an object variable will be before you actually assign the object to it

Dim db as NotesDatabaseSet db = session.CurrentDatabase

Late binding is when you assign an object to a variable without creating the object variable beforehand

Set db = New NotesDatabase(“server”, “dbname.nsf”)Early binding is much more efficient than late

bindingOnly late binding available when in Notes

COM and OLE Demystified

Page 19: Jmp108

19

The Big PictureThe Big Picture

Architectures vs. ApplicationBuild reusable functionality across multiple

applicationsPSC enTouch framework was designed with this

ideaIntegration functionality written once, used in

numerous applicationsDemos developed for this session are stand-

alone

Architectures vs. ApplicationBuild reusable functionality across multiple

applicationsPSC enTouch framework was designed with this

ideaIntegration functionality written once, used in

numerous applicationsDemos developed for this session are stand-

alone

The Big Picture

Page 20: Jmp108

20

Integration from NotesIntegration from Notes

From Notes, we will write application code (modified) to manipulate the application

In most cases, you will be converting Visual Basics for Applications (VBA) code to LotusScript

Our first sample Create a Microsoft Word document and add content

From Notes, we will write application code (modified) to manipulate the application

In most cases, you will be converting Visual Basics for Applications (VBA) code to LotusScript

Our first sample Create a Microsoft Word document and add content

Integration from Notes

Page 21: Jmp108

21

Creating a Word DocumentCreating a Word Document Must create an instance to the application object first All applications that support COM have object names Find object name …

Application Documentation Registry

Never use version specific application object names Word.application Word.application.8

Set hwd = CreateObject("Word.Application")

Must create an instance to the application object first All applications that support COM have object names Find object name …

Application Documentation Registry

Never use version specific application object names Word.application Word.application.8

Set hwd = CreateObject("Word.Application")

Integration from Notes

Page 22: Jmp108

22

Creating a Word DocumentCreating a Word Document

Must follow the applications object model Word.application

Documents Document

ParagraphBookmarkCustomDocumentProperties

If accessing current open document, use Application.ActiveDocument

Must follow the applications object model Word.application

Documents Document

ParagraphBookmarkCustomDocumentProperties

If accessing current open document, use Application.ActiveDocument

Integration from Notes

Page 23: Jmp108

23

Creating a Word DocumentCreating a Word Document

How did we write the data into the document?

Lets look at the code

How did we write the data into the document?

Lets look at the code

Integration from Notes

Page 24: Jmp108

24

Speed Tip – Turn of the DisplaySpeed Tip – Turn of the Display

By default, an object will not display when created programmatically.

Code executes much faster when the object is not visible

Prevent User issues when they can not access/see

Make visible at end

Set hwd.visible = True

By default, an object will not display when created programmatically.

Code executes much faster when the object is not visible

Prevent User issues when they can not access/see

Make visible at end

Set hwd.visible = True

Integration from Notes

Page 25: Jmp108

25

How did you figure out the syntax?How did you figure out the syntax?

Integration Developer’s Best friend … Tools \ Macros \ Record New Macro

Lets try

Integration Developer’s Best friend … Tools \ Macros \ Record New Macro

Lets try

Integration from Notes

Page 26: Jmp108

26

What’s up with the recorded syntax?What’s up with the recorded syntax?Selection.TypeText Text:="this is new text"Selection.TypeParagraphSelection.TypeParagraphSelection.Font.Bold = wdToggleSelection.ParagraphFormat.Alignment = wdAlignParagraphCenterSelection.TypeText Text:="this is more text“

Saving LotusScript with wdToggle and wdAlignParagraphCenter fails!

Need to replace VBA constants with raw values Use the Constants Database Get the database that matches your version of Office Write a macro

Msgbox [constantname]

Selection.TypeText Text:="this is new text"Selection.TypeParagraphSelection.TypeParagraphSelection.Font.Bold = wdToggleSelection.ParagraphFormat.Alignment = wdAlignParagraphCenterSelection.TypeText Text:="this is more text“

Saving LotusScript with wdToggle and wdAlignParagraphCenter fails!

Need to replace VBA constants with raw values Use the Constants Database Get the database that matches your version of Office Write a macro

Msgbox [constantname]

Integration from Notes

Page 27: Jmp108

27

Mail MergeMail Merge

Mail Merge is version specific One version for Word 2000 and before One version for Word XP and above

Rumor of new format in next version

Sample of Office 2003 Mail Merge

Lets look at the code

Mail Merge is version specific One version for Word 2000 and before One version for Word XP and above

Rumor of new format in next version

Sample of Office 2003 Mail Merge

Lets look at the code

Integration from Notes

Page 28: Jmp108

28

Microsoft complicates thingsMicrosoft complicates things

Each version of Office has Object and Syntax changes

Not always backwards compatible Each Version has a number

Office 97 – 8 Office 2000 – 9 Office XP – 10 Office 2003 – 11

Need to know for reference on Microsoft Documentation

Otherwise forget!

Each version of Office has Object and Syntax changes

Not always backwards compatible Each Version has a number

Office 97 – 8 Office 2000 – 9 Office XP – 10 Office 2003 – 11

Need to know for reference on Microsoft Documentation

Otherwise forget!

Integration from Notes

Page 29: Jmp108

29

Mail MergeMail Merge

Mail Merge object allows for user interactionSelect what pieces of the Mail Merge Wizard the

user seesInteraction is your choice!

Mail Merge object allows for user interactionSelect what pieces of the Mail Merge Wizard the

user seesInteraction is your choice!

Integration from Notes

Page 30: Jmp108

30

Building an EngineBuilding an Engine Bring data and presentation together seamlessly Control what data the user can include Two data push methods

Design Time Run Time

Demo from enTouch.crm

Standalone Demo

Lets look at the code

Bring data and presentation together seamlessly Control what data the user can include Two data push methods

Design Time Run Time

Demo from enTouch.crm

Standalone Demo

Lets look at the code

Integration from Notes

Page 31: Jmp108

31

Working with the attachmentWorking with the attachment

Store that attachment in a rich text fieldProgrammatically detach and save the

attachmentLet user take advantage of the ND6 in-place edit

features

Store that attachment in a rich text fieldProgrammatically detach and save the

attachmentLet user take advantage of the ND6 in-place edit

features

Integration from Notes

Page 32: Jmp108

32

Working with the attachmentWorking with the attachmentSet attachmentfield = commCurrentDocument.getfirstitem(fieldname)

If attachmentfield.embeddedobjects(0) Is Nothing ThenMsgbox MSGBOX_TEXT_01, 16, MSGBOX_TITLE_01Exit Function

End If

If attachmentfield.EmbeddedObjects(0).Type <> EMBED_ATTACHMENT ThenMsgbox MSGBOX_TEXT_02, 16, MSGBOX_TITLE_01Exit Function

End If

Forall o In attachmentfield.EmbeddedObjects filename = o.source

End Forall

Set Object = commCurrentDocument.GetAttachment(filename)Call Object.ExtractFile (filepath + filename)

Set attachmentfield = commCurrentDocument.getfirstitem(fieldname)

If attachmentfield.embeddedobjects(0) Is Nothing ThenMsgbox MSGBOX_TEXT_01, 16, MSGBOX_TITLE_01Exit Function

End If

If attachmentfield.EmbeddedObjects(0).Type <> EMBED_ATTACHMENT ThenMsgbox MSGBOX_TEXT_02, 16, MSGBOX_TITLE_01Exit Function

End If

Forall o In attachmentfield.EmbeddedObjects filename = o.source

End Forall

Set Object = commCurrentDocument.GetAttachment(filename)Call Object.ExtractFile (filepath + filename)

Integration from Notes

Page 33: Jmp108

33

Saving the attachmentSaving the attachment

Once the code is complete, save that attachment back to the Notes document

Dim newrichtextfield As notesrichtextitem

Dim newobject As notesembeddedobject

newdoc.removeitem ("Attachment")

Set newrichtextfield = newdoc.CreateRichTextItem("Attachment")

Set newobject = newrichtextfield.EmbedObject(EMBED_ATTACHMENT, "", filepath + filename)

Once the code is complete, save that attachment back to the Notes document

Dim newrichtextfield As notesrichtextitem

Dim newobject As notesembeddedobject

newdoc.removeitem ("Attachment")

Set newrichtextfield = newdoc.CreateRichTextItem("Attachment")

Set newobject = newrichtextfield.EmbedObject(EMBED_ATTACHMENT, "", filepath + filename)

Integration from Notes

Page 34: Jmp108

34

Lets work with ExcelLets work with Excel

Build an Excel spreadsheet with data from Notes

Generate a Chart

Lets see the demo

Lets look at the code

Build an Excel spreadsheet with data from Notes

Generate a Chart

Lets see the demo

Lets look at the code

Integration from Notes

Page 35: Jmp108

35

Exporting with ExcelExporting with Excel

ND6 Export has lots of limitations No Excel support Limited to number of rows

Build your own Export Tool

Let’s see the demo

Let’s see the code

ND6 Export has lots of limitations No Excel support Limited to number of rows

Build your own Export Tool

Let’s see the demo

Let’s see the code

Integration from Notes

Page 36: Jmp108

36

Some other tipsSome other tips Create objects for each object in the external application

Application Documents Document Paragraph

Always Error Trap your code AD210 Error Trapping in LotusScript

Speaker: Rocky Oliver SW 6 - Wednesday 3:00pm - 4:00pm

BP104 Leveraging the LotusScript NotesLog Class to Build a Proactive Bug Tracking System

Speaker: Christopher Byrne SW Osprey - Tuesday 8:30am - 9:30am

Create objects for each object in the external application Application Documents Document Paragraph

Always Error Trap your code AD210 Error Trapping in LotusScript

Speaker: Rocky Oliver SW 6 - Wednesday 3:00pm - 4:00pm

BP104 Leveraging the LotusScript NotesLog Class to Build a Proactive Bug Tracking System

Speaker: Christopher Byrne SW Osprey - Tuesday 8:30am - 9:30am

Integration from Notes

Page 37: Jmp108

37

Some other tipsSome other tips

To pass parameters, try not to use the Notes.ini I prefer to use the Properties of the Document Must clear the property before updating it’s value

To pass parameters, try not to use the Notes.ini I prefer to use the Properties of the Document Must clear the property before updating it’s value

Integration from Notes

Page 38: Jmp108

38

Integration from the applicationIntegration from the application

Sometimes it makes sense to start from within the application

Good news Easier then working from within Notes

If you are manipulating the Office application LotusScript translates better than VBA

Sometimes it makes sense to start from within the application

Good news Easier then working from within Notes

If you are manipulating the Office application LotusScript translates better than VBA

Integration from the applications

Page 39: Jmp108

39

Retrieve data from NotesRetrieve data from Notes

Sample using Microsoft PowerPoint

Lets look at the Code

Sample using Microsoft PowerPoint

Lets look at the Code

Integration from the applications

Page 40: Jmp108

40

Working with the Domino Objects is almost the same as writing code in Notes!

Only supports back-end objectsCOM support was added in Notes 5.0.2bUpdated in 6.5.1 to support 6.X

Objects Properties Methods

COM interface is same as LotusScript interface, with some exceptions

Working with the Domino Objects is almost the same as writing code in Notes!

Only supports back-end objectsCOM support was added in Notes 5.0.2bUpdated in 6.5.1 to support 6.X

Objects Properties Methods

COM interface is same as LotusScript interface, with some exceptions

Domino COM BasicsDomino COM Basics

Integration from the applications

Page 41: Jmp108

41

Domino COM BasicsDomino COM BasicsMust load the Lotus Domino Objects reference

In MS Office products: Tools/References

Must load the Lotus Domino Objects reference In MS Office products: Tools/References

Integration from the applications

Page 42: Jmp108

42

Domino COM BasicsDomino COM BasicsThe COM objects must be able to find NOTES.INI

Looks in program directory first Looks in path next

KeyFileName in NOTES.INI is used to determine what ID to use for authentication

Multiple installed versions of Notes is a problem Uses the last installed version

HKEY_CLASSES_ROOT\.nsf\Shell\Open\Command HKEY_CLASSES_ROOT\notes.exe\Shell\Open\Command HKEY_LOCAL_MACHINE\SOFTWARE\Lotus\Notes

The COM objects must be able to find NOTES.INI Looks in program directory first Looks in path next

KeyFileName in NOTES.INI is used to determine what ID to use for authentication

Multiple installed versions of Notes is a problem Uses the last installed version

HKEY_CLASSES_ROOT\.nsf\Shell\Open\Command HKEY_CLASSES_ROOT\notes.exe\Shell\Open\Command HKEY_LOCAL_MACHINE\SOFTWARE\Lotus\Notes

Integration from the applications

Page 43: Jmp108

43

Make your end users happy!Make your end users happy!Prevent Password prompts by…

Notes Release 5.x Notes 6

Prevent Password prompts by…

Notes Release 5.x Notes 6

Integration from the applications

Page 44: Jmp108

44

Domino COM BasicsDomino COM BasicsMust use NotesSession.Initialize(“”) to

establish connectivity Cannot use extended syntax (I.e. “dot notation”) to reference

items in a document NO: NotesDocument.Form(0)

YES: NotesDocument.GetItemValue(“Form”)(0)

Must use NotesSession.Initialize(“”) to establish connectivity

Cannot use extended syntax (I.e. “dot notation”) to reference items in a document

NO: NotesDocument.Form(0)

YES: NotesDocument.GetItemValue(“Form”)(0)

Integration from the applications

Page 45: Jmp108

45

Domino COM BasicsDomino COM Basics

Can’t use “New” to create Domino objects Exception is NotesSession NO: Dim db as New NotesDatabase(server, dbpath)

YES:Dim db as NotesDatabaseSet db = NotesSession.GetDatabase(server, path)

Can’t use “New” to create Domino objects Exception is NotesSession NO: Dim db as New NotesDatabase(server, dbpath)

YES:Dim db as NotesDatabaseSet db = NotesSession.GetDatabase(server, path)

Integration from the applications

Page 46: Jmp108

46

Domino COM BasicsDomino COM BasicsNo such thing as a “current” environment

No CurrentDatabase, DocumentContext, etc.

If a property returns an array of objects, you must assign the property to a variable first

NO: Dim view as NotesViewSet view = NotesDatabase.Views(0)

YES: Dim views as Variant, view as NotesViewviews = NotesDatabase.ViewsSet view = views(0)

No such thing as a “current” environment No CurrentDatabase, DocumentContext, etc.

If a property returns an array of objects, you must assign the property to a variable first

NO: Dim view as NotesViewSet view = NotesDatabase.Views(0)

YES: Dim views as Variant, view as NotesViewviews = NotesDatabase.ViewsSet view = views(0)

Integration from the applications

Page 47: Jmp108

47

VB doesn’t use Forall…EndAll Uses For Each…Next instead

VB doesn’t support Today keywordVB doesn’t support using pipes ( | ) and braces ( {} )

for string delimitingRefer to ND Designer Help for more info

VB doesn’t use Forall…EndAll Uses For Each…Next instead

VB doesn’t support Today keywordVB doesn’t support using pipes ( | ) and braces ( {} )

for string delimitingRefer to ND Designer Help for more info

Domino COM BasicsDomino COM Basics

Integration from the applications

Page 48: Jmp108

48

Remember the Insert MenuRemember the Insert Menu

Uses COM to read the available text values to insert into the document

Lets look at the code

Uses COM to read the available text values to insert into the document

Lets look at the code

Integration from the applications

Page 49: Jmp108

49

Alternative ApplicationsAlternative Applications

Microsoft Office is not the only application's) out there

SmartSuite still has a loyal followingOpenOffice (StarOffice) is gaining a footholdNice to have some options

Microsoft Office is not the only application's) out there

SmartSuite still has a loyal followingOpenOffice (StarOffice) is gaining a footholdNice to have some options

Page 50: Jmp108

50

SmartSuite DemoSmartSuite Demo

Has built in connections to browse Notes databases for documents

Supports all of the LotusScript syntax Notes 5.X syntax and below

Lets look at the demo

Has built in connections to browse Notes databases for documents

Supports all of the LotusScript syntax Notes 5.X syntax and below

Lets look at the demo

Alternative Applications

Page 51: Jmp108

51

OpenOffice DemoOpenOffice Demo

Uses OLEVery Different Object Model

Lets see the demo

Lets see how it works in an application

Uses OLEVery Different Object Model

Lets see the demo

Lets see how it works in an application

Alternative Applications

Page 52: Jmp108

52

Wrap-upWrap-up

Reviewed how to architecture integrationDiscussed the hurdlesWalked thru how to integrate Notes to external

applicationsWalked thru how to integration an external

application with NotesLooked into the future!

Reviewed how to architecture integrationDiscussed the hurdlesWalked thru how to integrate Notes to external

applicationsWalked thru how to integration an external

application with NotesLooked into the future!

Page 53: Jmp108

53

The FutureThe Future

XML is the foundationDXL provides powerful functionalityWeb Services will remove the need for the Notes

client to be installed to perform integrationCome see a glimpse into the future

BP124 Integration SuperGlue - Advanced Integration Techniques with IBM Lotus Notes and Domino and Office 2003

Speaker: John D Head SW 1-2 - Wednesday 11:15am - 12:15pm

XML is the foundationDXL provides powerful functionalityWeb Services will remove the need for the Notes

client to be installed to perform integrationCome see a glimpse into the future

BP124 Integration SuperGlue - Advanced Integration Techniques with IBM Lotus Notes and Domino and Office 2003

Speaker: John D Head SW 1-2 - Wednesday 11:15am - 12:15pm

Page 54: Jmp108

54

Other sessions that you should attendOther sessions that you should attend AD211 Leveraging the Power of Object Oriented Programming in

LotusScript Speaker: Jens Augustiny SW 10 - Monday 2:15pm - 3:15pm

AD204 Getting the Most From the IBM Lotus Domino Objects Speaker: James Cooper DL S. Hemisphere III - Monday 5:00pm - 6:00pm

BP107 Best Practices for Object Oriented LotusScript Speaker: Bill Buchan SW 10 - Thursday 8:30am - 9:30am

BP124 Integration SuperGlue - Advanced Integration Techniques with IBM Lotus Notes and Domino and Office 2003

Speaker: John D Head SW 1-2 - Wednesday 11:15am - 12:15pm

AD211 Leveraging the Power of Object Oriented Programming in LotusScript

Speaker: Jens Augustiny SW 10 - Monday 2:15pm - 3:15pm

AD204 Getting the Most From the IBM Lotus Domino Objects Speaker: James Cooper DL S. Hemisphere III - Monday 5:00pm - 6:00pm

BP107 Best Practices for Object Oriented LotusScript Speaker: Bill Buchan SW 10 - Thursday 8:30am - 9:30am

BP124 Integration SuperGlue - Advanced Integration Techniques with IBM Lotus Notes and Domino and Office 2003

Speaker: John D Head SW 1-2 - Wednesday 11:15am - 12:15pm

Page 55: Jmp108

55

ResourcesResources LDD Discussions

(www-130.ibm.com/developerworks/lotus) Advisor Magazine (www.advisor.com)

Articles MSDN (msdn.microsoft.com) My blog (www.johndavidhead.com) Slides and content available on PSC’s

website by next Monday www.psclistens.com

LDD Discussions (www-130.ibm.com/developerworks/lotus)

Advisor Magazine (www.advisor.com) Articles

MSDN (msdn.microsoft.com) My blog (www.johndavidhead.com) Slides and content available on PSC’s

website by next Monday www.psclistens.com

Page 56: Jmp108

56

Questions & AnswersQuestions & Answers

Thank You!

Please turn in or perform online your evaluations

See the enTouch Framework at Booth #433