Unternehmensübergreifende Berichterstattung über Exact Online-Salden

405
R. van Deursen

Um Konsolidierungsprobleme mit einem anderen Paket zu lösen, laden wir alle Transaktionszeilen der Hauptbuchhaltung mit Invantive Control in eine Excel-Tabelle. In Exact Online haben wir für jedes Unternehmen eine Klassifizierung 2, die den Code des Kunden enthält, z. B. '123400'. Es gibt mehrere Firmen pro Kunde.

Aus einer anderen Tabelle referenzieren wir diese FIBU-Transaktionszeilen mit einer Abfrage wie:

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 

Die Datenquelle ist:

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

Die Konsolidierung pro Zeitraum über alle Unternehmen eines Kunden hinweg dauert jedoch 30 Minuten pro Kunde. Die meiste Zeit wird tausende Male für die Ausführung der Abfrage in der Exact Online-Kalkulationstabelle durch diese Formel verwendet, die in etwa 10 Unternehmen x 14 Perioden x 600 Kategorien = 84.000 Zellen vorhanden ist:

=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) 

Wie kann ich die Leistung auf weniger als eine Minute verbessern?

3

1 Antwort auf die Frage

1
Guido Leenders

Obwohl technisch und funktional korrekt, ist der Ansatz, den Sie skizzieren, für die APIs und Ihre CPU etwas langsam und schwer. Es ist besser, die summierten Waagen nur von Exact Online abzurufen und sie das schwere Heben durchführen zu lassen.

Beispiel:

Wählen Sie die richtigen Unternehmen, um Daten anzufragen:

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 

Die useAussage anders als SQL Server ermöglicht es Ihnen, mehrere Partitionen (die Unternehmen auf Exact Online) angeben.

Und dann die Ergebnisse pro FIBU-Konto, Zeitraum und Abteilung abrufen:

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

In meinem Setup dauert es 10 Sekunden, bis die konsolidierten Beträge von 10 großen Unternehmen abgerufen werden.

Es gibt einige Tischvarianten wie zB Kostenträger / Kostenstelle und Jahreseröffnungs- / Schlusssalden.