Title: Building Digital Dashboards with Outlook 2000 and Exchange
1Building Digital Dashboards with Outlook 2000 and
Exchange Mike MorrisonSenior
ConsultantMicrosoft Corporation
2(No Transcript)
3Todays Agenda
- What is a Digital Dashboard?
- Digital Dashboard Starter Kit
- The API Melting Pot
- Dashboard Structures and Architecture
- Code, Code and More Code
- Tips And Tricks
- Off-line, Security and Deployment
- Lessons Learned
4The Battle of SoCal Edison
- Exchange vs. Notes
- Billg the CEO Summit
- One Company Culture
- Lost the battle but winning the war
- Importance of information any where any time
5What is a Digital Dashboard?
- Situational Awareness
- Empowering Knowledge Workers
- Personalized data
- Off-line synchronization
- Focused metrics for business direction
6Digital Dashboard Starter Kit (DDSK)
- Dashboard examples
- Starter
- Functional Sales, Finance
- Vertical Healthcare, Insurance, Manufacturing
- White papers
- Advanced Development Guide
- Business Process Assessment Guide
- COM Add-ins
- Outlook Today
- FrontPage
7DDSK Samples
- First Dashboard
- Healthcare Dashboard
- Manufacturing Dashboard
- Insurance Dashboard
- Salesperson Dashboard
- Finance Dashboard
8DDSK White Papers
- An Overview of Digital Dashboard Development
- Digital Dashboard Business Process Assessment
Guide
9Demo
10What Dashboards bring to Knowledge Workers
- Personalized Information
- Off-line Access
- Easy Customization
- Rich User Interface to Data
Situational Awareness
11Types of Dashboards
- Internet Explorer
- Web-Based
- Outlook 98
- Outlook Today
- Outlook 2000
- Outlook View Control
- Folder Home Pages
- Exchange 2000
- Web-Based
- XML
Reach
Rich
Have cake and eat it too
12Outlook Today vs. Folder Home Pages
- Outlook Today
- Must edit RegKey for full IE Object Model
- Be careful with ltframesetgt ltiframegt
- TARGET_blank does not open new window
- References to other frames might not work
correctly - Forms do not work correctly
- Tabular data controls do not work correctly
- Folder Home Pages
- Full IE Object Model
- Slightly slower
- May need to set the startup folder
13Dashboard Layouts Zones
Links (Button Bar)
- Zones
- HTML Tables
- IDs
- Links
- HeaderZone
- LeftColumn
- RightColumn
- Msnavigation
HeaderZone (Stock Ticker)
LeftColumn
RightColumn
MSNavigation
14Dashboard Components Nuggets
- Nuggets
- State stored in registry
- HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Ou
tlook\Today
Show/Hide buttons(call displayNugget script)
15Dashboard Coding Approaches
Client
16Building Dashboards
- Define the audience
- Define the content
- Put content into Exchange store or Web
- Build HTML page (FrontPage)
- Outlook View Control
- Outlook Today Databinding Control
- Office Web Components
- Write custom script code
- Deploy
17The Outlook Object Model
- COM Automation Objects
- High performance access to private and public
exchange data - Built-in offline synchronization
- Easy hyperlinks
- Outlook//Inbox
- Outlook//Public Folders/
18Outlook OM SampleHiding toolbar buttons
Set g_App window.external.OutlookApplication Set
g_TheExplorer g_App.ActiveExplorer Set
g_CommandBars g_TheExplorer.CommandBars Call
displayCommandButton(0,1017) 'hide back button
Call displayCommandButton(0,1018) 'hide forward
button sub displayCommandButton(bool,ID) on
error resume next dim myItem, MyBool if
bool 1 then MyBool True else MyBool
false end if Set myItem g_CommandBars.FindCon
trol(1,ID) myItem.visible MyBool Err.Clear end
sub
19The Outlook View Control
20Outlook View Control
- Displays any Outlook View
- ActiveX wrapper around Outlook Views
- Displays contents of Outlook folder
- Selectable view
- Folder contents Create, open, print, delete
- Address book, contacts
- Can be hosted in
- Outlook Web View
- Outlook Form
- Internet Explorer
21Outlook View Control
- Requires Outlook 2000 installation
- Ships on the web and with Team Productivity
Update - www.microsoft.com/exchange
- officeupdate.microsoft.com/outlook
- Within Internet Explorer
- Exposes light, safe OM
- Within Outlook
- Exposes entire Outlook Object Model
22Outlook View Control Setting properties
ltspan id"spanMessages2" onclick"HighPriorityMess
ages.view'Messages'" id"Btn2"gt Messages lt/span
gt ltBRgt ltspan id"spanMessages3"
onclick"HighPriorityMessages.view'By Follow-up
Flag'" id"Btn3"gt By Follow-up
Flag lt/spangt ltobject ID"HighPriorityMessages"
CLASSID"CLSID0006F063-0000-0000-C000-000000000
046" codebase"../outlctlx.CABver9,0,3024" gt
23Server-Side Code
- Be careful and remember offline
considerations/requirements - ASP, CDO, Exchange Scripting Agents may not work
well offline - Leverage existing Windows DNA applications
- Integrate LOB applications
- Great ISV potential with BizTalk Server
Commerce Server 4.0
24Off-line Issues
- No single solution (
- Different types of data in different repositories
- Exchange private/public
- Internet
- Intranet
- File System
- SQL Server
- LOB Data Warehouse, DB2, SAP etc..
- Make it seamless to the user where this data is
at, regardless if they are on-line or off-line.
25Off-line Recommendations
- Use off-line mode when not on a high speed
connection - Use Quick Sync Groups
- Leverage the Outlook synchronization for
Internet, Intranet and folder home pages - Up to 3 levels
- Leverage Mobsync.exe (part of IE5)
- Can programmatically add folders to favorites
- (With a hack from Tom Rizzo, you can
programmatically flag them for synchronization)
26Dashboard Security
- Browser security disabled
- Enabled upon navigation to page
- Be careful of frames
- Link to folder homepages with lta
hrefoutlookgt
27Personalization
- Rely on Personalization Infrastructure
- Active Directory
- Use nuggets
- Customization
- Outlook Preferences
- window.external.Setpref(ValueName, ValueData)
- Cookies
- XML
28Dashboard Deployment
- DLL
- Best Performance
- Distribute with SMS or Custom Office install
- Hard to update large deployments
- Best Bet is Web and Public Folder
- Public Folder favorites and IIS
- Easy to update
- Slightly slower
- Set Outlook Today value in registry
29Moving to Exchange 2000
- Leverage built-in HTML capabilities
- Native support for Internet Protocols
- Streaming support
- XML-Based dashboards
- 5-305 Building Web Applications Using Exchange
2000 Outlook Web Access Components Fri. 1030
Rm 214E/215E - Alex Hopmann
30Tips And Tricks
- 1. Investor Ticker
- 2. Using DHTML events
- 3. Outlook View Control and Frames
- 4. Hyperlinking to the Outlook Object Model
- 5. Logging errors in the Exchange Scripting Agent
31Tip Number 1Investor Ticker
CPU Utilization
32Tip Number 2Using DHTML events
ltspan id"spanMessages5" onclick"HighPriorityMes
sages.view'Unread Messages' changeMessagesTab(th
is)" id"FolderBtn5 class"btnFolder"gtUnreadlt/sp
angt ltscript language"javascript"gt function
changeMessagesTab(currentdiv) spanMessages2.sty
le.fontWeight"normal" spanMessages3.style.fontWe
ight"normal" spanMessages4.style.fontWeight"nor
mal" spanMessages5.style.fontWeight"normal" cur
rentdiv.style.fontWeight"bold" lt/scriptgt
33Tip Number 3Outlook View Control and Frames
Sub Window_OnResize If document.body.offsetWidth
gt 15 Then oOVCObject.Width
(document.body.offsetWidth-15) End If If
document.body.offsetHeight gt 22 Then
oOVCObject.Height (document.body.offsetHeight-22
) End If End Sub Function Document_OnClick Win
dow_OnResize End Function
34Tip Number 4Hyperlinking to the Outlook OM
ltA HREF OUTLOOK\\inboxgtInboxlt/Agt Set
oApplication window.external.OutlookApplication
Set oNS oApplication.GetNamespace("MAPI") Set
oCurrentFolder oApplication.activeExplorer.curre
ntfolder Sub IterateSubFolders() strLinkPrefix
"outlook\\Public Folders\All Public Folders\"
For i 1 to oCurrentFolder.Folders.Count
strLinkName strLinkPrefix Trim(oCurrentFolder.
Name) "\" Trim(oCurrentFolder.Folders(i).Name)
strOutputText strOutputText "ltA href'"
strLinkPrefix strLinkName "gt"
Trim(oCurrentFolder.Folders(i).Name)
"lt/AgtltBRgt" Next End Sub()
35Tip Number 5Logging Errors in Exchange Scripting
Agent
Sub SendErrorMessage(strMessageBody) Set
fldrOutbox AMSession.Outbox strMessageBody
Error in Exchange Scripting Agent " vbCrLf
strMessageBody Set msgResponse
fldrOutbox.Messages.Add( strSubj,
strMessageBody ) msgResponse.Recipients.Add
"Error Logs" ', "", 1, msgTarget.Sender.ID msg
Response.Send End Sub
36Applying Dashboards to Solve Customer Needs
- Common business problems
- Leveraging disparate data stores
- Information any where any time
- Intelligent Business Intelligence
37Lessons Learned
- Keep It Simple
- Despite the technology, it has to be engaging
- Just as Microsoft has reinvented itself to be
more Customer Focused, so too our software has to
be more User Focused
38More Information
- Web
- www.microsoft.com/technet/AppFarm
- www.slipstick.com
- MS Press
- Building Applications with Outlook 2000 Technical
Reference Randy Byrne - Programming Outlook and Exchange Thomas Rizzo
- mikemo_at_microsoft.com
- ddsk_at_microsoft.com
39More Information
- Refer to the TechNet Web site at
www.microsoft.com/technet/ - Microsoft Official Curriculum
- Course 1593 Building Collaborative Solutions
Using Microsoft Outlook 2000 - Additional MEC 99 Sessions
- 7-306 A Digital Dashboard for Healtcare Chad
Richards -214E/215E Fri. 115 - 7-306 A Digital Dashboard for Manufacturing
Barry Knuttila - 214E/215E Fri. 300
40(No Transcript)