How Enterprise Vault Shortcut works

Hallo zusammen,

Am Anfang stand die Frage, wie funktioniert ein Enterprise Vault Shortcut.
Oder anders gefragt, woher weiss das Enterprise Vault Outlook Plugin, welches Mail denn aus dem Archiv zurückgeholt werden muss.

Mit CRTL + SHIFT + Klick auf ein EV Icon in Outlook habe ich die Protokollierung von „Information“ auf „Maximale Zurückverfolgung“ eingestellt.
Danach muss Outlook neu gestartet werden

Dann habe ich ein EV Shortcut in Outlook angeklickt und das Protokoll angeschaut (Unten ist ein gekürzter Ausschnitt daraus)

06/11/2013 09:04:58.818[5632][M]: Hash Algorithm: SHA256
06/11/2013 09:04:58.819[5632][M]: Hash Value: b12c0958f1c163439177abc5b18cc024fafab4342a718d2cfc930a0530ffcdd1
06/11/2013 09:04:58.819[5632][L]: ~CCGeneral::GetHashFromProps: 0x0
06/11/2013 09:04:58.820[5632][L]: ~CCGeneral::GetHashFromItem: 0x0
06/11/2013 09:04:58.820[5632][L]: CONTENT:STORE: CCStoreIDMap::SearchForItem: 0x0
06/11/2013 09:04:58.820[5632][L]: CONTENT:STORE: CCSearchOptions::LogConfiguration
06/11/2013 09:04:58.821[5632][M]: CONTENT:STORE: Main StoreIdMap will be checked first, then cached StoreIdMap
06/11/2013 09:04:58.821[5632][M]: CONTENT:STORE: Searching using SSID
06/11/2013 09:04:58.822[5632][L]: CONTENT:STORE: ~CCSearchOptions::LogConfiguration
06/11/2013 09:04:58.822[5632][L]: CONTENT:STORE: CCStoreIDMap::GetStoreID: 0x0
06/11/2013 09:04:58.822[5632][L]: CONTENT:STORE: CCStoreIdMapItemLocator::GetStoreID: 0x0
06/11/2013 09:04:58.823[5632][M]: CONTENT:STORE: Using main StoreIdMap
06/11/2013 09:04:58.823[5632][L]: CONTENT:STORE: CCStoreIdMapItemLocator::GetQueryString: 0x0
06/11/2013 09:04:58.824[5632][L]: CONTENT:STORE: CCStoreIdMapItemLocator::GetMainStoreIdMapQuery: 0x0
06/11/2013 09:04:58.824[5632][L]: CONTENT:STORE: ~CCStoreIdMapItemLocator::GetMainStoreIdMapQuery: 0x0
06/11/2013 09:04:58.825[5632][L]: CONTENT:STORE: ~CCStoreIdMapItemLocator::GetQueryString: 0x0
06/11/2013 09:04:58.825[5632][M]: CONTENT:STORE:     Query store map: /ITEMS/ITEM[@SSID='201310111532029~201309111010120000~Z~F05E2A56DB8C33AAF1D11B762CE780E1']
06/11/2013 09:04:58.827[5632][L]: CONTENT:STORE: CCStoreIdMapItemLocator::GetEntryIdAndPVID: 0x0
06/11/2013 09:04:58.827[5632][L]: CONTENT:STORE: ~CCStoreIdMapItemLocator::GetEntryIdAndPVID: 0x0
06/11/2013 09:04:58.828[5632][L]: CONTENT:STORE: ~CCStoreIdMapItemLocator::GetStoreID: 0x0
06/11/2013 09:04:58.828[5632][L]: CONTENT:STORE: CCStoreIDMap::ValidateEntryAndUpdate
06/11/2013 09:04:58.828[5632][L]: CONTENT:STORE: CCStoreIdMapFixer::CheckPVIDForItem: 0x0
06/11/2013 09:04:58.829[5632][L]: CONTENT:STORE: CCStoreFixer::FindDBById
06/11/2013 09:04:58.829[5632][M]: CONTENT:STORE: Checking for existance of DBID '2'
06/11/2013 09:04:58.830[5632][L]: CONTENT:STORE: CCDatabaseList::FindDBByID: 0x0
06/11/2013 09:04:58.830[5632][L]: CONTENT:STORE: CCDatabaseList::Init: 0x0

Im Internet Explorer über die Developer Tools (F12) habe ich die URL aufgezeichnet, welche aufgerufen wird.
/EnterpriseVault/ViewMessage.asp?VaultID=1077AD7BF45A24E4791362951404F8FB61110000evsrv01&SaveSetID=201310111532029~201309111010120000~Z~F05E2A56DB8C33AAF1D11B762CE780E1&SettingsBtn=0&ArchiveExplorerBtn=0

MFCMapi
Ich habe das Mail mal mit MFCMapi angeschaut
http://mfcmapi.codeplex.com/  
http://blog.icewolf.ch/archive/2011/06/10/show-hidden-message-and-rules-with-cdo-and-mfcmapi.aspx


Shortcut Message
Tag: 0x8472001E
Named Prop Name: sz: "Saveset ID"
201310111532029~201309111010120000~Z~F05E2A56DB8C33AAF1D11B762CE780E1

Auf dem Folder in dem der Shortcut liegt, das Associated Content Table (Menu „Actions“) auswählen.
Dort gibt es ein Item vom Typ „IPM.EnterpriseVault.Filter.evserver – daraus kann man die ArchiveID und den ArchiveFolderID auslesen

Tag: 0x8076001E
Named Prop Name: sz: "Archive ID"
16FE69328E50A4848ABBF0F50BFFD4CDF1110000evsrv01

Tag: 0x8077001E
Named Prop Name: sz: "ArchiveFolderId"
1077AD7BF45A24E4791362951404F8FB61110000evsrv01

Schauen wir doch mal die ArchiveID in der EV Konsole nach
16FE69328E50A4848ABBF0F50BFFD4CDF1110000evsrv01

SaveSetID
201310111532029~201309111010120000~Z~F05E2A56DB8C33AAF1D11B762CE780E1
Hinterster Teil ist Transaction ID "F05E2A56DB8C33AAF1D11B762CE780E1"

TransactionID neu Formatieren mit Bindestrichen
"F05E2A56DB8C33AAF1D11B762CE780E1"
'F05E2A56-DB8C-33AA-F1D1-1B762CE780E1

Use EnterpriseVaultDirectory
go
SELECT A.ArchiveName "Archive Name",
       AF.FolderName "Folder Name",
       AF.FolderPath "Folder Path",
       S.IdTransaction "Transaction ID",
       S.ArchivedDate "Archived Date",
       S.IdDateTime "Sent Date",
       S.ItemSize "Item Size"
      
FROM EnterpriseVaultDirectory.dbo.Archive A,
     EnterpriseVaultDirectory.dbo.ArchiveFolder AF,
     EnterpriseVaultDirectory.dbo.Root R,
     EnterpriseVaultDirectory.dbo.Root R2,
     EVVSBEGIA01_1.dbo.Saveset S,
     EVVSBEGIA01_1.dbo.Vault V,
     EVVSBEGIA01_1.dbo.ArchivePoint AP
    
WHERE S.ArchivePointIdentity = AP.ArchivePointIdentity
  AND S.VaultIdentity = V.VaultIdentity
  AND AP.ArchivePointId = R.VaultEntryId
  AND V.VaultId = R2.VaultEntryId
  AND R.RootIdentity = A.RootIdentity
  AND R2.RootIdentity = AF.RootIdentity
  AND S.IdTransaction = 'F05E2A56-DB8C-33AA-F1D1-1B762CE780E1'

Aufgrund der SaveSetID (vorne Datum) und dem hintersten Teil (TransactionID) findet man sogar das *.DVS (Digital Vault Saveset) File auf dem Filesystem
201310111532029~201309111010120000~Z~F05E2A56DB8C33AAF1D11B762CE780E1

Grüsse
Andres Bohren