2016-08-17 3 views
1

У меня есть приложение, которое синхронизирует встречи между Outlook и моим приложением. Код синхронизации использует Redemption для обновления встреч в Outlook.Обновление исправления Outlook назначение потенциально может вызвать ошибку сохранения Outlook

Когда в Outlook добавлена ​​встреча, мой код улавливает добавленное событие, генерирует эквивалентную встречу в моем приложении и добавляет мой идентификатор назначения в качестве свойства пользователя в назначении Outlook, а затем сохраняет его.

Странная проблема, у меня есть это:

  1. Один клик на день в месяц зрения
  2. Текстовый блок показывает в день блок, типа в теме, а затем нажмите Enter
  3. Дважды щелкните на новое назначение, чтобы открыть его сразу
  4. сделать некоторые изменения, такие как установка напоминания
  5. Хит кнопку сохранения

На этом этапе Outlook покажет мне окно с сообщением «Элемент не может быть сохранен, потому что он был изменен другим пользователем или в другом окне».

Я нахожу это случающимся довольно часто, если у меня включена функция добавления синхронизации, но никогда не произойдет, если я отключу ее.

Почти похоже, что Outlook обнаруживает изменение моего кода, сохраняя свойство пользователя через Redemption и ему не нравится.

Это потому, что Redemption обращается к таблице MAPI непосредственно, чтобы сохранить данные, а Outlook все еще кэширует объект COM встречи, когда я открываю его слишком быстро. Так что назначение, которое я открыл, «устарело» к моменту, когда я хочу снова его сохранить?

Перспективы версии я тестируется является Перспективы 2016.

ответ

1

Эта ошибка возвращается, если происходит следующее:

  1. Ваш код (или Outlook) открывает пункт
  2. Redemption открывает пункт
  3. Redemption модифицирует предмета
  4. Redemption сохраняет его
  5. внешний вид (или код) м odifies и сохраняет элемент

Вы можете убедиться, что прогноз не открывает пункт в # 1 или (если он уже открыт) Outlook, вы можете PiggyBack на элементе Outlook, и открыть его с помощью RDOSession.GetRDOObjectfromOutlookObject на этапе # 2.

Смежные вопросы