Производительность межфирменной отчетности по балансам Exact Online

224
R. van Deursen

Чтобы решить проблемы консолидации с другим пакетом, мы загружаем все строки транзакции из Главной книги в лист Excel с помощью Invantive Control. В Exact Online у ​​каждой компании есть классификация 2, которая содержит код клиента, например, «123400». На одного клиента приходится несколько компаний.

Из другой таблицы мы ссылаемся на эти строки транзакции GL с помощью запроса, такого как:

SELECT `'Exact transacties$'`.Administratie, `'Exact transacties$'`.Jaar2, `'Exact transacties$'`.Periode, `'Exact transacties$'`.Grootboeknr, `'Exact transacties$'`.Grootboekomschr, `'Exact transacties$'`.Classificatie_code, `'Exact transacties$'`.Zoek_code, `'Exact transacties$'`.Dagboek, `'Exact transacties$'`.Valuta, `'Exact transacties$'`.Bedrag FROM `'Exact transacties$'` `'Exact transacties$'` ORDER BY `'Exact transacties$'`.Administratie, `'Exact transacties$'`.Jaar2, `'Exact transacties$'`.Grootboeknr 

Источник данных:

DSN=Excel Files;DBQ=PATH\Databestand EOL (bestandsnaam niet wijzigen).xlsm;DefaultDir=PATH;DriverId=1046;MaxBufferSize=2048;PageTimeout=5; 

Однако консолидация за период во всех компаниях клиента занимает 30 минут на клиента. Большая часть времени тратится тысячи раз на выполнение запроса в электронной таблице Exact Online с помощью этой формулы, представленной примерно в 10 компаниях x 14 периодов x 600 категорий = 84 000 ячеек:

=ALS(W$511<=Huidige_periode;V595+(-SOMMEN.ALS(Tabel_Query_van_Excel_Files_1[Bedrag];Tabel_Query_van_Excel_Files_1[Administratie];Cliëntnr_EOL1;Tabel_Query_van_Excel_Files_1[Jaar2];HuidigBoekjaar;Tabel_Query_van_Excel_Files_1[Periode];W$511;Tabel_Query_van_Excel_Files_1[Classificatie_code];$B595&"*";Tabel_Query_van_Excel_Files_1[Dagboek];"<900"));0) 

Как я могу улучшить производительность менее чем за одну минуту?

3

1 ответ на вопрос

1
Guido Leenders

Несмотря на техническую и функциональную корректность, набросок, который вы рисуете, немного медленный и тяжелый для API и вашего процессора. Лучше всего получить суммированные балансы из Exact Online и позволить им выполнять тяжелую работу.

Пример:

Выберите правильные компании для запроса данных:

use select DIVISIONCLASSES_DIVISIONCLASSNAME_DIVISIONCLASSNAMES_ADMINISTRATION_CODE_ATTR from AllAdministrationClassifications  where DIVISIONCLASSES_DIVISIONCLASSNAME_NUMBER_ATTR = 2  and CODE_ATTR = '123123' -- PUT HERE YOUR CLIENT CODE 

useЗаявление иначе, чем SQL Server позволяет указать несколько разделов (которые компания на Exact Online).

А затем получить результаты по учетной записи GL, периоду и разделению:

select BALANCE, PERIODS_YEAR_YEARS_BALANCE_CODE_ATTR, DIVISION_HID, PERIODS_YEAR_REPORTINGYEAR_ATTR, REPORTINGPERIOD_ATTR from BalanceLinesPerPeriod  

В моей установке требуется около 10 секунд, чтобы получить консолидированные суммы в 10 крупных компаниях.

Доступно несколько вариантов таблиц, например, с единицами затрат / МВЗ и сальдо открытия / закрытия года.

Похожие вопросы