решения есть. но так просто их вам никто не даст, сами понимаете
цепочка примерно такая:
класс EventNotificationWorkflow отвечает за отправку e-mail, метод create(), из таблицы EventInbox, созданной ядром workflow ранее..
X++:
if (inbox.EmailTemplateId)
{
userInfo = SysUserInfo::find(inbox.UserId);
if (userInfo && userInfo.EventWorkflowTasksInEmail)
{
if (SysEmailDistributor::validateEmail(userInfo.Email))
{
inbox.SendEmail = true;
inbox.EmailRecipient = userInfo.Email;
this.sendMail();
}
}
}метод newInfoNoDrillDown() для задания параметров этой самой отправки, вызывается из класса-обработчика событий SysWorkflowEventDispatcher из метода sendNotifications()
X++:
notificationSettings = configNotification.getNotification(_action);
if (notificationSettings && notificationSettings.parmEnabled() == NoYes::Yes)
{
users = SysWorkflowEventDispatcher::resolveParticipant(_context, notificationSettings.parmAssignTo(), _notificationId);
setEnumerator = users.getEnumerator();
while(setEnumerator.moveNext())
{
// verify that the user has access to the data
documentData = Workflow::getDocumentRecord(_context, setEnumerator.current());
if (documentData.RecId == 0)
{
continue; // does this throw
}
subject = SysWorkflowEventDispatcher::getNotificationSubject(_notificationLevel, _notificationType, setEnumerator.current());
notification = EventNotificationWorkflow::newInfoNoDrillDown(
setEnumerator.current(),
subject,
WorkflowParameters::find().WorkItemEmailId);обратите внимание на выделенные места resolveParticipant() + notificationSettings.parmAssignTo() + setEnumerator.current(), именно там происходит "доставание" из ParticipantProvider нашей группы юзеров и
для каждого юзера запуск отправки сообщения. Тут, как мне кажется, и надо смотреть.