Зміни до роботи imapClient.SyncImapFolder(UserConnection);
При завантаженні листів якимось чином завантажуються і вкладені файли.
Але типи цих файлів не визначаються, в результаті не спрацьовує плашка "Просмотр".
Спробував розібратися.
На BPMonline 5.4 є процес [LoadImapEmailsProcess].
В ньому у скрипті [ScriptTask2] (Загрузить Email Сообщения) виконується наступний код:
try {
using (var imapClient = new ImapClient(UserConnection, serverCredentials, true)) {
imapClient.SyncImapFolder(UserConnection);
}
} catch (ImapException e) {
var messagePanel = GetMainPageMessagePanel();
var warningCaption = new QuestionUserTask(UserConnection).WarningCaption;
messagePanel.AddMessage(warningCaption, e.Message, MessageType.Warning);
}
Це максимум з деталізації процесу завантаження активностей типу Email, що я знайшов.
Запитання: чи можна внести зміни в роботу процесу синхронізації і як це зробити ?
Нравится
Конечно. Если я не ошибаюсь, то ImapClient - это конфигурационный класс. Вы можете найти его исходники в конфигурации и модифицировать метод SyncImapFolder на свое усмотрение.
В описанні класу є такий рядок:
private static readonly ILog _log = LogManager.GetLogger(typeof(ImapClient));
Що це за [ILog] такий, куди він пише записи, що на нього відправляють ?
Игорь, это сторонняя утилита логирования - log4net. Подробное руководство есть тут:
http://logging.apache.org/log4net/
или тут:
http://www.codeproject.com/Articles/140911/log-net-Tutorial
или тут:
http://megadarja.blogspot.com/2008/04/log4net.html
Конфиг файл (log4net.config) лежит в каталоге ..\Terrasoft.WebApp
Є такий собі процес: LoadImapEmailsProcess (Загрузить e-mail сообщения из почтового ящика)
В ньому три скрипта:
ScriptTask1
ScriptTask2
ScriptTask3
В кожному з них я проставив по коду для тестування:
string logString = @"
[" + System.DateTime.Now.ToString() + @"]: LoadImapEmailsProcess.ScriptTask1Execute [0]
" + (char)13 + (char)10;
System.IO.File.AppendAllText("C:\\inetpub\\wwwroot\\BPMOnline\\ServiceRequestCardOpenLog\\Log.txt", logString);
(З циферками відповідними)
Даний процес використовується двома способами:
1) через інтерфейс BPMonline
2) через зовнішній запуск за допомогою
C:\inetpub\wwwroot\BPMOnline\ProcessExecutor54.exe http://bpmonline.local Login Password LoadImapEmailsProcess
Так от у випадку
1) у вказаний файл Log.txt інформація пишеться,
а при
2) не пишеться.
Хоча email-и завантажуються в обох випадках, але є і відмінності:
1) після завантаження email-повідомлень йде їх обробка і відповідні звернення відображаються в нових зверненнях і типи файлів успішно зафіксовані;
2) //--//--//-- звернення не відображаються в нових, хоча відображаються в усіх. Типи файлів не зафіксовані.
Треба забезпечити фіксацію типів файлів для всіх випадків використання, але ніяк не можу розібратися з зовнішнім запуском.
Добрый день!
Что просиходит в утилите ProcessExecutor54 я могу только догадаться, потому что у меня исходников нет. Возможно, есть проблема там. Например, авторизация происходит под каким-либо пользователем, "зашитым" в коде.
Попробуйте прямо в браузере выполнить GET-запрос к ProcessEngineService, например:
http://localhost:7508/0/ServiceModel/ProcessEngineService.svc/{PROCESSSCHEMANAME}/Execute
Тепер треба із стартом процесу через шедулер розібратися - стартує і не зупиняється (цикл 3 хв.)
Як правильно налаштувати шедулер для запуску процесу раз на 3 хвилини ?
Если речь о планировщике Windows, то Вам сюда:
https://technet.microsoft.com/ru-ru/library/cc721931.aspx
Если Вы про Quartz, то сюда:
http://www.quartz-scheduler.org/documentation/quartz-1.x/tutorials/cron…
Як взагалі користуватися планувальником я в курсі. Незрозуміло, як забезпечити циклічний запуск веб-сервісу. Раніше використовувалась утилітка ProcessExecutor54 для запуску бпм-сервісу, але ця утилітка некоректно відпрацьовує
Игорь, напишите свою утилитку, которая будет отправлять запрос.
Пример есть на SDK.