jmp108
DESCRIPTION
TRANSCRIPT
![Page 1: Jmp108](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/23.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/24.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/25.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/26.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/27.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/28.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/29.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/30.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/31.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/32.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/33.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/34.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/35.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/36.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/37.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/38.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/39.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/40.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/41.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/42.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/43.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/44.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/45.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/46.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/47.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/48.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/49.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/50.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/51.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/52.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/53.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/54.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/55.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062617/54c2c90f4a7959334b8b45fc/html5/thumbnails/56.jpg)
56
Questions & AnswersQuestions & Answers
Thank You!
Please turn in or perform online your evaluations
See the enTouch Framework at Booth #433