Мы ежегодно делаем обрезание базы - перенос документов в архивную базу и схлопывание складских проводок. Сделали функционал по перетаскиванию документов из архивной базы обратно в рабочую. Например, перетаскивание одного возврата может породить перетаскивание цепочки реализаций из нескольких десятков закупок, заказов и к ним сотен строк накладных и счетов-фактур.
Перетаскивание осуществляется на основе Query, сохраненого в АОТ. Для каждого документа - свой Query. В этом Query собраны все таблицы, которые надо подтянуть для восстановления этого документа. Пользователь вводит код документа, а дальше специальная обработка парсит этот Query и достает прямыми SQL-запросами данные из архивной базы.
Например, для вытаскиивания возврата в корне Query находится таблица PurchTable, к ней подчинены PurchLine, VendInvoiceJour. К PurchLinе подчинены также связанные заказы: SalesTable, Salesline, CustInvoiceJour, CustInvoiceTrans, FactureTrans_RU, FactureJour_RU.
На картинке пример такого Query для восстановления заказа на реализацию из архивной базы
Данный движок должен, по идее, работать на любой Аксапте.
Кубы OLAP настроены на забор данных из рабочей и архивных баз. Для этого информация о переносимых в архив документах сохраняется в специальной таблице, используя которую OLAP знает, из какой базы брать данные.
Последний раз редактировалось Ace of Database; 26.03.2015 в 13:27.
|