Ons verkoopdashboard draait in Excel op basis van Invantive Control for Excel. Het verwerkt data uit Exact Online.
In de pre-rapport trigger staat onder andere:
declare
l_start_date date := to_date($X{startdate});
begin
...
create or replace table tle@inmemorystorage
as
select to_char(tle.date, 'YYYYIW')
tle_week
label 'Week'
, to_char(tle.date, 'YYYYMM')
tle_maand
label 'Maand'
, cast(-tle.amountdc as double)
amountdc
label 'Gefactureerde Omzet'
, itm.itemgroupcode
, tle.* except amountdc
from gle8@InMemoryStorage gle
join transactionlinesincremental tle
on tle.date >= l_start_date
and tle.journalcode = '70'
and tle.glaccount = gle.id
and tle.linenumber not in (0, 9998, 9999)
join itm@inmemorystorage itm
on itm.id = tle.item
order
by tle.division
, tle.date
, tle.invoicenumber
, tle.linenumber
;
...
end;
Het aanmaken van tle@inmemorystorage faalt sinds release 25.0.127 met de volgende foutmelding (die niet optrad onder 24.0):
itgenrst012
De daadwerkelijk verwerkte gegevens moeten overeenkomen met het gegevenstype van de doelkolom ‘AMOUNTDC’ in ‘TLE’.
Zorg ervoor dat het waardegegevenstype (momenteel ‘Double’) in rij #1 is gecorrigeerd, met bijvoorbeeld cast(VAL as decimal).
Ik heb dit opgelost door het vervangen van -tle.amountdc amountdc door cast(-tle.amountdc as double) amountdc.
Het lijkt er op dat het datatype van de oorspronkelijke kolom gebruikt wordt in plaats van het decimal datatype die ontstaat door het vermenigvuldigen met -1.