AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
DAX
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.07.2022, 09:39   #1  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,283 / 3491 (123) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
А в чём проблема? Есть элементы WF в АОТе, они ссылаются на классы - там логика. Фантазии можно разные реализовать
__________________
Возможно сделать все. Вопрос времени
Старый 05.07.2022, 10:01   #2  
axm2017 is offline
axm2017
Участник
 
1,772 / 293 (13) ++++++
Регистрация: 15.05.2017
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
А в чём проблема? Есть элементы WF в АОТе, они ссылаются на классы - там логика. Фантазии можно разные реализовать
Ну вот как то сразу не понимаю куда смотреть (пока не сильно погружен в эту тему увы).
Сценарий из разряда
есть WF с параллельными заданиями
например условно ищут потерянные вещи сотрудники А Б (параллельно ищут вещь 1)
и С с D (ищут другую вещь 2))
при одобрении сотрудниками AA или ББ знающими как выглядит вещь 1 факта что сотрудник А нашел нужную вещь отпускаем с чистой совестью и А и Б но С и D продолжает трудиться для них ободрить могут ББ и CC.
Старый 05.07.2022, 15:56   #3  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,283 / 3491 (123) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от axm2017 Посмотреть сообщение
например условно ищут потерянные вещи сотрудники А Б (параллельно ищут вещь 1)
и С с D (ищут другую вещь 2))
при одобрении сотрудниками AA или ББ знающими как выглядит вещь 1 факта что сотрудник А нашел нужную вещь отпускаем с чистой совестью и А и Б но С и D продолжает трудиться для них ободрить могут ББ и CC.
Ну тут надо понимать - что WF - это в первую очередь утверждение чего-то применительно к конкретной записи в таблице и фиксация выполненной работы (обработка взятой на себя заявки) опять-таки в привязке к конкретной записи в таблице.
Т.е. WF не задумывался в роли алгоритма поиска потерянных вещей, т.е. ситуация, когда А нашел чего-то, а C и D ещё ищут - неприменима для WF (понятно, что "натянуть" функционал с некоторыми ограничениями можно всегда)
__________________
Возможно сделать все. Вопрос времени
Старый 07.07.2022, 11:00   #4  
axm2017 is offline
axm2017
Участник
 
1,772 / 293 (13) ++++++
Регистрация: 15.05.2017
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
...
Т.е. WF не задумывался в роли алгоритма поиска потерянных вещей, т.е. ситуация, когда А нашел чего-то, а C и D ещё ищут - неприменима для WF (понятно, что "натянуть" функционал с некоторыми ограничениями можно всегда)
Судя по коду как раз что то такое (А нашел закрываем и Б) хотели делать при параллельных заданиях и не только.
Типичное в коде SysWorkflowWorkItem метод completeWorkItems
X++:
while select forupdate
            *
        from workItemTable
        where
            // BP deviation documented
            workItemTable.CorrelationId == _correlationId &&
            workItemTable.StepId == _stepId
        {
            if (workItemTable.Status != WorkflowWorkItemStatus::Completed)
            {
                if (_isClaimed && workItemTable.ActivityId == _claimedActivityId)
                {
                    if (workItemTable.Queue)
                    {
                        SysWorkflowWorkItem::completeNotification(workItemTable.CompanyId, workItemTable.NotificationId);
                        workItemTable.NotificationId = 0;
                        workItemTable.UserId = _user;
                        workItemTable.Subject = _subject;
                        workItemTable.Description = _instructions;
                    }
                    workItemTable.IsClaimed = NoYes::Yes;
                }
                else
                {
                    workItemTable.Status = WorkflowWorkItemStatus::Completed;

                    SysWorkflowWorkItem::completeNotification(workItemTable.CompanyId, workItemTable.NotificationId);
                    workItemTable.NotificationId = 0;
                }
                workItemTable.update();
            }
Де факто закрывают часть заданий скопом
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
DAX2009: как можно добавить текст перед Microsoft Dynamics AX oleggy DAX: Программирование 2 10.07.2020 13:08
atinkerersnotebook: Developing a Product Approval Workflow in Dynamics AX 2012 Blog bot DAX Blogs 0 09.11.2013 17:12
Как можно изменить цвет шрифта в Excel? Hidden DAX: Программирование 4 15.04.2005 12:33
Можно ли изменить дату введения в экслуатацию velk DAX: Функционал 2 20.08.2004 17:18
Можно ли изменить Enum типа NoYes или PrintMedium? funnut DAX: Программирование 1 08.07.2004 14:21

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 01:15.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.