Я использую java XPage rest api, который работает с базой данных номеров и резервирования ресурсов. Он выполняется одним назначенным пользователем, который имеет полный доступ к базе данных.
Что я хочу сделать, так это перенести чью-либо встречу прямо через базу данных. Он работает, когда я просматриваю его в базе данных, собрание успешно обновляется, однако в календаре клиента заметок председателя собрание по-прежнему отображается таким, каким оно было, несмотря на получение электронного письма «Приняты:» с новой датой встречи (я думаю, что это так). должно быть "перенесено:" хотя ..)
Вот мой код, который создает ответный документ и отправляет его:
DateTime dt_startDateUTC = session.createDateTime(dtStart);
DateTime dt_endDateUTC = session.createDateTime(dtEnd);
Document docNew = reDatabase.createDocument(); // response doc
docAppointment.copyAllItems(docNew, true); // copy items from origianl doc
docNew.replaceItemValue("NoticeType", "U"); // update notice
docNew.replaceItemValue("CalendarDateTime", dt_startDateUTC);
docNew.replaceItemValue("SequenceNum", docAppointment.getItemValueInteger("SequenceNum") + 1); // bump SequenceNum
docNew.replaceItemValue("RmNameUpdated", "");
docNew.replaceItemValue("ResNameUpdated", "");
docNew.replaceItemValue("$RnRVersion", "2");
docNew.replaceItemValue("$CSVersion", "2");
docNew.replaceItemValue("Form", "Notice");
docNew.replaceItemValue("$NoPurge", dt_endDateUTC.getLocalTime());
docNew.replaceItemValue("StartDateTime", dt_startDateUTC);
docNew.replaceItemValue("StartDate", dt_startDateUTC);
docNew.replaceItemValue("StartTime", dt_startDateUTC);
docNew.replaceItemValue("RepeatInstanceDates", dt_startDateUTC);
docNew.replaceItemValue("EndDateTime", dt_endDateUTC);
docNew.replaceItemValue("EndDate", dt_endDateUTC);
docNew.replaceItemValue("EndTime", dt_endDateUTC);
docNew.removeItem("ReserveDate");
docNew.removeItem("step");
docNew.removeItem("$BusyPriority");
docNew.removeItem("$BusyName");
docNew.replaceItemValue("wgcIGNORE", "1");
docNew.replaceItemValue("$CSFlags", "w"); // taken from c&s workflow schema
docNew.replaceItemValue("Form", "Notice");
docNew.replaceItemValue("_ViewIcon", "33");
docNew.makeResponse(docAppointment);
docNew.send();
docNew.save();
docNew.recycle();
В логе моего сервера я вижу:
Router: Message 00325BD6, 0027FEE7 delivered to Room 1/Organization
Router: Message 00325C92 delivered to testuser/Organization
В клиенте заметок моего пользователя я вижу новое полученное письмо из комнаты 1 под заголовком «Принятые: тема собрания», и когда я его ввожу, даты являются правильными (перенесены), но когда я нажимаю «Открыть собрание», собрание все еще имеет старые даты.
Я что-то не так делаю? Как я могу обеспечить обновление этой встречи? Я уже пробовал много разных способов, но без удачи. Я не могу изменить календарь пользователя напрямую, потому что мне нужно было бы назначить доступ к почтовой базе данных каждого пользователя, и это было бы небезопасно.