Obtention des informations des collaborateurs directs du manager de l’utilisateur actuel
Cet exemple obtient les subordonnés du responsable de l’utilisateur actif, le cas échéant, puis affiche des informations sur chaque subordonné du responsable.
Exemple
Remarque
L’exemple de code suivant est un extrait de la programmation d’Applications pour Microsoft Office Outlook 2007.
Dans l’exemple suivant, la procédure GetManagerDirectReports appelle la méthode GetExchangeUserManager() pour obtenir le responsable de l’utilisateur, représenté par un objet ExchangeUser. Si l’utilisateur actif a un responsable, la méthode GetDirectReports() est appelée pour renvoyer une collection AddressEntries qui représente les entrées d’adresse de tous les collaborateurs directs du responsable de l’utilisateur. Si le responsable n’a aucun collaborateur direct, GetDirectReports renvoie une collection AddressEntries qui a un décompte de zéro. Une fois les collaborateurs directs du responsable obtenus, GetManagerDirectReports écrit des informations sur chacun des collaborateurs directs du responsable dans les écouteurs de suivi de la collection Listeners.
Remarque
L’utilisateur doit être en ligne pour que cette méthode renvoie une collection AddressEntries. Sinon, GetDirectReports renvoie une référence Null. Pour le code de production, vous devez tester si l’utilisateur est hors connexion à l’aide de la propriété _NameSpace.ExchangeConnectionMode ou de la propriété _Account.ExchangeConnectionMode pour plusieurs scénarios Exchange.
Si vous utilisez Visual Studio pour tester cet exemple de code, vous devez d’abord ajouter une référence au composant Bibliothèque d’objets Microsoft Outlook 15.0 et spécifier la variable lorsque vous importez l’espace de noms Microsoft.Office.Interop.Outlook. L’instruction using ne doit pas se produire juste avant les fonctions de l’exemple de code, mais doit être ajoutée avant la déclaration publique. La ligne de code suivante montre comment effectuer l’importation et l’affectation dans C#.
using Outlook = Microsoft.Office.Interop.Outlook;
private void GetManagerDirectReports()
{
Outlook.AddressEntry currentUser =
Application.Session.CurrentUser.AddressEntry;
if (currentUser.Type == "EX")
{
Outlook.ExchangeUser manager =
currentUser.GetExchangeUser().GetExchangeUserManager();
if (manager != null)
{
Outlook.AddressEntries addrEntries =
manager.GetDirectReports();
if (addrEntries != null)
{
foreach (Outlook.AddressEntry addrEntry
in addrEntries)
{
Outlook.ExchangeUser exchUser =
addrEntry.GetExchangeUser();
StringBuilder sb = new StringBuilder();
sb.AppendLine("Name: "
+ exchUser.Name);
sb.AppendLine("Title: "
+ exchUser.JobTitle);
sb.AppendLine("Department: "
+ exchUser.Department);
sb.AppendLine("Location: "
+ exchUser.OfficeLocation);
Debug.WriteLine(sb.ToString());
}
}
}
}
}