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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.04.2011, 15:13   #21  
propeller is offline
propeller
Участник
Аватар для propeller
 
359 / 29 (1) +++
Регистрация: 25.07.2007
Правильно ли я понимаю, для того чтобы создать свой шаблон с возможностью утверждения например клиентов, необходимо в табличку CustTable добавить поле со статусом, что-то вроде WorkflowApprovalStatus. И основываясь на этом статусе позволять пользователям утверждать/отклонять и т.п. ? (помимо того, что советуем нам Аманд)

Последний раз редактировалось propeller; 28.04.2011 в 15:17.
Старый 28.04.2011, 15:21   #22  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2161 (81) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Да.
__________________
Ivanhoe as is..
За это сообщение автора поблагодарили: propeller (1).
Старый 28.04.2011, 16:59   #23  
mit is offline
mit
Участник
Аватар для mit
 
386 / 36 (2) +++
Регистрация: 15.01.2003
Адрес: Moscow
Если речь идет о штатном механизме (его и советует использовать аманд), то меняем только методы на форме. если не о нём, то всё что угодно. в том числе и добавить поле статуса
__________________
Дом поросенка должен быть крепостью. (Наф-Наф, полн. собр. соч., т.5, стр. 286)
Старый 28.04.2011, 20:51   #24  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2161 (81) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Простите, вы считаете, что Аманд привел реальный рабочий пример? Каждый раз надо на форме менять метод?? ))

Чтобы хотя бы понять, отправлен уже на рассмотрение клиент или нет, понадобится некий признак. Также если вы хотите нормально реализовать отзыв клиент (запрос на отмену утверждения), то без промежуточных статусов также не обойтись (нужен признак отзыва до срабатывания cancel самого workflow). Ну и сам факт утверждения надо как-то в системе отметить - иначе зачем весь этот workflow?
__________________
Ivanhoe as is..
Старый 28.04.2011, 22:09   #25  
mit is offline
mit
Участник
Аватар для mit
 
386 / 36 (2) +++
Регистрация: 15.01.2003
Адрес: Moscow
да я считаю, что аманд привел реальный рабочий пример, так как я сам по этому примеру настраивал воркфло. да, каждый раз, когда Вы хотите включить для формы воркфло нужно перекрывать метод, описанный в инструкции. перекрытие метода даёт доступ к полному функционалу воркфло и не к тому, что придумал программист, а к тому, котроый можно менять в соответствии с текущими потребностями администратором или ответственным пользователем. стандартный воркфло даёт возможности через настройки реализовывать различные маршруты утверждения с условиями, делегированием, уведомлением, с версиями маршрутов и т.п. в тройке такого не было, писал сам. а здесь - сказка. нравится писать - флаг в руки. но у меня на написание уилиты, прикручивающей к любой форме по умолчанию для таблицы этот самый воркфло ушло меньше времени, чем написание с нуля самописного воркфло (про поддержку алгоритма молчу - страшно вспомнить)
__________________
Дом поросенка должен быть крепостью. (Наф-Наф, полн. собр. соч., т.5, стр. 286)
Старый 28.04.2011, 22:32   #26  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2161 (81) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Я не против системы Workflow, я ее использую на проектах. Мои замечания к статье Аманд - это не описание полноценного примера, это скорее туториал для ознакомления.

Последовательность действий по утверждению клиентов, судя по документу нужно:
1. Есть стандартная форма клиентов. Без статуса.
2. Заводим нового клиента - что нужно сделать администратору чтобы его послать на утверждение? Кроме настройки бизнес-правила нужно на форме поменять метод canSubmitToWorkflow()? Ок, меняем.
3. Что нужно сделать администратору, чтобы по клиенту из п.2. сделать утверждение? Поменять метод canSubmitToWorkflow() назад? Ок, меняем метод, утверждение пока не делаем - допустим ответственный думает.
4. Заводим нового клиента и хотим отправить на утверждение - опять что ли меняем метод canSubmitToWorkflow() на форме???? В этот момент, у вас по всем клиентам станет доступна только отправка на утверждение, в т.ч. по клиенту из п.2.
5. Какой признак в системе у утвержденного клиента? Кроме истории утверждения? Сама история по себе никому не нужна. Нужно, как правило, проставить некий статус, ну или, убрать блокировку с клиента, чтобы на него можно было заводить документы - это нужно явно программировать.

Если вы внимательно посмотрите на существующие в системе шаблоны workflow, то везде у документа есть некий статус, от которого и зависит вся обработка. И, кстати, в стандарте нет ни одного универсального шаблона, который бы позволил настроить все возможные действия, откаты, утверждения и задачи в рамках одного документа.

Чтобы пользователь мог настроить любое бизнес-правило, нужно правильно запрограммировать workflow - предусмотреть все возможные (вернее, нужные по бизнесу) переходы состояний. Как это сделать без статуса документа я не представляю, расскажите про свой опыт.
__________________
Ivanhoe as is..

Последний раз редактировалось Ivanhoe; 28.04.2011 в 22:37.
Старый 29.04.2011, 10:57   #27  
mit is offline
mit
Участник
Аватар для mit
 
386 / 36 (2) +++
Регистрация: 15.01.2003
Адрес: Moscow
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
Аманд - это не описание полноценного примера, это скорее туториал для ознакомления.
Согласен. писалось консалтинговой компанией. но если немного переработать статью, получается нормальная инструкция.
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
Последовательность действий по утверждению клиентов, судя по документу нужно:
1. Есть стандартная форма клиентов. Без статуса.
2. Заводим нового клиента - что нужно сделать администратору чтобы его послать на утверждение? Кроме настройки бизнес-правила нужно на форме поменять метод canSubmitToWorkflow()? Ок, меняем.
нет, не совсем. метод настраивается не под утверждение конкретного клиента, а под бизнес - правило, что теперь клиенты должны проходить утверждение
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
3. Что нужно сделать администратору, чтобы по клиенту из п.2. сделать утверждение? Поменять метод canSubmitToWorkflow() назад? Ок, меняем метод, утверждение пока не делаем - допустим ответственный думает.
опять нет. метод активирует на форме механизм утверждения - появляется информационная строка, появляется кнопки на форме у нужных людей, в нужное время позволяющие согласовать, либо отклонить с возможностью комментировать отказ
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
4. Заводим нового клиента и хотим отправить на утверждение - опять что ли меняем метод canSubmitToWorkflow() на форме???? В этот момент, у вас по всем клиентам станет доступна только отправка на утверждение, в т.ч. по клиенту из п.2.
см. п.3
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
5. Какой признак в системе у утвержденного клиента? Кроме истории утверждения? Сама история по себе никому не нужна. Нужно, как правило, проставить некий статус, ну или, убрать блокировку с клиента, чтобы на него можно было заводить документы - это нужно явно программировать.
клиент - неудачный пример. как правило все клиенты интересны и по клиенту достаточно дать один переключатель в одни руки (через настройку доступа). если работаем не со всеми, и клиенты должны выполнять ряд отслеживаемых условий, то тогда да. но чаще вокфло используется не на справочниках, а в журналах. например платежах
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
Если вы внимательно посмотрите на существующие в системе шаблоны workflow, то везде у документа есть некий статус, от которого и зависит вся обработка. И, кстати, в стандарте нет ни одного универсального шаблона, который бы позволил настроить все возможные действия, откаты, утверждения и задачи в рамках одного документа.
существующие шаблоны в системе ущербны
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
Чтобы пользователь мог настроить любое бизнес-правило, нужно правильно запрограммировать workflow - предусмотреть все возможные (вернее, нужные по бизнесу) переходы состояний. Как это сделать без статуса документа я не представляю, расскажите про свой опыт.
по большому счету, шаблоны воркфло это перечисление статусов, которые может иметь документ (строка). да, их определяет программист. ещё программист может определить, что как только по строке в статусах воркфло появилось финальное одобрямс, в таблице поле блокировки перещёлкнолось, но не этим интересен вокфло. если нужно видеть два статуса - одобрено /не одобрено, проще пользовать существующее поле, либо добавить своё. интересно вокфло вариативностью. когда сценарии ободрения различаются. пример: клиент категории "а" утверждается менеджером сразу, категория "б" - требует "ок" от менеджера направления и дополнительно визы руководителя, если клиент одновременно из сегмента "вип", то финальный ок ставится только директором. в случае, если директора нет, или директор не одобрил в течение 3-х часов, уведомление для утверждения переадресовывается системой заму (или иному сотруднику). количество вариаций и маршрутов на статусах определённых программистом не ограничено, и уже не программируется а настраивается. допустим, программист задал три статуса: отправить, согласовано, утверждено. в маршруте можно настроить обязательное последовательное согласование через десяток сотрудников. за работу всего этого отвечают таблицы, классы, формы и прочие объекты семейства с префиксом Workflow. надеюсь, что разница между разблокировкой клиента и вокфло хоть немножко стала понятнее.
__________________
Дом поросенка должен быть крепостью. (Наф-Наф, полн. собр. соч., т.5, стр. 286)
Старый 29.04.2011, 11:11   #28  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2161 (81) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Цитата:
Сообщение от mit Посмотреть сообщение
да я считаю, что аманд привел реальный рабочий пример, так как я сам по этому примеру настраивал воркфло
Цитата:
Сообщение от mit Посмотреть сообщение
Согласен. писалось консалтинговой компанией. но если немного переработать статью, получается нормальная инструкция.
Вы определитесь уже

Цитата:
Сообщение от mit Посмотреть сообщение
нет, не совсем. метод настраивается не под утверждение конкретного клиента, а под бизнес - правило, что теперь клиенты должны проходить утверждение
Вы точно говорите про метод canSubmitToWorkflow()?? Этот метод отвечает ТОЛЬКО за возможность первоначально запустить воркфлоу по записи. Если этот метод будет на форме возвращать "true" для всех записей, то кроме отправки на согласование ничего другого доступно не будет.

Цитата:
Сообщение от mit Посмотреть сообщение
надеюсь, что разница между разблокировкой клиента и вокфло хоть немножко стала понятнее.
Извините, но это разговор слепого с глухим .
Коллега спросил, нужен ли статус в таблице Клиентов. Для того, чтобы сделать рабочий воркфлоу, мой ответ - ДА, ваш ответ - НЕТ.

Просьба наконец-то подтвердить ваш ответ подробным примером: каким образом можно сделать согласование клиентов по примеру Аманда без дополнительного программирования (в т.ч. без изменения методов формы "на лету"). Просьба в ответе больше не писать, что такое воркфлоу и для чего оно нужно - все, кто используют этот механизм, и так в курсе
__________________
Ivanhoe as is..
Старый 29.04.2011, 11:36   #29  
mit is offline
mit
Участник
Аватар для mit
 
386 / 36 (2) +++
Регистрация: 15.01.2003
Адрес: Moscow
да уж давно определился
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
Вы точно говорите про метод canSubmitToWorkflow()?? Этот метод отвечает ТОЛЬКО за возможность первоначально запустить воркфлоу по записи. Если этот метод будет на форме возвращать "true" для всех записей, то кроме отправки на согласование ничего другого доступно не будет.
а если немножко иначе подойти?
X++:
public boolean canSubmitToWorkflow()
{
    boolean canSubmitToWorkflow = false;
    ;

    if(!BOMTable.Approved)
    {
        canSubmitToWorkflow = !WorkflowTrackingStatusTable::existStep(BOMTable);
    }
    return canSubmitToWorkflow;
}
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
Извините, но это разговор слепого с глухим .
Коллега спросил, нужен ли статус в таблице Клиентов. Для того, чтобы сделать рабочий воркфлоу, мой ответ - ДА, ваш ответ - НЕТ.
для вокфло нет, для коллеги - возможно да
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
Просьба наконец-то подтвердить ваш ответ подробным примером: каким образом можно сделать согласование клиентов по примеру Аманда без дополнительного программирования (в т.ч. без изменения методов формы "на лету").
сначала мы реализовали пример по вокфло именно по рецепту аманда затем несколько видоизменили под свои нужды, но изменения косметические и не принципиальны. общий подход остается. Ваш вопрос несколько размыт. что именно Вам нужно в качестве подтверждения? скриншоты? описание функционала? рабочие инструкции?
__________________
Дом поросенка должен быть крепостью. (Наф-Наф, полн. собр. соч., т.5, стр. 286)

Последний раз редактировалось mit; 29.04.2011 в 11:38. Причина: ой, форматирование поехало :)
Старый 29.04.2011, 11:51   #30  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2161 (81) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Приведенного кода метода canSubmitToWorkflow() достаточно. Что и требовалось доказать, пример Аманда не рабочий

Спасибо за обсуждение.
__________________
Ivanhoe as is..
Старый 31.05.2011, 14:39   #31  
propeller is offline
propeller
Участник
Аватар для propeller
 
359 / 29 (1) +++
Регистрация: 25.07.2007
workflow на "виртуальной" таблице
Попробовал сделать workflow на справочнике клиентов, CustTable входит в табличную коллекцию, которая в свою очередь принадлежит к виртуальной компании.
Результат: не заработало, полезли ошибки. Частенько в коде встречается: changecompany(record.dataareaid - ошибка: компании не существует.
Workflow не предназначен для таких таблиц?
Старый 01.06.2011, 12:25   #32  
dmitro is offline
dmitro
Участник
 
48 / 19 (1) ++
Регистрация: 18.07.2008
Адрес: Москва, РФ
На одном проекте было реализовано; правда таблицы, подлежавшие согласованию были saveDataPerCompany = No, но в коллекцию были добавлены все системные таблицы workflow плюс таблицы, которые участвуют в конфигурации бизнес-правил. Все работало ок.
Старый 04.06.2011, 22:28   #33  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1850 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от propeller Посмотреть сообщение
Попробовал сделать workflow на справочнике клиентов, CustTable входит в табличную коллекцию, которая в свою очередь принадлежит к виртуальной компании.
Результат: не заработало, полезли ошибки. Частенько в коде встречается: changecompany(record.dataareaid - ошибка: компании не существует.
Workflow не предназначен для таких таблиц?
Workflow does not work with a table that is shared in a virtual company in Microsoft Dynamics AX 2009 Service Pack 1

Symptoms
Consider the following scenario. You set up a workflow to use a table that is shared in a virtual company in Microsoft Dynamics AX 2009. You use a placeholder for submission instruction in the workflow configuration. In this scenario, when you try to submit the workflow, you receive the an error message that resembles the following:
Stack trace: The company <Virtual Company_Name> does not exist.
(S)\Classes\WorkflowDocumentField\substitutePlaceholder - line 53
(S)\Classes\WorkflowDocumentField\substitutePlaceholderAsUser - line 22
(S)\Classes\SysWorkflowFormControls\getActionBarContentForSubmit - line 41
(C)\Classes\SysWorkflowFormControls\showSubmit - line 18
(C)\Classes\SysWorkflowFormControls\updateControls - line 29
(C)\Classes\SysSetupFormRun\updateWorkflowControls - line 4
(C)\Classes\Info\formNotify - line 30

KB2557175 (ссылка на Partnersource)
__________________
-ТСЯ или -ТЬСЯ ?
За это сообщение автора поблагодарили: propeller (1).
Теги
ax2009, hotfix, workflow, как правильно

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
emeadaxsupport: List of fixes that improve performance of certain features in Dynamics AX 2009 Blog bot DAX Blogs 0 13.10.2009 19:06
gatesasbait: Dynamics AX 2009 SSRS and SSAS Integration Tips Blog bot DAX Blogs 3 09.07.2009 13:07
Developer for Microsoft Dynamics AX Certification Roadmap Blog bot DAX Blogs 1 13.05.2009 16:17
axStart: Microsoft Dynamics AX 2009 Hot Topics Web Seminar Series Blog bot DAX Blogs 0 06.08.2008 12:05
Сергей Герасимов: Что нового в Microsoft Dynamics AX 4.0 Blog bot DAX Blogs 0 16.01.2007 11:00

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 12:21.