Добрый день!
Очень беспокоит вопрос появления напоминаний о создании новых E-mail сообщений по инциденту. Не знаю в какой момент, но у ответственного пользователя по инциденту появляются напоминания о том, что у инцидента появилось новое E-mail сообщение. Посмотрев деталь E-mail в инцидентах я действительно нашел там новые сообщения. Никто их туда специально не привязывал. Значит, получается, что при разборе почты каким-то образом это сообщение автоматически привязалось к инциденту. Я догадываюсь, что автоматическая привязка происходит по теме сообщения и номеру инцидента. Но это не совсем корректно, т.к. к инциденту номер 200 привязываются сообщения с темой "АКЦИЯ! Рекламный авиатур в Черногорию 200 евро!".
Как настроить корректную работу данного функционала или отключить его вообще?
Нравится
"Ozzy" написал:Значит, получается, что при разборе почты каким-то образом это сообщение автоматически привязалось к инциденту. Я догадываюсь, что автоматическая привязка происходит по теме сообщения и номеру инцидента.
Да, так и есть. В скрипте scr_MailLinks это делают функции FindIncidentNumber и GetIncidentDataBySubject:
function FindIncidentNumber(Str) { var Mask = GetSystemParameterValueEx('IncidentMask', false); var NumList = Str.match(/(\d+)/g); if (!NumList) { return; } for (var i = 0; i < NumList.length; i++) { var Num = Mask.replace(/\%1/g, NumList[i]); var SafeNum = '(^|:|#|№|-|\\s+)' + NormalizeForRegex(Num) + '(\\s|\\.|$)'; if (Str.match(new RegExp(SafeNum, 'ig'))) { return Num; } } } function GetIncidentDataBySubject(Subject) { if (!System.GetHasLicense('Incidents')) { return false; } var IncidentNumber = FindIncidentNumber(Subject); if (!IncidentNumber) { return null; } var SelectQuery = GetSingleItemByCode('sq_GetIncidentDataByNumber', 'MailLinks'); SelectQuery.Parameters('IncidentNumber').Value = IncidentNumber; var Dataset = SelectQuery.Open(); try { if (IsDatasetEmpty(Dataset)) { return null; } return LoadRecord(Dataset); } finally { Dataset.Close(); } }
Если эта логика вообще не нужна, то можно во второй функции в начале вписать return null; .
Если же хочется привязывать к инцидентам только нужные письма, можно договориться о формате номера (например, [200] или #200) и соответствующим образом модифицировать первую функцию.
Странно. То есть напоминания по новым письмам, пришедшим после изменения кода и перезапуска Аутлука?
Ozzy, закомментируйте в function SaveMailItem(MailItem, Options) сервиса scr_MSOutlookLibrary строку:
Incident = GetIncidentDataBySubject(MailItem.Subject);
Если функция GetIncidentDataBySubject уже отключена изнутри, какой смысл отключать все её вызовы? Надо смотреть, может, похожая логика сделана ещё где-то отдельно.