Vorschlagen einer neuen Besprechungszeit mithilfe von EWS in Exchange

Erfahren Sie, wie Sie neue Besprechungszeiten aus Ihrer Exchange-Clientanwendung mithilfe von EWS in Exchange vorschlagen.

Mit dem Feature neue Zeit vorschlagen können Teilnehmer dem Besprechungsorganisator neue Besprechungszeiten als Teil des Exchange-Kalenderworkflows vorschlagen. Wenn ein Teilnehmer eine neue Besprechung vorschlägt, kann der Organisator die vorgeschlagene neue Besprechungszeit verwenden, um die Besprechung zu aktualisieren und Updates an alle Teilnehmer zu senden. Bevor Sie teilnehmern das Vorschlagen neuer Besprechungszeiten ermöglichen können, müssen Sie bestimmen, ob der Organisator neue Zeitvorschläge zulässt. In diesem Artikel wird beschrieben, wie Sie bestimmen, ob Sie einen neuen Zeitpunkt vorschlagen können und wie Sie EWS verwenden, um eine neue Uhrzeit vorzuschlagen.

Hinweis

Die verwaltete EWS-API implementiert diese Funktion nicht.

Bestimmen Sie mithilfe von EWS, ob Sie eine neue Zeit für eine Besprechung vorschlagen können.

Bevor Sie eine neue Zeit für eine Besprechung vorschlagen können, müssen Sie einen Verweis auf diese Besprechung suchen und bestimmen, ob der Besprechungsorganisator die Besprechung so konfiguriert hat, dass neue Zeitvorschläge unterstützt werden. Sie können einen Verweis auf eine Besprechung abrufen, indem Sie eine der folgenden Aktionen ausführen:

  • Suchen der Besprechungsanfrage im Posteingang

  • Suchen des Termins im Kalender

Führen Sie die folgenden Schritte aus, um nach einem Besprechungsverweis zu suchen:

  1. Verwenden Sie den EwS-Vorgang FindItem (oder die Methode der verwalteten EWS-API folder.FindItems ), um die Zielbesprechungsanforderung oder das Kalenderelement zu finden. Alternativ können Sie den EWS-Vorgang SyncFolderItems verwenden, um den Bezeichner der Zielbesprechungsanforderung oder des Kalenderelements abzurufen.

  2. Analysieren Sie die Ergebnisse des FindItem-Vorgangs (oder der Folder.FindItems-Methode ), um den Elementbezeichner des Besprechungselements abzurufen.

  3. Verwenden Sie den EWS-Vorgang GetItem , um die Antwortobjekte für die Besprechung abzurufen.

Der folgende XML-Code zeigt, was gesendet wird, um die Antwortobjekte für ein Element anzufordern.

<?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>

Die GetItem-Vorgangsantwort sieht ähnlich wie der folgende XML-Code aus, wenn Sie den Elementbezeichner, die Start- und Endzeit der Besprechung, die Antwortobjektauflistung anfordern und wenn der Organisator vorgeschlagene Änderungen an der Besprechungszeit zulässt. Die Antwortobjektauflistung, die durch das ResponseObjects-Element dargestellt wird, enthält den Satz von Antworten, die für das Kalenderelement gültig sind. Das ProposeNewTime-Element ist ein Antwortobjekt, das angibt, dass der Benutzer eine neue Zeit für die Besprechung vorschlagen kann. Die Elemente AcceptItem, TentativelyAcceptItem und DeclineItem stellen die Antwortobjekte dar, mit denen Sie dem Besprechungsorganisator eine neue Besprechungszeit vorschlagen können.

<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>

Vorschlagen einer neuen Besprechungszeit mithilfe von EWS

Wenn Sie ein ProposeNewTime-Antwortobjekt erhalten haben, als Sie den GetItem-Vorgang zum Abrufen eines Kalenderelements oder einer Besprechungsanfrage verwendet haben, können Sie mit einer vorgeschlagenen neuen Besprechungszeit antworten. Wenn Sie kein ProposeNewTime-Antwortobjekt erhalten haben, können Sie keine neue Besprechungszeit als Teil des Kalenderworkflows vorschlagen. Sie können jedoch dem Organisator antworten, um eine neue Besprechungszeit anzufordern. Wenn Sie ein ProposeNewTime-Antwortobjekt erhalten, können Sie auf die Besprechung antworten, indem Sie auf deren Bezeichner verweisen und dem Organisator eine neue Besprechungszeit vorschlagen. Hier unterscheidet sich das ProposeNewTime-Antwortobjekt vom typischen Antwortobjektmuster darin, dass Sie nicht mit einem ProposeNewTime-Antwortobjekt antworten. Sie verwenden eines der anderen Besprechungsantwortobjekte, z. B. AcceptItem, TentativelyAcceptItem oder DeclineItem, um eine neue Besprechung vorzuschlagen. In diesem Beispiel wird das AcceptItem-Antwortobjekt verwendet.

<?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>

Die Antwort auf diese Anforderung enthält den Bezeichner des Kalenderelements, das dem Kalender des Teilnehmers hinzugefügt wurde, und eine Kopie der Besprechungsanfrage, die im Ordner "Gelöschte Elemente" des Teilnehmers abgelegt wurde. Die Antwortnachricht mit dem neuen Zeitvorschlag wurde auch im Ordner "Gesendete Elemente" des Teilnehmers gespeichert (Sie müssen die Antwortnachricht der Besprechung finden, um ein Handle dafür zu erhalten).

<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>

Der Organisator erhält eine MeetingResponse-Nachricht , wenn der Teilnehmer mit einer vorgeschlagenen neuen Besprechungszeit antwortet. Die MeetingResponse-Nachricht enthält die vorgeschlagene neue Start- und Endzeit der Besprechung sowie den Bezeichner des zugeordneten Kalenderelements im Kalender des Organisators. Der Organisator kann diese Informationen verwenden, um sein vorhandenes Kalenderelement für die Besprechung zu aktualisieren. Im Folgenden finden Sie den Workflow, mit dem der Organisator auf eine BesprechungAntwortnachricht antwortet, die eine neue Besprechungszeit vorschlägt:

  1. Bestimmen Sie, ob die Elemente ProposedStart oder ProposedEnd in MeetingResponse festgelegt wurden. Wenn ja, fahren Sie mit Schritt 2 fort. Andernfalls gibt die MeetingResponse-Nachricht nur an, ob der Teilnehmer die Besprechung akzeptiert, mit Vorbehalt angenommen oder abgelehnt hat.

  2. Rufen Sie das vorhandene Kalenderelement des Organisators für die Besprechung mithilfe des EWS-Bezeichners ab, der im AssociatedCalendarItemId-Element zurückgegeben wird.

  3. Vergleichen Sie die ursprüngliche Start- und Endzeit mit der vorgeschlagenen neuen Besprechungszeit. Wenn die vorgeschlagene neue Besprechungszeit für den Organisator akzeptabel ist, fahren Sie mit Schritt 4 fort. Andernfalls kann der Besprechungsorganisator entweder die vorgeschlagene Besprechungszeit ignorieren oder eine E-Mail-Antwort an den Teilnehmer senden, der die neue Besprechungszeit vorgeschlagen hat.

  4. (Optional) Führen Sie einen GetUserAvailability EWS-Vorgangsaufruf aus, um herauszufinden, ob die vorgeschlagene Zeit für alle Teilnehmer funktioniert, einschließlich Raum- und Ressourcenpostfächern. (Hierzu können Sie auch die ExchangeService.GetUserAvailability EWS Managed API-Methode verwenden.)

  5. Der Organisator kann dann seine Besprechung mit den neuen vorgeschlagenen Besprechungszeiten aktualisieren und die Updates mithilfe des EWS-Vorgangs UpdateItem (oder der Methode der verwalteten EWS-API Appointment.Update ) an alle Teilnehmer senden.

Die folgende Abbildung zeigt den Prozess zwischen dem Besprechungsorganisator, dem Teilnehmer und dem Exchange-Server, der die EWS-Anrufe verarbeitet hat.

Abbildung 1: Prozess zum Vorschlagen einer neuen Besprechungszeit

In der Abbildung wird der Workflow zwischen dem Organisator, Exchange und einem Teilnehmer dargestellt, wenn eine neue Besprechungszeit vorgeschlagen wird. Wenn der Organisator neue Vorschläge für Besprechungen zulässt, kann ein Teilnehmer eine neue Besprechungszeit mit einem Antwortobjekt vorschlagen.

Versionsunterschiede

Das Feature neue Zeit vorschlagen wurde in der Exchange-Buildversion 15.00.0800.007 eingeführt. In früheren Versionen von Exchange müssen EWS-Anwendungsbenutzer eine separate E-Mail an den Besprechungsorganisator senden, um eine andere Besprechungszeit anzufordern.

Siehe auch