Exchange migrering

Indledning

Outlook Add-in benytter en "pegepind" fra et møde i Outlook til at afgøre, om der er en tilhørende ressourcebooking eller mødeforplejningsordre i Facilitynet.io og lokalisere den pågældende ordre.

Det er derfor afgørende, at I læser denne guide igennem, inden I gennemfører en migrering af Outlook aftaler fra én Exchange server til en anden eller fra on-premise Exchange til Office 365.

Hvis I ikke får udført migreringen på den rigtige måde, risikerer I, at alle medarbejdere i jeres organisation taber muligheden for at se tilhørende booking og forplejning for alle deres Outlook aftaler fra det gamle Exchange miljø.

 

Exchange

Når det kommer til Exchange, er vores "pegepind" ikke central. Vi slår ikke direkte op i Exchange, men kører alt via Outlooks API og dermed op mod den Exchange, som Outlook er sat op til at snakke sammen med. Der skal derfor ikke rettes server / service URL noget sted i Facilitynet.io.

Exchange aftale -> FacilityNet ordre

Hver kalenderaftale peger på en eventuel tilhørende FacilityNet ordre. Denne pegepind består af et UUID, som vi gemmer som en streng i en extended property på Exchange aftalen.

Her er en stump Powershell kode, som via EWS laver extended property definitionen for at illustrere:

function CreateRemoteOrderUidDefinition()
{
return New-Object Microsoft.Exchange.WebServices.Data.ExtendedPropertyDefinition(
        [Microsoft.Exchange.WebServices.Data.DefaultExtendedPropertySet]::PublicStrings,
"EventRemoteOrderUId",
        [Microsoft.Exchange.WebServices.Data.MapiPropertyType]::String
    );
}


Det er essentielt, at disse extended properties kommer med over på den nye Exchange server, når I foretager migreringen, da alle brugernes eksisterende aftaler og møder ellers vil miste deres sammenkobling med FacilityNet ressourcebookinger og mødeforplejningsordrer.

Hvis sammenkoblingen går tabt, vil en bruger ikke kunne se og redigere tilhørende FacilityNet booking / mødeforplejning for alle deres eksisterende møder og disse FacilityNet ordrer vil ikke længere automatisk blive opdateret, når brugeren ændrer i mødetidspunkt eller deltagere eller aflyser mødet.

FacilityNet ordre -> Exchange aftale

Udover en pegepind fra Exchange aftalen til den tilhørende FacilityNet ordre, har vi også en pegepind i modsat retning, som for en given FacilityNet ordre, peger på den tilhørende kalenderaftale i Exchange.
Her bruger vi det felt, som i Outlook Object Model hedder "GlobalAppointmentId". På Exchange gemmes denne som PidLidCleanGlobalObjectId:
https://docs.microsoft.com/en-us/office/client-developer/outlook/mapi/pidlidcleanglobalobjectid-canonical-property

Her er PS / EWS definitionen for den:

function CreateCleanGlobalObjectIdDefinition()
{
return New-Object Microsoft.Exchange.WebServices.Data.ExtendedPropertyDefinition(
[Microsoft.Exchange.WebServices.Data.DefaultExtendedPropertySet]::Meeting,
0x23,
        [Microsoft.Exchange.WebServices.Data.MapiPropertyType]::Binary);
}


Vi bruger primært denne pegepind til at detektere, hvis brugeren kopierer en kalenderaftale med tilhørende ordre, så vi får fjernet ordretilknytningen på kopien. Hvis aftalerne får nyt GlobalAppointmentId som del af migreringen, vil tilknytning til FacilityNet ordre derfor igen gå tabt. Som jeg forstår Outlooks virkemåde med hensyn til mødeindkaldelser, vil dette dog også give rod i forhold til, når der kommer svar tilbage på tidligere udsendte mødeindkaldelser, så jeg går ud fra, at dette ID bliver bevaret i enhver migrering.

Var denne artikel en hjælp?
0 ud af 0 fandt dette nyttigt