|
|
#1 |
|
Участник
|
Документооборот
В функциональности документооборота AX 2009 перекрыл ParticipantProvider для того что бы отправлять уведомления пользователям, которые выбраны в списке для текущего документа(для каждого документа список сотрудников, которым отправляется уведомление, разный). А вот воспользоваться группой пользователей, созданной в ParticipanrProvider для отправки уведомлений по e-mail не удается. Есть какие-то решения, модифицирующие стандарный функционал, для отправки сообщений пользователям из указанной группы.
|
|
|
|
|
#2 |
|
Участник
|
решения есть. но так просто их вам никто не даст, сами понимаете
![]() цепочка примерно такая: класс 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(); } } } 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);Последний раз редактировалось dmitro; 04.08.2010 в 11:27. |
|
|
|
|
#3 |
|
Участник
|
Решение нашел. Class WorkflowConfigurationForm
void getNotificationListAssignTo_clicked(Common record) { WorkflowConfigPersonPickerControl workflowPersonPickerControl; WorkflowConfigControlData data = this.setControlData(record); WorkflowNotificationTmp notification = record; WorkflowStep step = WorkflowStep_Task::construct(); // добавил SysDictWorkflowElement sysDictWorkflowElement; // добавил ; // добавил sysDictWorkflowElement = new SysDictWorkflowElement(WorkFlowElementType::Approval, tmpWorkflowElementTable.ElementName); data.parmParticipantProvider(sysDictWorkflowElement.participantProvider()); // добавил //закоментировал //data.parmParticipantProvider(classstr(WorkflowUserGroupParticipantProvider)); //закоментировал // hierarchy resolution not available for notifications. data.parmHierarchyProvider(''); step.parmConditions(configuration.parmConfigurationConditions()); data.parmStep(step); workflowPersonPickerControl = WorkflowConfigPersonPickerControl::newForm(tablenum(WorkflowNotificationTmp), fieldnum(WorkflowNotificationTmp, AssignTo)); workflowPersonPickerControl.clicked(data); configuration.parmConfigurationConditions(step.parmConditions()); } |
|
|
|
|
#4 |
|
Участник
|
а теперь расшифруйте, что изменилось? я так понял этот кусок отвечает за список отображаемый при нажатии на кнопку "Выбрать" в назначении для шага?
|
|
|
|
|
Похожие темы
|
||||
| Тема | Ответов | |||
| Документооборот | 9 | |||
| Про документооборот | 30 | |||
| Документооборот. Создание файла по шаблону. | 4 | |||
| Документооборот | 1 | |||
| Кто нибудь пытался релизовать ДОКУМЕНТООБОРОТ в Аксапта? | 10 | |||
|