交换日历,创建约会和唯一ID

时间:2016-05-03 17:33:52

标签: java exchange-server exchangewebservices ewsjavaapi

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

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

我的问题是我用

创建约会
new Appointment(exchangeService).save(notificationMode)

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

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

然后我看到我的交换用户启动,因为它从交换机接收到已创建新约会的通知事件。我似乎每次都有4个事件,一个创建的事件,两个修改过的事件和移动事件。

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

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

我从来没有像我期望的那样获得原始uniqueId x的事件。我知道独特的ID可以改变,这很糟糕,但似乎没有任何其他领域我可以使用。

我可以做些什么来解决/解决这个问题?

1 个答案:

答案 0 :(得分:1)

项目的给定ID将在其所在的活动目录发生更改时发生更改。听起来你的汽车接受正在移动物品。我没有测试过这个场景。

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

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