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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 31.08.2021, 06:49   #1  
griefon is offline
griefon
Участник
 
131 / 52 (2) ++++
Регистрация: 07.12.2010
Адрес: down under
Прятать неиспользуемые поля и menu items
Добрый день коллеги.

Один из заказчиков хочет скрыть неиспользуемые поля на формах и спрятать menu items которые не используются.

Для поля "неиспользуемость" это значит во всей таблице нет ни одного значения, и поле не используется в связях.

Для menu item это означает что его не открывали в последние N месяцев, или вообще.

Это все для D365 но можно идеи и для 2012, если есть.

Какие есть практичные варианты реализации.
За это сообщение автора поблагодарили: trud (1).
Старый 31.08.2021, 07:47   #2  
Pandasama is offline
Pandasama
Участник
 
457 / 137 (5) +++++
Регистрация: 11.08.2014
Адрес: Барнаул
Самый практичный вариант использования, имхо, скрыть все через персонализацию и эту персонализацию потом расшарить на всех желающих.
Старый 31.08.2021, 09:41   #3  
griefon is offline
griefon
Участник
 
131 / 52 (2) ++++
Регистрация: 07.12.2010
Адрес: down under
Да, есть такая мысль. Но с учётом количества форм, очень бы хотелось это автоматизировать.
Старый 31.08.2021, 09:56   #4  
Pandasama is offline
Pandasama
Участник
 
457 / 137 (5) +++++
Регистрация: 11.08.2014
Адрес: Барнаул
Я сомневаюсь, что где-то со старта системы ведется статистика использования меню-айтемов. То есть вам надо сейчас скастомить такую статистику и начать её сохранять, а через год двигаться дальше

Ну и в целом, я думаю, что дешевле это сделать руками, чем разрабатывать автоматизацию

Последний раз редактировалось Pandasama; 31.08.2021 в 10:04.
Старый 31.08.2021, 15:33   #5  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,322 / 3547 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Когда-то давно - еще в 2009 стояла такая же задача. Была сделана табличка для сбора статистики и был написан код, который был вставлен по следам Task Recorder-а (т.е. в ClassFactory::formRun* и т.д., а также в базовый класс RunBase. Ну и в качестве сервиса можно было задать генерить сбор статистики не по всем объектам, а только тем, у которых в названии содержится заданная строка (актуально для сбора статистики по модулям).
Уже через месяц узнали много интересного о том, с какими формами реально работают пользователи.
С полями гораздо сложнее, потому что есть еще display/edit методы, про которые никак нельзя узнать - пользуются ими или нет. Также как и со связями - нельзя однозначно понять - используется ли поле в связях или нет. Например, настроил я разноску и выбрал вариант Все. Значит у меня какое-нибудь поле типа "Группа номенклатуры" - будет пусто. И вероятно так будет во всей таблице. Relation-а тут нет - только анализировать код. А код может быть таким.... что даже перекрестными ссылками не ловиться. И я уж не говорю про расширения в D365, в которых еще сложнее искать программный код.
А еще есть наследование таблиц....

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

Последний раз редактировалось sukhanchik; 31.08.2021 в 15:39.
За это сообщение автора поблагодарили: trud (2), griefon (1).
Старый 01.09.2021, 04:07   #6  
griefon is offline
griefon
Участник
 
131 / 52 (2) ++++
Регистрация: 07.12.2010
Адрес: down under
Цитата:
Сообщение от Pandasama Посмотреть сообщение
Ну и в целом, я думаю, что дешевле это сделать руками, чем разрабатывать автоматизацию
Тут стоит признаться, что я работаю в консалтинге, поэтому я не уверен, что минимизация затрат в моих инетерсах. Причем даже безотносительно оплаты, мне интереснее разобраться и что-то подобное запрограммировать, чем руками попрятать поля.
Старый 01.09.2021, 09:33   #7  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
375 / 562 (19) +++++++
Регистрация: 08.08.2007
Записей в блоге: 1
В коробке (как минимум в 2012) есть такой пункт меню - Журнал использования элементов - Администрирование\Запросы\Журнал использования элементов(SysUtilElementsLog), есть даже дата с которой не используется та или иная форма, там насколько я помню только формы логируются, но в принципе можно расширить.

У нас с начала запуска работает функционал использования кнопок на формах по пользователям, но это скорее сделано для аудита, а не для скрытиях тех или иных объектов, основная кастомизация в SysSetupFormRun\selectControl + в init (открытие формы).
__________________
Sergey Nefedov

Последний раз редактировалось SRF; 01.09.2021 в 11:25. Причина: Опечатки в именах объектов
За это сообщение автора поблагодарили: sukhanchik (2), griefon (2).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
organicax: WMS Mobile Device indirect menu items – compile of posts. Blog bot DAX Blogs 0 03.09.2016 01:24
atinkerersnotebook: Creating One Master Menu to Get Just What You Need Blog bot DAX Blogs 0 24.01.2015 16:16
DynamicsAxSCM: Receiving a pallet with mixed items based on a packing structure using License plate receiving mobile device menu item Blog bot DAX Blogs 0 18.09.2014 22:12
dynamicsaxtraining: Vendor returns Blog bot DAX Blogs 0 11.10.2012 00:11
Axapta Lessons: Menu Items Blog bot DAX Blogs 0 23.11.2006 16:00

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

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

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