DocFlow

Как поймать смену шаблона у поставщика

Короткий ответ

Смена шаблона опасна тем, что не вызывает ошибки. Файл открывается, числа выглядят правдоподобно, итоги считаются — просто цена теперь лежит там, где было количество. Обнаруживается это обычно при инвентаризации, то есть спустя недели, поэтому проверять надо на входе, а не на выходе.

Способы решить задачу

01Вручную

Полминуты на файл; работает, пока файлов единицы, и перестаёт работать при десятках.

Просматривать глазами первые строки каждого нового файла перед загрузкой.

плюсы

  • + Ничего не нужно внедрять
  • + Полный контроль над каждым значением

минусы

  • − Время растёт линейно с объёмом
  • − Ошибки находятся позже, чем возникают

02Эталонная шапка и сверка с ней

Полчаса на поставщика, дальше автоматически.

Хранить для каждого поставщика ожидаемый список заголовков и сравнивать с ним первую строку каждого файла. Расхождение — повод остановиться и посмотреть.

плюсы

  • + Ловит смену порядка и переименование колонок
  • + Останавливает загрузку до того, как данные попали в учёт
  • + Настраивается один раз на поставщика

минусы

  • − Не ловит смену смысла колонки при том же названии
  • − Требует вести список эталонов

03Сопоставление по имени колонки вместо позиции

Разовая переделка загрузки; дальше бесплатно.

Читать шапку файла и обращаться к данным через соответствие «имя колонки — номер», а не по фиксированному индексу.

плюсы

  • + Перестановка колонок перестаёт что-либо ломать
  • + Не требует эталона

минусы

  • − Переименование колонки всё равно сломает загрузку
  • − Нужен словарь синонимов для вариантов написания заголовка

04Арифметический контроль после загрузки

Одна формула в реестре.

Проверять на загруженных данных, что количество, умноженное на цену, даёт сумму строки, а сумма строк — итог документа.

плюсы

  • + Ловит перестановку колонок независимо от заголовков
  • + Работает и для файлов без шапки

минусы

  • − Обнаруживает уже после загрузки
  • − Не сработает, если переставлены колонки, не участвующие в арифметике

Что выбрать

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

Вопросы

Почему поставщик не предупреждает о смене формы?

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

Как быстро обнаружить, что ошибка уже произошла?

Сравнить произведение цены на количество с суммой строки по всему массиву. При перестановке колонок это перестаёт сходиться почти везде, и расхождение видно сразу по числу проблемных строк.

Пилот · 1 990 ₽ за 30 дней

Если решили, что стоит попробовать

Пилот на 30 дней: пришлите самый неудобный счёт, разберём вручную под ваш формат и вернём готовую таблицу.

Первый счёт разбираем вручную под ваш формат. Списание разовое, автопродления нет. Источник перехода: seo/kak/poimat-izmenenie-shablona-vygruzki.