08.11.2016, 15:13 | #1 |
Участник
|
DAX2012 R3. EP. Workflow. MultiSelect.....
Собственно хочется на страничке EP(ListPage) выделить несколько записей и нажать кнопку либо отправки\одобрения, либо какого то общего действия, после чего соответственно для каждой выделенной записи будет выполнено выбранное действие.
Да только вот беда, при выделении нескольких записей панель Workflow скрывается напрочь. В инете практически ничего нет по данному вопросу - поэтому закрадываются некоторые мысли на тему того, что это сделать не просто, либо никто не пытался делать В доработке портала опыта немного, поэтому хотелось бы для начала понять насколько трудоемка такая разработка и возможна ли она в принципе со стандартной панелью. Также, если есть какие то альтернативные варианты реализации, пишите, на текущий момент как возможный вариант - вывести все кнопки которые есть для документа, на форму и активировать\деактивировать в зависимости от возможностей - тут тоже есть свои сложности в виде передачи нескольких записей в форму запроса комментария (но думаю и для первого варианта это тоже нужно будет делать). Спасибо.
__________________
Sergey Nefedov |
|
08.11.2016, 17:39 | #2 |
Участник
|
А разве в обычном клиенте такое возможно?
__________________
Ivanhoe as is.. |
|
09.11.2016, 09:13 | #3 |
Участник
|
Цитата:
Сообщение от SRF
Собственно хочется на страничке EP(ListPage) выделить несколько записей и нажать кнопку либо отправки\одобрения, либо какого то общего действия, после чего соответственно для каждой выделенной записи будет выполнено выбранное действие.
Да только вот беда, при выделении нескольких записей панель Workflow скрывается напрочь. В инете практически ничего нет по данному вопросу - поэтому закрадываются некоторые мысли на тему того, что это сделать не просто, либо никто не пытался делать Цитата:
Только есть один момент! Данные на портале выводятся постранично, выделив несколько записей на первой странице, перейдя на вторую, данные о выделенных записях с первой страницы уже не будет! Т.е. много записей вы не выделите. Цитата:
Сообщение от SRF
Также, если есть какие то альтернативные варианты реализации, пишите, на текущий момент как возможный вариант - вывести все кнопки которые есть для документа, на форму и активировать\деактивировать в зависимости от возможностей - тут тоже есть свои сложности в виде передачи нескольких записей в форму запроса комментария (но думаю и для первого варианта это тоже нужно будет делать).
Может я не прав, но я бы отговорил бизнес от такой реализации, прямо на ListPage + workflow + EP. |
|
|
За это сообщение автора поблагодарили: SRF (1). |
09.11.2016, 10:02 | #4 |
Участник
|
Цитата:
Цитата:
Сообщение от Dreadlock
Видимо в MS не зря закрыли такую возможность, выделять несколько записей
Только есть один момент! Данные на портале выводятся постранично, выделив несколько записей на первой странице, перейдя на вторую, данные о выделенных записях с первой страницы уже не будет! Т.е. много записей вы не выделите. Согласен, что много не выделим, но мы можем выделить больше одной Пытались конечно, и это был нулевой вариант реализации задачи ) но пока бизнес не отступает.
__________________
Sergey Nefedov Последний раз редактировалось SRF; 09.11.2016 в 10:15. |
|
09.11.2016, 11:39 | #5 |
Участник
|
Цитата:
Мне всегда проще обычную форму на портале сделать и с ней работать, а еще, завтра пользователи могут выкатить такое требование, что весь ListPage поедет лесом, придется все переделывать. Как например, Экспорт в эксель с портала (стандартный), выгружает либо текущую страницу, или Экспорт динамический, выгружает всё по фильтру, но только если пользователь на портале делает выгрузку внутри домена. Цитата:
Цитата:
Сообщение от SRF
Это как посмотреть - удаление то скопом работает и на портале, т.е. как то технически сделать обработку нескольких записей возможно, весь вопрос в том как - в args есть метод multiSelectionContext,для меню итемов типа Action он нормально сохраняет контекст нескольких записей в том числе и из EP, но чтобы передать несколько выделенных записей на следующую страницу, приходится выполнять какие то танцы с бубнами типа вот таких - How to pass a multiselection to the next page?
ListPage - зло, мой вам совет, сделать web-форму на портале, да долго, да сложно, но граблей меньше. |
|
09.11.2016, 12:32 | #6 |
Участник
|
Цитата:
Не ставил пока, попробую, но думаю не сработает, ведь там не форма, а страничка, не понимаю как мы можем туда попасть с EP. Цитата:
Цитата:
Спасибо, подумаем.
__________________
Sergey Nefedov Последний раз редактировалось SRF; 09.11.2016 в 12:41. |
|
09.11.2016, 23:02 | #7 |
Участник
|
Можно еще сделать свои кнопки для всех функций. Вот код, который одобряет шаг 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 |
Banned
|
Цитата:
Сообщение от SRF
Собственно хочется на страничке EP(ListPage) выделить несколько записей и нажать кнопку либо отправки\одобрения, либо какого то общего действия, после чего соответственно для каждой выделенной записи будет выполнено выбранное действие.
Да только вот беда, при выделении нескольких записей панель Workflow скрывается напрочь. Спасибо. На сервере бы собирал бы RecId у отмеченных и отправлял на обработку в X++. Я мутил подобное в EP, дешево и сердито. Верьте мне - я читаю PHP |
|
10.11.2016, 18:55 | #9 |
Banned
|
Цитата:
Сообщение от ax_mct
Я бы добавил свой собственный check-box и скрытый RecId в строку грида. Этот Check-box у нас не отправляет на сервер при постановке галки.
На сервере бы собирал бы RecId у отмеченных и отправлял на обработку в X++. Я мутил подобное в EP, дешево и сердито. Верьте мне - я читаю PHP На сервере, при обработке нажатия на заданную кнопку-действие, мы проходим по строкам грида как контрола и собираем скрытые RecId. Затем отправляем их группой в процесс. Обновляем. Мне за такое решение стоимость нового джипа заплатили. Даю бесплатно |
|
|
За это сообщение автора поблагодарили: SRF (1). |
14.11.2016, 16:39 | #10 |
Молодой, подающий надежды
|
А мне за аналогичное абсолютно работающее и всех устраивающее решение - обычная региональная зарплата в пол месяца и слово "МОЛОДЕЦ" в далеком 2011 году и это, к слову, была не вся задача, а лишь небольшая ее часть. Но вопрос у автора не в том, как передать записи в обработку - это дело техники, а как по-возможности допилить стандартную панельку WF, чтобы оно работало для всех форм в зависимости от настроек (что для клиентской части на обычных формах успешно реализовано)
__________________
Кононов Пётр |
|
|
За это сообщение автора поблагодарили: ax_mct (1). |
14.11.2016, 17:38 | #11 |
Banned
|
Цитата:
Цитата:
выделить несколько записей и нажать кнопку либо отправки\одобрения, либо какого то общего действия, после чего соответственно для каждой выделенной записи будет выполнено выбранное действие.
Допиливать стандартную панельку WF или что-то такое "стандартное" да так чтобы в одном месте сделал и в 10 сразу автоматически отразилось - это уже техническая хотелка технического программиста. То есть это "правильно" но лучше - копировать и делать сбоку. Не трогать "стандарт". Своя страница, свои контролы, свой код. Когда у клиента и стандартная страница и новая ее версия. Свой собственный multi-select и своя собственная передача в свою же обработку на своей же странице (основанной на копии стандартной) это и надежнее и быстрее. И совсем не ломает сделать это для скажем еще 5 страниц банальным копированием и дублированием. "чтобы в одном месте сделал и в 10 сразу автоматически отразилось" - это надо из себя каленым железом выжигать - чужой дом. |
|
|
За это сообщение автора поблагодарили: eugene egorov (2). |
|
|