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.