2016-05-03 6 views
0

Ich ews-java-api und eine Menge ProblemeExchange Kalender, Erstellen von Terminen und eindeutigen IDs

ich Termine erstellen und auch hören für Termine an anderer Stelle erstellt.

Mein Problem ist, ich mit

new Appointment(exchangeService).save(notificationMode) 

Ich spare auch die Termindetails einschließlich UniqueId den Termin erstellen, lasse es nennen x, meinen db

ich die Verabredung im Austausch kein Problem auftreten sehen, Ich sehe dann eine Benachrichtigung, dass es automatisch akzeptiert wurde (ich kann automatisch für den Raum akzeptieren und immer noch das gleiche Problem unten.

Dann sehe ich meine Exchange-Teilnehmer Kick-Off, wie es die Benachrichtigung Ereignisse aus dem Austausch erhält, dass ein neu a Punkt wurde erstellt. Ich scheine jedes Mal 4 Ereignisse, ein erstelltes Ereignis, zwei modifizierte Ereignisse und ein Ereignis zu erhalten.

Das Problem ist, jedes dieser Ereignisse haben eine eindeutige ID von y nicht x, wie ich es erwarten würde.

Das bedeutet, dass ich nicht überprüfen kann, ob dies ein Termin ist, den ich bereits erstellt habe.

Ich bekomme nie ein Ereignis mit der ursprünglichen uniqueId x, wie ich es erwarten würde. Ich weiß, dass sich einzigartige IDs ändern können, und das ist scheiße, aber es scheint kein anderes Feld zu geben, das ich benutzen kann.

Irgendwelche Ideen, was ich tun kann, um das Problem zu umgehen/zu beheben?

Antwort

1

Eine angegebene ID für ein Element ändert sich, wenn sich das aktive Verzeichnis ändert, in dem es sich befindet. Es hört sich so an, als ob deine automatische Annahme den Gegenstand bewegt. Ich habe dieses Szenario nicht getestet.

Wenn Sie eine einfache .save() -Methode ausführen, erhalten Sie beim nächsten Push/Pull-Vorgang ein Erstellungs- und ein Modifikations-Ereignis vom Exchange zurück. Es scheint keinen Weg zu geben, dies zu verhindern. Sie sollten die gleiche ID haben wie die, die Sie von Ihrer Sicherung erhalten haben. Sie müssen nur überprüfen, ob Sie bereits den Artikel für das Erstellen haben. Für die Änderung kann ich nicht für Microsoft sprechen, warum wir eine Änderung erhalten, aber es sollte genau das gleiche wie die Erstellung sein.

Sie erhalten dann ein Modify und ein move-Ereignis, wenn das Element Verzeichnisse geändert hat. Diese zwei Elemente haben andere IDs als die, die Sie beim ursprünglichen Speichern erhalten haben. Das ItemEvent hat eine oldItemId, von der ich glaube, dass Sie sie verwenden können. Es ist auch möglich, die GUID aus diesen IDs heraus zu analysieren, was sich nicht ändert, aber keine wirkliche Notwendigkeit, das zu tun, denke ich. Der beste Ansatz könnte darin bestehen, die OldItemId zu verwenden und das move-Ereignis zu verarbeiten.

Verwandte Themen