Versnellen rapport voorraadanalyse Exact Online

Door het gebruik van PurchaseOrderLinesIncremental kan de looptijd beperkt worden tot circa 72 seconden:

create or replace view Voorraadanalyse_r
as
select bnr.batchnumber nummer
,      itm.code itemcode
,      act.name leverancier
,      bnr.availablequantity
,      bnr.availablequantity * itm.averagecost voorwaardwaarde
,      bnr.Remarks
,      itm.averagecost
from   ExactOnlineREST.Inventory.BatchNumbers@eol bnr
join   ItemsIncremental@eol itm
on     itm.division = bnr.division
and    itm.id = bnr.item
and    itm.IsStockItem = true
left
outer
join   GoodsReceiptLineBatchNumbers glr
on     glr.division         = bnr.division
and    glr.bnrbatchnumberid = bnr.id
left
outer
join   PurchaseOrderLinesIncremental@eol pol
on     pol.division   = glr.division
and    pol.Id         = glr.PurchaseOrderLineID
and    pol.LineNumber != 0
left
outer
join   PurchaseOrderLinesIncremental@eol por
on     por.division        = pol.division
and    por.PurchaseOrderID = pol.PurchaseOrderID
and    por.LineNumber      = 0
left
outer
join   AccountsIncremental@eol act
on     act.division = por.division
and    act.id       = por.Supplier
where  bnr.Division = GETAL

Al met al worden er dan nog 70 API calls op Exact Online uitgevoerd.

Een kleine besparing is het doorgeven van de Exact Online administratie vanaf bnr naar elke onderliggende tabel met de bijbehorende gedetailleerde informatie.

De query kan als view vastgelegd worden bij de database definitie indien deze real-time versie gebruikt moet worden voor een Power BI dashboard. Zie Eigen database-views gebruiken voor SQL en BI-tools voor hoe een view op Exact Online vastgelegd kan worden.

Voor real-time Exact Online voorraadcijfers in Power BI is het nodig om het cachegedrag ook juist in te stellen zoals beschreven in Differentieer OData4 cachegedrag met Power BI.

Het rapport heeft enige gelijkenis met het inkoopanalyse rapport uit Get My Report: Versnellen rapport voorraadanalyse Exact Online.