Proposer une nouvelle heure de réunion à l'aide d’EWS dans Exchange

Découvrez comment proposer de nouvelles heures de réunion à partir de votre application cliente Exchange à l’aide d’EWS dans Exchange.

La fonctionnalité proposer une nouvelle heure permet aux participants de proposer de nouvelles heures de réunion à l’organisateur de la réunion dans le cadre du flux de travail du calendrier Exchange. Lorsqu’un participant propose une nouvelle réunion, l’organisateur peut utiliser l’heure de la nouvelle réunion proposée pour mettre à jour la réunion et envoyer des mises à jour à tous les participants. Avant de pouvoir permettre aux participants de proposer de nouvelles heures de réunion, vous devez déterminer si l’organisateur autorise les nouvelles propositions de temps. Cet article explique comment déterminer si vous pouvez proposer une nouvelle heure et comment utiliser EWS pour proposer une nouvelle heure.

Remarque

L’API managée EWS n’implémente pas cette fonctionnalité.

Déterminer si vous pouvez proposer une nouvelle heure pour une réunion à l’aide d’EWS

Avant de pouvoir proposer une nouvelle heure pour une réunion, vous devez trouver une référence à cette réunion et déterminer si l’organisateur de la réunion a configuré la réunion pour prendre en charge les nouvelles propositions de temps. Vous pouvez obtenir une référence à une réunion en effectuant l’une des opérations suivantes :

  • Recherche de la demande de réunion dans la boîte de réception

  • Recherche du rendez-vous dans le calendrier

Pour rechercher une référence de réunion, procédez comme suit :

  1. Utilisez l’opération FindItem EWS (ou la méthode d’API managée EWS Folder.FindItems ) pour rechercher la demande de réunion ou l’élément de calendrier cible. Vous pouvez également utiliser l’opération EWS SyncFolderItems pour obtenir l’identificateur de la demande de réunion ou de l’élément de calendrier cible.

  2. Analysez les résultats de l’opération FindItem (ou de la méthode Folder.FindItems ) pour obtenir l’identificateur d’élément de l’élément de réunion.

  3. Utilisez l’opération GetItem EWS pour obtenir les objets de réponse pour la réunion.

Le code XML suivant montre ce qui est envoyé pour demander les objets de réponse sur un élément.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
               xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
               xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"
               xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages">
  <soap:Header>
    <t:RequestServerVersion Version="Exchange2013" />
    <t:MailboxCulture>en-US</t:MailboxCulture>
  </soap:Header>
  <soap:Body>
    <m:GetItem>
      <m:ItemShape>
        <t:BaseShape>IdOnly</t:BaseShape>
        <t:AdditionalProperties>
          <t:FieldURI FieldURI="item:ResponseObjects"/>
          <t:FieldURI FieldURI="item:Subject"/>
          <t:FieldURI FieldURI="calendar:Start"/>
          <t:FieldURI FieldURI="calendar:End"/>
        </t:AdditionalProperties>
      </m:ItemShape>
      <m:ItemIds>
        <t:ItemId Id="AAMkADEzOTExYjJkL1AAA=" ChangeKey="CwAAAB/G6X"/>
      </m:ItemIds>
    </m:GetItem>
  </soap:Body>
</soap:Envelope>

La réponse de l’opération GetItem ressemble au code XML suivant si vous demandez l’identificateur d’élément, l’heure de début et de fin de la réunion, la collection d’objets de réponse et si l’organisateur autorise les modifications proposées à l’heure de la réunion. La collection d’objets response, qui est représentée par l’élément ResponseObjects , contient l’ensemble des réponses valides pour l’élément de calendrier. L’élément ProposeNewTime est un objet de réponse qui indique que l’utilisateur peut proposer une nouvelle heure pour la réunion. Les éléments AcceptItem, ProvisoirelyAcceptItem et DeclineItem représentent les objets response que vous pouvez utiliser pour proposer une nouvelle heure de réunion à l’organisateur de la réunion.

<s:Envelope xmlns:s="https://schemas.xmlsoap.org/soap/envelope/">
  <s:Header>
    <h:ServerVersionInfo MajorVersion="15" 
                         MinorVersion="0" 
                         MajorBuildNumber="815" 
                         MinorBuildNumber="6" 
                         Version="V2_7" 
                         xmlns:h="http://schemas.microsoft.com/exchange/services/2006/types" 
                         xmlns="http://schemas.microsoft.com/exchange/services/2006/types" 
                         xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
                         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
  </s:Header>
  <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
          xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <m:GetItemResponse xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" 
                       xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
      <m:ResponseMessages>
        <m:GetItemResponseMessage ResponseClass="Success">
          <m:ResponseCode>NoError</m:ResponseCode>
          <m:Items>
            <t:MeetingRequest>
              <t:ItemId Id="AAMkADEzOTExYjJkL1AAA=" ChangeKey="CwAAAB/G6X"/>
              <t:Subject>Competitive analysis: kick off meeting</t:Subject>
              <t:ResponseObjects>
                <t:AcceptItem/>
                <t:TentativelyAcceptItem/>
                <t:DeclineItem/>
                <t:ProposeNewTime/>
                <t:ReplyToItem/>
                <t:ReplyAllToItem/>
                <t:ForwardItem/>
              </t:ResponseObjects>
              <t:Start>2013-11-09T17:00:00Z</t:Start>
              <t:End>2013-11-09T17:30:00Z</t:End>
            </t:MeetingRequest>
          </m:Items>
        </m:GetItemResponseMessage>
      </m:ResponseMessages>
    </m:GetItemResponse>
  </s:Body>
</s:Envelope>

Proposer une nouvelle heure de réunion à l’aide d’EWS

Si vous avez reçu un objet de réponse ProposeNewTime lorsque vous avez utilisé l’opération GetItem pour obtenir un élément de calendrier ou une demande de réunion, vous pouvez répondre avec une nouvelle heure de réunion proposée. Si vous n’avez pas reçu d’objet de réponse ProposeNewTime , vous ne pourrez pas proposer une nouvelle heure de réunion dans le cadre du flux de travail du calendrier. Toutefois, vous pouvez répondre à l’organisateur pour demander une nouvelle heure de réunion. Si vous recevez un objet de réponse ProposeNewTime , vous pouvez répondre à la réunion en référençant son identificateur et proposer une nouvelle heure de réunion à l’organisateur. C’est là que l’objet de réponse ProposeNewTime est différent du modèle d’objet de réponse classique, car vous ne répondez pas avec un objet de réponse ProposeNewTime . Vous utilisez l’un des autres objets de réponse de réunion, tels que AcceptItem, TentativelyAcceptItem ou DeclineItem, pour proposer une nouvelle réunion. Cet exemple utilise l’objet de réponse AcceptItem .

<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
               xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"
               xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages">
  <soap:Header>
    <t:RequestServerVersion Version="Exchange2013"/>
  </soap:Header>
  <soap:Body>
    <m:CreateItem>
      <m:Items>
        <t:AcceptItem>
          <t:Body BodyType="Text">This time works better for the HiPPO.</t:Body>
          <t:ReferenceItemId Id="AAMkADEzOTExYjJkL1AAA=" ChangeKey="CwAAAB/G6X"/>
          <t:ProposedStart>2013-11-28T04:00:00Z</t:ProposedStart>
          <t:ProposedEnd>2013-11-28T04:30:00Z</t:ProposedEnd>
        </t:AcceptItem>
      </m:Items>
    </m:CreateItem>
  </soap:Body>
</soap:Envelope>

La réponse à cette demande contient l’identificateur de l’élément de calendrier qui a été ajouté au calendrier du participant et une copie de la demande de réunion qui a été placée dans le dossier Éléments supprimés du participant. Le message de réponse avec la nouvelle proposition d’heure a également été enregistré dans le dossier Éléments envoyés du participant (vous devrez trouver le message de réponse à la réunion pour obtenir un handle dessus).

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Header>
    <h:ServerVersionInfo MajorVersion="15" 
                         MinorVersion="0" 
                         MajorBuildNumber="815" 
                         MinorBuildNumber="6" 
                         Version="V2_7" 
                         xmlns:h="http://schemas.microsoft.com/exchange/services/2006/types" 
                         xmlns="http://schemas.microsoft.com/exchange/services/2006/types" 
                         xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
                         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
  </s:Header>
  <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
          xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <m:CreateItemResponse xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" 
                          xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
      <m:ResponseMessages>
        <m:CreateItemResponseMessage ResponseClass="Success">
          <m:ResponseCode>NoError</m:ResponseCode>
          <m:Items>
            <t:CalendarItem>
              <t:ItemId Id="AAMkAGRmOWE2OWAAA=" ChangeKey="DwAAJsmU"/>
            </t:CalendarItem>
            <t:MeetingRequest>
              <t:ItemId Id="AAMkAGRmOWE2AAABB=" ChangeKey="AAAGJu1A"/>
            </t:MeetingRequest>
          </m:Items>
        </m:CreateItemResponseMessage>
      </m:ResponseMessages>
    </m:CreateItemResponse>
  </s:Body>
</s:Envelope>

L’organisateur reçoit un message MeetingResponse lorsque le participant répond avec une nouvelle heure de réunion proposée. Le message MeetingResponse contient l’heure de début et l’heure de fin de la nouvelle réunion proposées, ainsi que l’identificateur de l’élément de calendrier associé dans le calendrier de l’organisateur. L’organisateur peut utiliser ces informations pour mettre à jour son élément de calendrier existant pour la réunion. Voici le flux de travail permettant à l’organisateur de répondre à un message MeetingResponse qui propose une nouvelle heure de réunion :

  1. Déterminez si les éléments ProposedStart ou ProposedEnd ont été définis dans MeetingResponse. Si c’est le cas, passez à l’étape 2. Si ce n’est pas le cas, le message MeetingResponse indique uniquement si le participant a accepté, accepté provisoirement ou refusé la réunion.

  2. Obtenez l’élément de calendrier existant de l’organisateur pour la réunion à l’aide de l’identificateur EWS retourné dans l’élément AssociatedCalendarItemId .

  3. Comparez l’heure de début et de fin d’origine avec la nouvelle heure de réunion proposée. Si la nouvelle heure de réunion proposée est acceptable pour l’organisateur, passez à l’étape 4. Sinon, l’organisateur de la réunion peut ignorer l’heure de réunion proposée ou envoyer une réponse par e-mail au participant qui a proposé la nouvelle heure de réunion.

  4. (Facultatif) Effectuez un appel d’opération GetUserAvailability EWS pour savoir si l’heure proposée fonctionnera pour tous les participants, y compris les boîtes aux lettres de salle et de ressources. (Pour ce faire, vous pouvez également utiliser la méthode d’API managée EWS ExchangeService.GetUserAvailability .)

  5. L’organisateur peut ensuite mettre à jour sa réunion avec les nouvelles heures de réunion proposées et envoyer les mises à jour à tous les participants à l’aide de l’opération UpdateItem EWS (ou de la méthode d’API managée Appointment.Update EWS).

La figure suivante montre le processus qui se produit entre l’organisateur de la réunion, le participant et le serveur Exchange qui a géré les appels EWS.

Figure 1. Processus de proposition d’une nouvelle heure de réunion

La figure illustre le flux de travail entre l’organisateur, Exchange et un participant lorsqu’un nouvel horaire de réunion est proposé. Si l’organisateur autorise de nouvelles propositions de réunion, un participant peut proposer un nouvel horaire de réunion avec un objet de réponse.

Différences entre les versions

La nouvelle fonctionnalité d’heure proposée a été introduite dans la version de build Exchange 15.00.0800.007. Dans les versions antérieures d’Exchange, les utilisateurs de l’application EWS doivent envoyer un e-mail distinct à l’organisateur de la réunion pour demander une autre heure de réunion.

Voir aussi