【问题标题】:Exchange Calendar, creating appointments and unique ids交换日历,创建约会和唯一 ID
【发布时间】:2016-08-10 22:53:28
【问题描述】:

我正在使用 ews-java-api 并且有很多问题

我创建约会并监听其他地方创建的约会。

我的问题是我创建了约会

new Appointment(exchangeService).save(notificationMode)

我还将约会详细信息(包括 uniqueId,我们称之为 x)保存到我的数据库中

我看到约会出现在交换没有问题,然后我看到一个通知,它已被自动接受(我可以关闭房间的自动接受,但仍然遇到下面同样的问题。

然后我看到我的 Exchange 订阅者启动了,因为它从 Exchange 接收到已创建新约会的通知事件。我似乎每次都会得到 4 个事件,一个创建事件,两个修改事件和移动事件。

问题是这些事件中的每一个都有一个 y 而不是我期望的 x 的 uniqueId。

这意味着我无法检查这是否是我已经创建的约会。

我从来没有像我期望的那样收到带有原始 uniqueId x 的事件。我知道唯一 ID 可以更改,这很糟糕,但似乎没有任何其他字段可以使用。

有什么想法可以解决/解决这个问题吗?

【问题讨论】:

    标签: java exchange-server exchangewebservices ewsjavaapi


    【解决方案1】:

    当项目所在的活动目录发生变化时,项目的给定 ID 将发生变化。听起来您的自动接受正在移动该项目。我没有测试过这种情况。

    如果您执行一个简单的 .save(),您将在下一次推送/拉取时从交换中获得创建和修改事件。似乎没有办法阻止这种情况。它们应该与您从保存中获得的 id 相同。您只需要检查您是否已经拥有要创建的项目。对于修改,我不能代表微软说我们为什么要修改,但它应该与创建完全相同。

    然后,当项目更改目录时,您将获得修改和移动事件。这 2 个项目的 ID 与您在原始保存期间收到的 ID 不同。 ItemEvent 有一个我相信您可以使用的 oldItemId。也可以从这些 id 中解析出 GUID,这些 id 不会改变,但我认为不需要这样做。最好的方法可能是使用 OldItemId 并处理移动事件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-28
      • 2015-09-26
      相关资源
      最近更新 更多