03.08.2010, 16:03 | #1 |
Участник
|
Документооборот
В функциональности документооборота AX 2009 перекрыл ParticipantProvider для того что бы отправлять уведомления пользователям, которые выбраны в списке для текущего документа(для каждого документа список сотрудников, которым отправляется уведомление, разный). А вот воспользоваться группой пользователей, созданной в ParticipanrProvider для отправки уведомлений по e-mail не удается. Есть какие-то решения, модифицирующие стандарный функционал, для отправки сообщений пользователям из указанной группы.
|
|
04.08.2010, 11:24 | #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. |
|
04.08.2010, 12:16 | #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()); } |
|
04.08.2010, 12:21 | #4 |
Участник
|
а теперь расшифруйте, что изменилось? я так понял этот кусок отвечает за список отображаемый при нажатии на кнопку "Выбрать" в назначении для шага?
|
|
|
Похожие темы | ||||
Тема | Ответов | |||
Документооборот | 9 | |||
Про документооборот | 30 | |||
Документооборот. Создание файла по шаблону. | 4 | |||
Документооборот | 1 | |||
Кто нибудь пытался релизовать ДОКУМЕНТООБОРОТ в Аксапта? | 10 |
|