понедельник, 29 июня 2009 г.

Установка признака "Прочтен" у почтового сообщения в бизнес-процессе

Если ваш бизнес-процесс работает с письмами, а затем их удаляет. При этом возможно возникновение ситуации, когда отправитель установил признак "Уведомлять о прочтении", а т.к. процесс письмо после обработки удалил, то Exchange отправит уведомление типа

Ваше письмо было удалено без прочтения

Пользователь сразу начинает злиться, что его письма удаляют. До недавнего времени и наши процессы в техподдержке этим страдали.

Решает проблему простенький сценарий.

' подключение системных библиотек
Imports System
Imports System.Xml

' подключение библиотек СУБП
Imports DocsVision.Workflow.Objects
Imports DocsVision.Workflow.Runtime
Imports DocsVision.Workflow.Gates
Imports DocsVision.Platform.HelperAPI

Namespace DVScriptHost

Public Class DVScript

Public Sub Execute(ByVal process As ProcessInfo, ByVal passInfo As PassState)

Try
' шлюз в почту
' Dim oEXGate As ExGate = CType(process.Gates(ExGate.GateID), ExGate)

' почтовое сообщение
Dim varMail As ProcessVariable = process.GetVariableByName("Сообщение")
Dim oMail As ExMessage = CType(varMail.Value, ExMessage)
oMail.Unread = False

Catch Err As Exception

' запись в журнал ошибки исполнения
process.LogMessage("Ошибка выполнения скрипта:" + Err.Message)

End Try

End Sub


End Class

End Namespace



В бизнес-процессе, переменная "Сообщение" имеет тип "Почтовое сообщение" и хранит в себе письмо.
Ура! Пользователи довольны, увидев сообщение типа "Сообщение прочитано: 29 июня 2009 г. 17:31:13 (GMT+03:00) Волгоград, Москва, Санкт-Петербург", которое теперь отправляет Exchange.

2 комментария:

  1. Пробовал для сервера SMTP/POP3 - выдает ошибку: Ошибка выполнения скрипта:The method or operation is not implemented.

    Как возможно для сервера SMTP/POP3 сделать прочитанным сообщение?

    Как возможно удалить сообщение с сервера SMTP/POP3 из Бизнес-процесса ?

    ОтветитьУдалить
  2. Mikle - проверим с SMTP|POP3. Только этот вопрос не быстрый :)

    ОтветитьУдалить