Добрый день!
Как стартовать (и можно ли вообще) БП при получении нового емейла? На событии AfterPost датасета мейла похоже ничего не работает. Не совсем понимаю как работает синхронизация с аутлуком, поэтому не знаю куда копать.
Жду помощи.
Нравится
Добавление писем выполняется посредством isq_MailMessage.
Чтобы решить Вашу задачу обратите внимание на скрипт scr_MSOutlookLibrary, а именно функцию function SaveMailItem(MailItem, Options).
В какой момент выполняется эта функция? И куда код лучше там вставить? Вставлял после кода:
try { if (!IsDatasetEmpty(ContentDataset)) { ContentDataset.Edit(); if (ContentField) { ContentField.LoadFromFile(FileName); ContentDataset.Post(); } } } finally { ContentDataset.Close(); ApplyDatasetIDFilter(ContentDataset, null, false); }
и в конец функции, но мой код не выполняется.
Вот, что вставлял (тестовый код):
var TaskDataset = Services.GetNewItemByUSI('ds_Territory'); TaskDataset.Open(); TaskDataset.Append(); TaskDataset('Name') = 'TestTestTestTest'; TaskDataset.Post(); TaskDataset.Close();
Для реального кода нужно получить ID письма, я думаю это MessageID
Попробуйте прописать логику после строки
var MessageID = SaveMailItemToDatabase(MailItem, Options.IsReceiving);
Для проверки поставила отладчик, он отрабатывает при интеграции письма в систему.
А когда вообще срабатывает это событие, не на открытие грида мэйлов?
Я имел ввиду в какой момент происходит интеграция писем в Terrasoft
Интеграция происходит в двух случаях:
- вручную: при вызове команды интеграции в MS Outlook;
Здесь отрабатывает логика конфигурации.
- автоматически: при установленном свойстве "Автопривязка сообщений".
MS Outlook отправляет сообщение ядру, ядро его принимает и вызывает процедуру конфигурации.
Добрый день!
А из-за чего может не обновляться этот скрипт? Т.е. я изменил скрипт, но при выполнении выполняется старая версия, будто и не изменял ничего.
Очистите Cache, если не поможет, нужно проверять с отладчиком.