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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.11.2016, 15:13   #1  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
375 / 562 (19) +++++++
Регистрация: 08.08.2007
Записей в блоге: 1
? DAX2012 R3. EP. Workflow. MultiSelect.....
Собственно хочется на страничке EP(ListPage) выделить несколько записей и нажать кнопку либо отправки\одобрения, либо какого то общего действия, после чего соответственно для каждой выделенной записи будет выполнено выбранное действие.

Да только вот беда, при выделении нескольких записей панель Workflow скрывается напрочь.

В инете практически ничего нет по данному вопросу - поэтому закрадываются некоторые мысли на тему того, что это сделать не просто, либо никто не пытался делать

В доработке портала опыта немного, поэтому хотелось бы для начала понять насколько трудоемка такая разработка и возможна ли она в принципе со стандартной панелью.

Также, если есть какие то альтернативные варианты реализации, пишите, на текущий момент как возможный вариант - вывести все кнопки которые есть для документа, на форму и активировать\деактивировать в зависимости от возможностей - тут тоже есть свои сложности в виде передачи нескольких записей в форму запроса комментария (но думаю и для первого варианта это тоже нужно будет делать).

Спасибо.
__________________
Sergey Nefedov
Старый 08.11.2016, 17:39   #2  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
А разве в обычном клиенте такое возможно?
__________________
Ivanhoe as is..
Старый 09.11.2016, 09:13   #3  
Dreadlock is offline
Dreadlock
Участник
Аватар для Dreadlock
 
298 / 224 (8) ++++++
Регистрация: 07.05.2009
Адрес: Москва
Цитата:
Сообщение от SRF Посмотреть сообщение
Собственно хочется на страничке EP(ListPage) выделить несколько записей и нажать кнопку либо отправки\одобрения, либо какого то общего действия, после чего соответственно для каждой выделенной записи будет выполнено выбранное действие.

Да только вот беда, при выделении нескольких записей панель Workflow скрывается напрочь.

В инете практически ничего нет по данному вопросу - поэтому закрадываются некоторые мысли на тему того, что это сделать не просто, либо никто не пытался делать
Видимо в MS не зря закрыли такую возможность, выделять несколько записей

Цитата:
Сообщение от SRF Посмотреть сообщение
В доработке портала опыта немного, поэтому хотелось бы для начала понять насколько трудоемка такая разработка и возможна ли она в принципе со стандартной панелью.
ListPage - он что на портале, что в Ах, разницы практически никакой (есть небольшие нюансы). Если в Ах сделаете, то и на портале не составит труда, я бы даже сказал, на портале автоматически заработает
Только есть один момент! Данные на портале выводятся постранично, выделив несколько записей на первой странице, перейдя на вторую, данные о выделенных записях с первой страницы уже не будет! Т.е. много записей вы не выделите.
Цитата:
Сообщение от SRF Посмотреть сообщение
Также, если есть какие то альтернативные варианты реализации, пишите, на текущий момент как возможный вариант - вывести все кнопки которые есть для документа, на форму и активировать\деактивировать в зависимости от возможностей - тут тоже есть свои сложности в виде передачи нескольких записей в форму запроса комментария (но думаю и для первого варианта это тоже нужно будет делать).
Помню я убил пару дней, по требованию пользователей скрывать/показывать кнопки на каждом шаге тому или иному пользователю, только для текущей строки, а не пачки. В стандарте столько логики, и как там данные лежат + CIL - песня.
Может я не прав, но я бы отговорил бизнес от такой реализации, прямо на ListPage + workflow + EP.
За это сообщение автора поблагодарили: SRF (1).
Старый 09.11.2016, 10:02   #4  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
375 / 562 (19) +++++++
Регистрация: 08.08.2007
Записей в блоге: 1
Цитата:
Сообщение от Dreadlock Посмотреть сообщение
ListPage - он что на портале, что в Ах, разницы практически никакой (есть небольшие нюансы). Если в Ах сделаете, то и на портале не составит труда, я бы даже сказал, на портале автоматически заработает
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
А разве в обычном клиенте такое возможно?
С клиентом особых проблем в реализации не возникло. Нюансы есть и как раз в поведении панели WF в том числе, в клиенте то работа с панелью реализована в базовом классе для всех форм SysSetupFormRun, что позволяет сделать необходимые доработки, а что является аналогом на портале - ядро или какая то dll с закрытым кодом ?

Цитата:
Сообщение от Dreadlock Посмотреть сообщение
Видимо в MS не зря закрыли такую возможность, выделять несколько записей

Только есть один момент! Данные на портале выводятся постранично, выделив несколько записей на первой странице, перейдя на вторую, данные о выделенных записях с первой страницы уже не будет! Т.е. много записей вы не выделите.
Это как посмотреть - удаление то скопом работает и на портале, т.е. как то технически сделать обработку нескольких записей возможно, весь вопрос в том как - в args есть метод multiSelectionContext, для меню итемов типа Action он нормально сохраняет контекст нескольких записей в том числе и из EP, но чтобы передать несколько выделенных записей на следующую страницу, приходится выполнять какие то танцы с бубнами типа вот таких - How to pass a multiselection to the next page?

Согласен, что много не выделим, но мы можем выделить больше одной

Цитата:
Сообщение от Dreadlock Посмотреть сообщение
Может я не прав, но я бы отговорил бизнес от такой реализации, прямо на ListPage + workflow + EP.
Пытались конечно, и это был нулевой вариант реализации задачи ) но пока бизнес не отступает.
__________________
Sergey Nefedov

Последний раз редактировалось SRF; 09.11.2016 в 10:15.
Старый 09.11.2016, 11:39   #5  
Dreadlock is offline
Dreadlock
Участник
Аватар для Dreadlock
 
298 / 224 (8) ++++++
Регистрация: 07.05.2009
Адрес: Москва
Цитата:
Сообщение от SRF Посмотреть сообщение
С клиентом особых проблем в реализации не возникло. Нюансы есть и как раз в поведении панели WF в том числе, в клиенте то работа с панелью реализована в базовом классе для всех форм SysSetupFormRun, что позволяет сделать необходимые доработки
На ListPage не смотрел, что там является аналогом на портале, и смотреть не буду. Вы сами не смотрели? Не ставили breakpoint в SysSetupFormRun? или он не срабатывает в Ах? Вообще есть форма ListPage в Ах к которой подключен workflow? Я сходу не нашел. Скорее всего ListPage вам не подойдет для портала, придется делать отдельную форму.
Мне всегда проще обычную форму на портале сделать и с ней работать, а еще, завтра пользователи могут выкатить такое требование, что весь ListPage поедет лесом, придется все переделывать. Как например, Экспорт в эксель с портала (стандартный), выгружает либо текущую страницу, или Экспорт динамический, выгружает всё по фильтру, но только если пользователь на портале делает выгрузку внутри домена.
Цитата:
Сообщение от SRF Посмотреть сообщение
а что является аналогом на портале - ядро или какая то dll с закрытым кодом ?
Вот, в стандарте вот так делают:
Нажмите на изображение для увеличения
Название: workFlow.jpg
Просмотров: 422
Размер:	73.6 Кб
ID:	11041

Цитата:
Сообщение от SRF Посмотреть сообщение
Это как посмотреть - удаление то скопом работает и на портале, т.е. как то технически сделать обработку нескольких записей возможно, весь вопрос в том как - в args есть метод multiSelectionContext,для меню итемов типа Action он нормально сохраняет контекст нескольких записей в том числе и из EP, но чтобы передать несколько выделенных записей на следующую страницу, приходится выполнять какие то танцы с бубнами типа вот таких - How to pass a multiselection to the next page?
Что-то я не нашел четкого ответа, по вашей ссылке, как это реализовать для ListPage.
Цитата:
Сообщение от SRF Посмотреть сообщение
Согласен, что много не выделим, но мы можем выделить больше одной
ListPage - зло, мой вам совет, сделать web-форму на портале, да долго, да сложно, но граблей меньше.
Старый 09.11.2016, 12:32   #6  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
375 / 562 (19) +++++++
Регистрация: 08.08.2007
Записей в блоге: 1
Цитата:
Сообщение от Dreadlock Посмотреть сообщение
На ListPage не смотрел, что там является аналогом на портале, и смотреть не буду. Вы сами не смотрели?
Жаль( Сам не смотрел ибо пока не понимаю особо куда смотреть-то )) Будем разбираться.

Цитата:
Сообщение от Dreadlock Посмотреть сообщение
Не ставили breakpoint в SysSetupFormRun? или он не срабатывает в Ах?
Не ставил пока, попробую, но думаю не сработает, ведь там не форма, а страничка, не понимаю как мы можем туда попасть с EP.

Цитата:
Сообщение от Dreadlock Посмотреть сообщение
Вообще есть форма ListPage в Ах к которой подключен workflow? Я сходу не нашел.
Хм, так по идее это любая форма в которой включен WF, в стандарте есть wf для заявок на закупку например, или это не так ? Разве там нет в форме ListPage контрольки WF, просто я не могу посмотреть в приложения где используется эта функциональность

Цитата:
Сообщение от Dreadlock Посмотреть сообщение
Что-то я не нашел четкого ответа, по вашей ссылке, как это реализовать для ListPage.
Возможно там так и не доведено до ума, я просто хотел сказать что при передаче на следующую страницу нужно что то придумывать, в отличии от передачи в меню итем типа Action.

Цитата:
Сообщение от Dreadlock Посмотреть сообщение
ListPage - зло, мой вам совет, сделать web-форму на портале, да долго, да сложно, но граблей меньше.
Спасибо, подумаем.
__________________
Sergey Nefedov

Последний раз редактировалось SRF; 09.11.2016 в 12:41.
Старый 09.11.2016, 23:02   #7  
griefon is offline
griefon
Участник
 
131 / 52 (2) ++++
Регистрация: 07.12.2010
Адрес: down under
Можно еще сделать свои кнопки для всех функций. Вот код, который одобряет шаг workflow

X++:
    WorkflowWorkItemTable       workItem;
    WorkflowWorkItemActionType  action;
    UserId                      userId;
    PurchTable                  purchTable;
    WorkflowWorkItemTable       workflowWorkItemTable;

    action = WorkflowWorkItemActionType::Complete;

    purchTable = PurchTable::find("POzzz");

            if (purchTable.RecId)
            {
                userId = "YYYY";

	    select firstOnly workflowWorkItemTable
        	where workflowWorkItemTable.RefRecId == purchTable.RecId &&
                workflowWorkItemTable.RefTableId == purchTable.TableId &&
                workflowWorkItemTable.UserId == userId &&
                workflowWorkItemTable.Status == WorkflowWorkItemStatus::Pending;

                if (workflowWorkItemTable.RecId)
                {
                        WorkflowWorkItemActionManager::dispatchWorkItemAction(workflowWorkItemTable,
                                                                              "Одобрено новой кнопкой",
                                                                               userId,
                                                                               action,
                                                                               menuitemActionStr(PurchTableApprovalApprove),
                                                                               false,
                                                                               "");
                }
	    }

Последний раз редактировалось griefon; 09.11.2016 в 23:11.
Старый 10.11.2016, 01:35   #8  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от SRF Посмотреть сообщение
Собственно хочется на страничке EP(ListPage) выделить несколько записей и нажать кнопку либо отправки\одобрения, либо какого то общего действия, после чего соответственно для каждой выделенной записи будет выполнено выбранное действие.

Да только вот беда, при выделении нескольких записей панель Workflow скрывается напрочь.

Спасибо.
Я бы добавил свой собственный check-box и скрытый RecId в строку грида. Этот Check-box у нас не отправляет на сервер при постановке галки.

На сервере бы собирал бы RecId у отмеченных и отправлял на обработку в X++.
Я мутил подобное в EP, дешево и сердито.

Верьте мне - я читаю PHP
Старый 10.11.2016, 18:55   #9  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от ax_mct Посмотреть сообщение
Я бы добавил свой собственный check-box и скрытый RecId в строку грида. Этот Check-box у нас не отправляет на сервер при постановке галки.

На сервере бы собирал бы RecId у отмеченных и отправлял на обработку в X++.
Я мутил подобное в EP, дешево и сердито.

Верьте мне - я читаю PHP
То есть идея в том чтобы при отметке нашего check-box на сервер мы не ходили.
На сервере, при обработке нажатия на заданную кнопку-действие, мы проходим по строкам грида как контрола и собираем скрытые RecId.
Затем отправляем их группой в процесс.
Обновляем.

Мне за такое решение стоимость нового джипа заплатили. Даю бесплатно
За это сообщение автора поблагодарили: SRF (1).
Старый 14.11.2016, 16:39   #10  
pedrozzz is offline
pedrozzz
Молодой, подающий надежды
Аватар для pedrozzz
MCBMSS
Лучший по профессии 2015
 
164 / 218 (8) ++++++
Регистрация: 18.02.2010
Адрес: Краснодар
Цитата:
Сообщение от ax_mct Посмотреть сообщение
Мне за такое решение стоимость нового джипа заплатили. Даю бесплатно
А мне за аналогичное абсолютно работающее и всех устраивающее решение - обычная региональная зарплата в пол месяца и слово "МОЛОДЕЦ" в далеком 2011 году и это, к слову, была не вся задача, а лишь небольшая ее часть. Но вопрос у автора не в том, как передать записи в обработку - это дело техники, а как по-возможности допилить стандартную панельку WF, чтобы оно работало для всех форм в зависимости от настроек (что для клиентской части на обычных формах успешно реализовано)
__________________
Кононов Пётр
За это сообщение автора поблагодарили: ax_mct (1).
Старый 14.11.2016, 17:38   #11  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от pedrozzz Посмотреть сообщение
Но вопрос у автора не в том, как передать записи в обработку - это дело техники, а как по-возможности допилить стандартную панельку WF, чтобы оно работало для всех форм в зависимости от настроек (что для клиентской части на обычных формах успешно реализовано)
Цитата:
выделить несколько записей и нажать кнопку либо отправки\одобрения, либо какого то общего действия, после чего соответственно для каждой выделенной записи будет выполнено выбранное действие.
С точки зрения UI задача возможности выбора нескольких строк (multi-select) и применении конкретной операции.

Допиливать стандартную панельку WF или что-то такое "стандартное" да так чтобы в одном месте сделал и в 10 сразу автоматически отразилось - это уже техническая хотелка технического программиста.

То есть это "правильно" но лучше - копировать и делать сбоку. Не трогать "стандарт". Своя страница, свои контролы, свой код. Когда у клиента и стандартная страница и новая ее версия.
Свой собственный multi-select и своя собственная передача в свою же обработку на своей же странице (основанной на копии стандартной) это и надежнее и быстрее.

И совсем не ломает сделать это для скажем еще 5 страниц банальным копированием и дублированием.
"чтобы в одном месте сделал и в 10 сразу автоматически отразилось" - это надо из себя каленым железом выжигать - чужой дом.
За это сообщение автора поблагодарили: eugene egorov (2).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
kurthatlevik: DAX2012 R3 – Playing with Retail CRT Blog bot DAX Blogs 0 28.10.2015 20:11
Ошибка на EP портале AX2009 связанная с Workflow Craz DAX: Программирование 1 18.06.2015 18:39
kurthatlevik: DAX2012 R3 – Playing with Retail CRT Blog bot DAX Blogs 0 21.05.2015 15:11
paruvella: Hints on Workflow implementation for EP in Ax 2009 Blog bot DAX Blogs 0 12.11.2009 21:05
Solutions Monkey: Using Microsoft Dynamics Ax 2009 Workflow controls in EP Blog bot DAX Blogs 0 30.07.2008 10:05

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

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

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