ADR-013. Файл выгрузки формируется при создании карты

ADR Версия: 0.1 accepted

Когда и по чьей команде появляется файл для АБИС: по отбору выборки вручную, по расписанию или при создании информационной карты.

⟨/⟩ Исходник

1. Контекст

По FR-007 «Выгрузка в АБИС» пользователь отбирал карты фильтрами реестра, отмечал строки и выгружал выборку одним действием. Правило отбора приходилось оговаривать отдельно — не отмечено ничего, значит выгружается вся выборка, — и оно же было самым опасным местом требования: ошибка означает передачу в АБИС не того объёма данных.

Заказчик отказался от такого порядка: отбор выборки и работа с файлом обмена — не занятие для библиотечного специалиста, далёкого от интеграции систем. Предложено выгружать автоматически, по расписанию.

Два обстоятельства меняют условие задачи. Первое: по ADR-012 «Незавершённая карта живёт в пакете ввода» неполной карты не существует, поэтому всякая созданная карта пригодна к передаче — отбирать и проверять нечего. Второе: Сервис файл кладёт, а не отправляет; что происходит с ним дальше, он не наблюдает.

2. Решение

Граница Сервиса — файл. Сервис формирует файл выгрузки и сохраняет его. Загрузка файла в АБИС выполняется вне Сервиса и им не наблюдается.

Файл формируется при создании карты. Действие «Создать ИК» и есть команда на выгрузку; отдельного действия у пользователя нет. Инициатор — хранитель, а не планировщик.

Отметка о выгрузке означает: файл сформирован. Ничего другого Сервис не знает, и обещать не должен. Состояния «принято в АБИС» у карты нет.

Пачка появляется только по требованию формата. Если формат обмена не допускает файла на одну карту, добавляется сборка накопленных карт в общий файл по расписанию. Тогда и только тогда у Сервиса возникает работа, которую никто не инициировал.

Выгрузка — самостоятельная сущность: момент, состав карт, файл. При выгрузке по карте состав — одна карта. Дата в информационной карте остаётся отметкой «файл сформирован», а подробности живут в выгрузке.

3. Обоснование

Требование заказчика — избавить специалиста от отбора и файлов. Выгрузка при создании карты выполняет это полнее расписания: действий не остаётся вовсе, а не переносится на ночь. Правило «отмечено — не отмечено» исчезает вместе с ручным отбором, и вместе с ним исчезает класс ошибок «передан не тот объём».

Привязки к внешней системе при этом не возникает: Сервис пишет файл, а не обращается к АБИС. Доступность чужой системы не может помешать хранителю создать карту — эти два процесса разведены самой границей файла.

Отметка «файл сформирован» честна: она утверждает ровно то, что Сервис наблюдал. Отметка «принято в АБИС» потребовала бы обратного канала, которого нет, и означала бы знание, которого у Сервиса не будет.

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

4. Следствия

5. Отвергнутые варианты

Отбор выборки вручную — исходный порядок. Отвергнут заказчиком: отбор и файл обмена не относятся к работе библиотечного специалиста, а правило отбора допускает передачу не того объёма данных.

Выгрузка только по расписанию. Предложение заказчика в буквальном виде. Отвергнуто как основной путь: если формат допускает файл на карту, расписание лишь откладывает то, что можно сделать сразу, и заводит фонового исполнителя без нужды. Остаётся в запасе на случай, когда формат требует пачку.

Вкладка «Передача в АБИС» на проверке пакета. Отвергнута: вкладки отвечают на вопросы о пакете, а не показывают результат; в момент, когда вкладка была бы уместна, карты ещё нет, а сразу после её создания пользователь уходит к следующему пакету. Содержимое файла обмена адресовано не оператору.

Состояние «принято в АБИС» у карты. Отвергнуто: Сервис не наблюдает судьбу файла, и такое состояние было бы обещанием знания, которого нет.

Связанные артефакты

Документы