Четверг, 16.05.2024, 18:18
Главная Регистрация RSS
Приветствую Вас, Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Основной » Прочее » Пожелание: отдельное хранение файлов данных для консолей (Разделение одного файла сохранения вход данных на два)
Пожелание: отдельное хранение файлов данных для консолей
KejDatchДата: Четверг, 24.02.2022, 16:40 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 5
Репутация: 3
Статус: Оффлайн
Предлагаю:

1. Добавить настройку в консоль запросов и в консоль кода "хранить входящие данные в отдельном файле". Под "входящими" данными понимаю все то, что сейчас хранится в общем файле, в сериализованном виде. Это таблицы значений, загруженные из xls/таб. док, а также прочие параметры.

2. При активации настройки предлагать пользователю выбрать путь для хранения файла данных и указать имя. При нажатии кнопки "Сохранить" записывать этот путь внутри "основного" файла сохранения (консоли запросов или кода)

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

4. Собственно разделить хранение запроса/алгоритма и сами входящие данные на 2 файла. Текст запроса/алгоритма пусть хранится в "основном файле". Сериализованнные входящие данные - пусть хранятся в отдельном файле (только при указании вышеописанной настройки).

5. При перевыборе в настройках консоли "файла данных" - автоматически перезаполнять коллекцию "входящие параметры".

6. Также, если перевыбор происходит в консоли запросов - и текст текущего запроса в дереве запросов пустой - автоматически генерировать закомментированный кусок текста запроса, для выборки всех полей из таблицы значений и помещения в ВТ "ВТ_ИмяПараметраТз". Справедливо только для консоли запросов и только в том случае, если среди сериализованных данных есть таблица значений.

Данный функционал породит следующие выгоды и удобства:

- более удобное версионирование запросов/алгоритмов через сторонние СКВ (например git). Версионировать теперь можно будет только изменение самих запросов/алгоритмов, вместо того чтобы версионировать и "внутренние" данные тоже;

- можно будет иметь одни и те же "входящие данные" в виде файла, на которые "натравливать" разные запросы, алгоритмы, что тоже очень удобно (так как сейчас каждый запрос/алгоритм должен иметь свои собственные данные, загруженные непосредственно в него)
 
tormozitДата: Пятница, 25.02.2022, 08:49 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 6201
Репутация: 159
Статус: Оффлайн
В целом насчет версионирования. Если версии файла использовать для анализа изменений, то кажется его структура и без прикладных таблиц значений не очень подходит, т.к. элементы в дереве могут перемещать/переподчинять как угодно. Но если в списке запросов не менять положение существующих элементов, то наверное будет нормально.

Далее буду писать в основном про консоль запросов. С консолью кода все сложнее, т.к. там большое разнообразие типов больших объектов, поэтому пока не готов по ней ответить.

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

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

6. Так уже делает конструктор запроса ИР причем не для всех таблиц, а только для использованных в запросе. Также сгенерировать и добавить такой запрос в пакет можно сделать кнопкой "Поместить во временную таблицу" над списком параметров.

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

Было бы полезно почитать и другие мнения по путям решения подобных задач.
 
KejDatchДата: Пятница, 25.02.2022, 10:05 | Сообщение # 3
Рядовой
Группа: Пользователи
Сообщений: 5
Репутация: 3
Статус: Оффлайн
Может тогда просто сделать кнопки "загрузить таблицу из сохраненного файла" и "выгрузить таблицу в файл" в ТЧ "Параметры", которая актуальна будет только для таблиц значений?

Пусть хранится тогда и дальше так, как сейчас, раз там сложно доработать , кому надо - загрузит ТЗ в "перед выполнением".

А с помощью этих кнопок можно сэкономить время на загрузку ТЗ в другие запросы.

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


Сообщение отредактировал KejDatch - Пятница, 25.02.2022, 16:56
 
tormozitДата: Воскресенье, 27.02.2022, 10:35 | Сообщение # 4
Генералиссимус
Группа: Администраторы
Сообщений: 6201
Репутация: 159
Статус: Оффлайн
Цитата KejDatch ()
сделать кнопки "загрузить таблицу из сохраненного файла" и "выгрузить таблицу в файл" в ТЧ "Параметры"
Итак слишком много кнопок. Думаю операция не настолько частая, чтобы текущий способ загрузки таблицы значений (кнопкой в редакторе) казался не достаточно удобным.

Цитата KejDatch ()
сэкономить время на загрузку ТЗ в другие запросы
Мне не понятен сценарий работы, в котором требуется использовать одну таблицу в большом числе запросов. Я обычно делаю один пакетный запрос и в нем делаю все нужные запросы, опирающиеся на одну таблицу значений. Почему ты так не делаешь?
 
KejDatchДата: Воскресенье, 27.02.2022, 10:52 | Сообщение # 5
Рядовой
Группа: Пользователи
Сообщений: 5
Репутация: 3
Статус: Оффлайн
Я всего лишь хочу версионировать запросы, чтоб это было удобно. То есть, чтобы только текст отслеживался. Чтобы если новые строки добавишь в таблице значений в параметрах - это не отслеживалось. Обработчик "ПередВыполнением" частично решает задачу, но это же надо код писать какой-то, а хочется чтоб как-то более удобно было
 
tormozitДата: Воскресенье, 27.02.2022, 11:03 | Сообщение # 6
Генералиссимус
Группа: Администраторы
Сообщений: 6201
Репутация: 159
Статус: Оффлайн
Понял.
Тогда можно добавить в таблице параметров колонку с именем файла, из которого будет динамически загружаться таблица значений и при сохранении списка запросов таблица такого параметра будет сохраняться без строк.
 
tormozitДата: Воскресенье, 27.02.2022, 16:20 | Сообщение # 7
Генералиссимус
Группа: Администраторы
Сообщений: 6201
Репутация: 159
Статус: Оффлайн
Создал задачу https://www.hostedredmine.com/issues/942176
 
KejDatchДата: Воскресенье, 27.02.2022, 17:01 | Сообщение # 8
Рядовой
Группа: Пользователи
Сообщений: 5
Репутация: 3
Статус: Оффлайн
Да, такое решение подойдет вполне, файл будет такой же по формату, который создает редактор табличных данных?
 
tormozitДата: Понедельник, 07.03.2022, 18:33 | Сообщение # 9
Генералиссимус
Группа: Администраторы
Сообщений: 6201
Репутация: 159
Статус: Оффлайн
реализовано в 6.26
 
Форум » Основной » Прочее » Пожелание: отдельное хранение файлов данных для консолей (Разделение одного файла сохранения вход данных на два)
  • Страница 1 из 1
  • 1
Поиск: