Нашёл способ быстро строить решения по малой автоматизации рутинных процессов. Более того, уже пошла вторая волна, когда некоторые отчёты создаю в формате выгрузки в Эксель под используемый шаблон. Ну, давайте расскажу подробности 🙂
Давно понятно, что сгенерировать с помощью формул или связанных таблиц пару тысяч строк совершенно не проблема. А вот эту же пару тысяч строк вколотить в виде проводки непозволительное использование микроскопа в качестве молотка. Да, конечно, в Скале есть стандартный импорт, но в некоторых местах можно наплодить несколько настроек импорта, а есть места, где есть всего один шаблон, который приходится каждый раз курочить, а потом возвращать обратно. Мои коллеги иногда даже пишут всевозможные запросы, которые обновляют эти настройки в БД, а потом, возвращают назад. В общем, уродство ещё то 🙂
В процессе реальной практики я выработал вот такой подход:
В Экселе создаётся шаблон по определённую задачу, например, для импорта счетов-фактур и проводок поставщиков или для импорта платежей по корпоративным кредитным картам сотрудников, или для импорта проводок Главной Книги.
Под каждый из таких шаблонов создаётся надстройка в Экселе, с помощью которой всё это можно запихнуть в пользовательскую таблицу БД iScala и далее выполнять операции уже на сервере с всевозможными проверками условий на валидность того, что было загружено:
Если проверки показали, что с загруженной информацией всё в порядке, например, сумма по строкам проводок равна нулю, все бухгалтерские счета и учётные измерения существуют в Скале, их комбинация разрешена в настройках допустимых комбинаций кодов, тогда внизу отчёта появляется ссылка на подотчёт, который сгеренирует XML файл для его последующей обработки механизмом Epicor Service Connect. А если какое-то условие не будет выполнено, ссылка не появится, а неверные строки или отдельные значения будут выделены цветом, жирностью, всплывающими сообщениями и т.п. Тогда пользователь должен вернуться в Эксель, сделать исправления, загрузить их повторно и обновить отчёт. И когда в итоге пользователь нажмёт на появившуюся ссылку и перейдёт в подотчёт, будет создан файл и загружен в систему автоматически. Вернувшись в исходный отчёт (из подотчёта) пользователь может через 1-2 минуты обновить отчёт и увидеть появившийся в правой верхней части отчёта номер проводки. Если на него нажать, можно сразу «провалиться» в отчёт по проводке и увидеть её содержимое.
А теперь про «вторую» волну. Недавно попросили создать отчёт по резервам под обесценение товаров на складе. И после этого нужно по этому отчёту создавать «ручную» проводку Главной книги. Ну зачем же «вручную». Я сделал клон отчёта на тех же данных, но уже в формате Эксель файла-шаблона импорта проводок ГК. Достаточно сохранить отчёт в Эксель и всё уже готово к его загрузке в Скалу с помощью вышеописанной процедуры.