![]() |
#21 |
Участник
|
Правильно ли я понимаю, для того чтобы создать свой шаблон с возможностью утверждения например клиентов, необходимо в табличку CustTable добавить поле со статусом, что-то вроде WorkflowApprovalStatus. И основываясь на этом статусе позволять пользователям утверждать/отклонять и т.п. ? (помимо того, что советуем нам Аманд)
Последний раз редактировалось propeller; 28.04.2011 в 15:17. |
|
![]() |
#22 |
Участник
|
Да.
__________________
Ivanhoe as is.. |
|
|
За это сообщение автора поблагодарили: propeller (1). |
![]() |
#23 |
Участник
|
Если речь идет о штатном механизме (его и советует использовать аманд), то меняем только методы на форме. если не о нём, то всё что угодно. в том числе и добавить поле статуса
__________________
Дом поросенка должен быть крепостью. (Наф-Наф, полн. собр. соч., т.5, стр. 286) |
|
![]() |
#24 |
Участник
|
Простите, вы считаете, что Аманд привел реальный рабочий пример? Каждый раз надо на форме менять метод??
![]() Чтобы хотя бы понять, отправлен уже на рассмотрение клиент или нет, понадобится некий признак. Также если вы хотите нормально реализовать отзыв клиент (запрос на отмену утверждения), то без промежуточных статусов также не обойтись (нужен признак отзыва до срабатывания cancel самого workflow). Ну и сам факт утверждения надо как-то в системе отметить - иначе зачем весь этот workflow?
__________________
Ivanhoe as is.. |
|
![]() |
#25 |
Участник
|
да я считаю, что аманд привел реальный рабочий пример, так как я сам по этому примеру настраивал воркфло. да, каждый раз, когда Вы хотите включить для формы воркфло нужно перекрывать метод, описанный в инструкции. перекрытие метода даёт доступ к полному функционалу воркфло и не к тому, что придумал программист, а к тому, котроый можно менять в соответствии с текущими потребностями администратором или ответственным пользователем. стандартный воркфло даёт возможности через настройки реализовывать различные маршруты утверждения с условиями, делегированием, уведомлением, с версиями маршрутов и т.п. в тройке такого не было, писал сам. а здесь - сказка. нравится писать - флаг в руки. но у меня на написание уилиты, прикручивающей к любой форме по умолчанию для таблицы этот самый воркфло ушло меньше времени, чем написание с нуля самописного воркфло (про поддержку алгоритма молчу - страшно вспомнить)
__________________
Дом поросенка должен быть крепостью. (Наф-Наф, полн. собр. соч., т.5, стр. 286) |
|
![]() |
#26 |
Участник
|
Я не против системы Workflow, я ее использую на проектах. Мои замечания к статье Аманд - это не описание полноценного примера, это скорее туториал для ознакомления.
Последовательность действий по утверждению клиентов, судя по документу нужно: 1. Есть стандартная форма клиентов. Без статуса. 2. Заводим нового клиента - что нужно сделать администратору чтобы его послать на утверждение? Кроме настройки бизнес-правила нужно на форме поменять метод canSubmitToWorkflow()? Ок, меняем. 3. Что нужно сделать администратору, чтобы по клиенту из п.2. сделать утверждение? Поменять метод canSubmitToWorkflow() назад? Ок, меняем метод, утверждение пока не делаем - допустим ответственный думает. 4. Заводим нового клиента и хотим отправить на утверждение - опять что ли меняем метод canSubmitToWorkflow() на форме???? В этот момент, у вас по всем клиентам станет доступна только отправка на утверждение, в т.ч. по клиенту из п.2. 5. Какой признак в системе у утвержденного клиента? Кроме истории утверждения? Сама история по себе никому не нужна. Нужно, как правило, проставить некий статус, ну или, убрать блокировку с клиента, чтобы на него можно было заводить документы - это нужно явно программировать. Если вы внимательно посмотрите на существующие в системе шаблоны workflow, то везде у документа есть некий статус, от которого и зависит вся обработка. И, кстати, в стандарте нет ни одного универсального шаблона, который бы позволил настроить все возможные действия, откаты, утверждения и задачи в рамках одного документа. Чтобы пользователь мог настроить любое бизнес-правило, нужно правильно запрограммировать workflow - предусмотреть все возможные (вернее, нужные по бизнесу) переходы состояний. Как это сделать без статуса документа я не представляю, расскажите про свой опыт.
__________________
Ivanhoe as is.. Последний раз редактировалось Ivanhoe; 28.04.2011 в 22:37. |
|
![]() |
#27 |
Участник
|
Цитата:
Цитата:
Сообщение от Ivanhoe
![]() Последовательность действий по утверждению клиентов, судя по документу нужно:
1. Есть стандартная форма клиентов. Без статуса. 2. Заводим нового клиента - что нужно сделать администратору чтобы его послать на утверждение? Кроме настройки бизнес-правила нужно на форме поменять метод canSubmitToWorkflow()? Ок, меняем. Цитата:
Цитата:
Цитата:
![]() Цитата:
Сообщение от Ivanhoe
![]() Если вы внимательно посмотрите на существующие в системе шаблоны workflow, то везде у документа есть некий статус, от которого и зависит вся обработка. И, кстати, в стандарте нет ни одного универсального шаблона, который бы позволил настроить все возможные действия, откаты, утверждения и задачи в рамках одного документа.
![]() Цитата:
![]()
__________________
Дом поросенка должен быть крепостью. (Наф-Наф, полн. собр. соч., т.5, стр. 286) |
|
![]() |
#28 |
Участник
|
Цитата:
Цитата:
![]() Цитата:
Цитата:
![]() Коллега спросил, нужен ли статус в таблице Клиентов. Для того, чтобы сделать рабочий воркфлоу, мой ответ - ДА, ваш ответ - НЕТ. Просьба наконец-то подтвердить ваш ответ подробным примером: каким образом можно сделать согласование клиентов по примеру Аманда без дополнительного программирования (в т.ч. без изменения методов формы "на лету"). Просьба в ответе больше не писать, что такое воркфлоу и для чего оно нужно - все, кто используют этот механизм, и так в курсе ![]()
__________________
Ivanhoe as is.. |
|
![]() |
#29 |
Участник
|
да уж давно определился
![]() Цитата:
X++: public boolean canSubmitToWorkflow() { boolean canSubmitToWorkflow = false; ; if(!BOMTable.Approved) { canSubmitToWorkflow = !WorkflowTrackingStatusTable::existStep(BOMTable); } return canSubmitToWorkflow; } Цитата:
__________________
Дом поросенка должен быть крепостью. (Наф-Наф, полн. собр. соч., т.5, стр. 286) Последний раз редактировалось mit; 29.04.2011 в 11:38. Причина: ой, форматирование поехало :) |
|
![]() |
#30 |
Участник
|
Приведенного кода метода canSubmitToWorkflow() достаточно. Что и требовалось доказать, пример Аманда не рабочий
![]() Спасибо за обсуждение.
__________________
Ivanhoe as is.. |
|
![]() |
#31 |
Участник
|
workflow на "виртуальной" таблице
Попробовал сделать workflow на справочнике клиентов, CustTable входит в табличную коллекцию, которая в свою очередь принадлежит к виртуальной компании.
Результат: не заработало, полезли ошибки. Частенько в коде встречается: changecompany(record.dataareaid - ошибка: компании не существует. Workflow не предназначен для таких таблиц? |
|
![]() |
#32 |
Участник
|
На одном проекте было реализовано; правда таблицы, подлежавшие согласованию были saveDataPerCompany = No, но в коллекцию были добавлены все системные таблицы workflow плюс таблицы, которые участвуют в конфигурации бизнес-правил. Все работало ок.
|
|
![]() |
#33 |
Модератор
|
Цитата:
Сообщение от propeller
![]() Попробовал сделать workflow на справочнике клиентов, CustTable входит в табличную коллекцию, которая в свою очередь принадлежит к виртуальной компании.
Результат: не заработало, полезли ошибки. Частенько в коде встречается: changecompany(record.dataareaid - ошибка: компании не существует. Workflow не предназначен для таких таблиц? 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, как правильно |
|
|