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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.08.2023, 11:10   #1  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,940 / 3229 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Формат хранения пользовательских настроек формы
Привет всем.

Коллеги, а кто-нибудь разбирал формат хранения пользовательских настроек форм ?
Зачем :
1. Пользователь настраивает форму в аксапте под себя.
2. Программисты выкатывают обновление.
3. Пользовательские настройки формы становятся неприменимы (падает аксапта, кривится форма итп)
4. Приходится сбрасывать настройки чтобы восстановить нормальное функционирование формы.
5. Пользователь матерится и заново повторяет все настройки.

Можно как-то этого избежать ?
Понять как хранятся настройки и пофиксить.
Или может быть при выполнении пользователем настроек формы вести свой лог действий юзера при настройке, так что его можно повторить после сброса.

Может кто-то это уже делал ?

Последний раз редактировалось Logger; 21.08.2023 в 11:15.
Старый 21.08.2023, 13:07   #2  
TasmanianDevil is offline
TasmanianDevil
Мрачный тип
Аватар для TasmanianDevil
Злыдни
 
886 / 389 (14) ++++++
Регистрация: 24.01.2005
Адрес: Томск
IMHO, овчинка не стоит выделки - состав контейнера настроек, сохраняемых в pack() у FormRun, закрыт, в отличии , например, от поголовья RunBase'овских наследников, где при изменении структуры сохраняемых параметров можно имеющимся сохраненным настройкам провести правильную "хирургию".
__________________
Мы летаем, кружимся, нагоняем ужасы ...
Старый 21.08.2023, 20:54   #3  
Товарищ ♂uatr is offline
Товарищ ♂uatr
Участник
Аватар для Товарищ ♂uatr
MCBMSS
 
299 / 866 (29) +++++++
Регистрация: 23.10.2012
Практикую блокировку "кастомных" пользовательских настроек для "развивающихся"(нестабильных) функциональных блоков и да, это не панацея.
В текущей формулировке не ощущается "простоты" - это изменение методологии разработки. Оно порождает доп. комплексность - Вы готовы взять на себя его поддержку?

ИХМО Стоит вернуться на шаг назад и задаться вопросами: "Кто этот пользователь формы? Много ли таких пользователей? Что их объединяет? Можно ли их разбить на группы? Каковы их функциональные обязанности?"
Текущее решение - одно из множества. Есть ли более удачные? Выделение отдельной формы для специфической категории пользователей, например, решит проблему?

В коробочной версии данные в контейнере лежат в рамках ключа ControlNameControlId последовательность соответствует указанной в дизайне. Меняем ключ - получаем неработоспособную настройку объекта.
Понятное дело, что можно изменить подход к "пакетированию" данных реализовав расширение к стандартной xSysLastValue (в противовес быстродействию при открытии и закрытии формы).
Но перед тем как пытаться изменить подход к упаковке данных, стоит ответить на 2 вопроса:
А какие именно действия программиста приводят к возникновению данной проблемы?
А какие именно пользовательские настройки ломаются?
С программистом, вроде, всё просто: это может быть добавление, удаление, перемещение в дизайне и переименование объекта.
В итоге получаем двумерную матрицу "Действий разработчика" на "Настройки пользователя" и отмечаем, что делать можно.
Изображения
 

Последний раз редактировалось Товарищ ♂uatr; 21.08.2023 в 22:52.
За это сообщение автора поблагодарили: Logger (5), Pandasama (3).
Старый 29.09.2023, 17:47   #4  
ivas is offline
ivas
Участник
Аватар для ivas
 
252 / 68 (3) ++++
Регистрация: 22.12.2005
Вы можете сами сохранять некоторые важные для пользователя настройки параллельно в своем формате. Например последовательность колонок в гридах сохранять в контейнере или json формате с помощью
X++:
xSysLastValue::putValue(...)
и при инициализации формы двигать только те колонки для которых есть настройка.
__________________
aLL woRk aNd nO JoY MAKes jAck a dULL Boy

Последний раз редактировалось ivas; 29.09.2023 в 17:51.
За это сообщение автора поблагодарили: Logger (3).
Старый 29.09.2023, 17:59   #5  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,940 / 3229 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от ivas Посмотреть сообщение
Вы можете сами сохранять некоторые важные для пользователя настройки параллельно в своем формате. Например последовательность колонок в гридах сохранять в контейнере или json формате с помощью
X++:
xSysLastValue::putValue(...)
и при инициализации формы двигать только те колонки для которых есть настройка.
Собственно так и хотим сделать. Прикрутить в редактор что-то типа лога и затем по желанию юзера по логу прокручивать и автоматически все нужные изменения вносить.
Старый 29.09.2023, 18:46   #6  
ivas is offline
ivas
Участник
Аватар для ivas
 
252 / 68 (3) ++++
Регистрация: 22.12.2005
Делал подобное для сохранения пользовательского порядка полей в SysTableBrowser.
пункт - "Пользовательский" (в радиобаттоне справа)
вот Form_SysTableBrowser_Dev.xpo проект для 2009
__________________
aLL woRk aNd nO JoY MAKes jAck a dULL Boy
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Переопределение пользовательских настроек на форме (DAX2012) DesparioN DAX: Функционал 2 21.04.2022 17:52
Универсальный запоминатель пользовательских настроек DataSource. tricky DAX: Программирование 18 05.10.2010 13:13
Запретить сохранение настроек формы egorych DAX: Программирование 9 27.01.2010 17:24
Сохранение пользовательских настроек в диалоге отчета Андрей К. DAX: Программирование 14 26.04.2007 10:56
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38

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

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

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