ADR-013. Файл выгрузки формируется при создании карты
Когда и по чьей команде появляется файл для АБИС: по отбору выборки вручную, по расписанию или при создании информационной карты.
1. Контекст
По FR-007 «Выгрузка в АБИС» пользователь отбирал карты фильтрами реестра, отмечал строки и выгружал выборку одним действием. Правило отбора приходилось оговаривать отдельно — не отмечено ничего, значит выгружается вся выборка, — и оно же было самым опасным местом требования: ошибка означает передачу в АБИС не того объёма данных.
Заказчик отказался от такого порядка: отбор выборки и работа с файлом обмена — не занятие для библиотечного специалиста, далёкого от интеграции систем. Предложено выгружать автоматически, по расписанию.
Два обстоятельства меняют условие задачи. Первое: по ADR-012 «Незавершённая карта живёт в пакете ввода» неполной карты не существует, поэтому всякая созданная карта пригодна к передаче — отбирать и проверять нечего. Второе: Сервис файл кладёт, а не отправляет; что происходит с ним дальше, он не наблюдает.
2. Решение
Граница Сервиса — файл. Сервис формирует файл выгрузки и сохраняет его. Загрузка файла в АБИС выполняется вне Сервиса и им не наблюдается.
Файл формируется при создании карты. Действие «Создать ИК» и есть команда на выгрузку; отдельного действия у пользователя нет. Инициатор — хранитель, а не планировщик.
Отметка о выгрузке означает: файл сформирован. Ничего другого Сервис не знает, и обещать не должен. Состояния «принято в АБИС» у карты нет.
Пачка появляется только по требованию формата. Если формат обмена не допускает файла на одну карту, добавляется сборка накопленных карт в общий файл по расписанию. Тогда и только тогда у Сервиса возникает работа, которую никто не инициировал.
Выгрузка — самостоятельная сущность: момент, состав карт, файл. При выгрузке по карте состав — одна карта. Дата в информационной карте остаётся отметкой «файл сформирован», а подробности живут в выгрузке.
3. Обоснование
Требование заказчика — избавить специалиста от отбора и файлов. Выгрузка при создании карты выполняет это полнее расписания: действий не остаётся вовсе, а не переносится на ночь. Правило «отмечено — не отмечено» исчезает вместе с ручным отбором, и вместе с ним исчезает класс ошибок «передан не тот объём».
Привязки к внешней системе при этом не возникает: Сервис пишет файл, а не обращается к АБИС. Доступность чужой системы не может помешать хранителю создать карту — эти два процесса разведены самой границей файла.
Отметка «файл сформирован» честна: она утверждает ровно то, что Сервис наблюдал. Отметка «принято в АБИС» потребовала бы обратного канала, которого нет, и означала бы знание, которого у Сервиса не будет.
Отдельная сущность выгрузки нужна ради журнала. По одной дате в карте не собрать, что ушло вместе, нечему приписать имя файла и не за что зацепить повторное формирование.
4. Следствия
- Ручная выгрузка на реестре карт сохраняется как административное действие: сформировать файл заново, если прежний утрачен или испорчен. Основным путём быть перестаёт.
- Нужен журнал выгрузок: когда сформирован файл, какие карты вошли, где он лежит. Без него автоматически созданный файл незаметен.
- Нужно место, где видно, что последняя выгрузка состоялась. Если формат потребует пачки и появится расписание, там же должно быть видно, что планировщик жив.
- Формат обмена определяет устройство решения: допускает ли он файл на карту или требует пачку. До ответа (OQ-V-4) неизвестно, понадобится ли расписание вообще.
- За то, что сформированный файл дошёл до АБИС, отвечает не Сервис. Кому и как передаётся файл — договорённость с заказчиком, а не часть Сервиса.
- Карта после создания не правится, поэтому повторная выгрузка по изменению данных не возникает.
5. Отвергнутые варианты
Отбор выборки вручную — исходный порядок. Отвергнут заказчиком: отбор и файл обмена не относятся к работе библиотечного специалиста, а правило отбора допускает передачу не того объёма данных.
Выгрузка только по расписанию. Предложение заказчика в буквальном виде. Отвергнуто как основной путь: если формат допускает файл на карту, расписание лишь откладывает то, что можно сделать сразу, и заводит фонового исполнителя без нужды. Остаётся в запасе на случай, когда формат требует пачку.
Вкладка «Передача в АБИС» на проверке пакета. Отвергнута: вкладки отвечают на вопросы о пакете, а не показывают результат; в момент, когда вкладка была бы уместна, карты ещё нет, а сразу после её создания пользователь уходит к следующему пакету. Содержимое файла обмена адресовано не оператору.
Состояние «принято в АБИС» у карты. Отвергнуто: Сервис не наблюдает судьбу файла, и такое состояние было бы обещанием знания, которого нет.
Структурные связи
Использует
- Запрос на изменение Выгрузка в АБИС без отбора выборки
Реализуется
- Доменная сущность Выгрузка
Используется
- Запрос на изменение Выгрузка в АБИС без отбора выборки