Beperken datavolume tekeningbestanden tot wijzigingen

Met de volgende queries halen we alle tekeningen op en relateren die aan de werkorders op basis van artikel:

create or replace table dct@inmemorystorage
as
select dctx.attachments_document_item_code_attr itemcode
,      coalesce(normalize(dctx.attachments_document_item_code_attr, 60, false), 'none')
       || '-'
       || 'dct-' 
       || to_char(dctx.attachments_document_number_attr) 
       || '.' 
       || coalesce(lower(regexp_replace(dctx.name, '[^.]*\.', '')), 'bin')
       filename
,      dctx.attachments_document_number_attr hid
,      dctx.attachments_document_item_id_attr itemid
,      dctx.attachments_document_item_code_attr itemcode
,      dctx.binarydata
,      dctx.attachments_document_subject subject
,      dctx.name originalfilename
from   exactonlinexml..documentattachments dctx
where  dctx.attachments_document_item_id_attr is not null

create or replace table sor@inmemorystorage
as
select sor.*
,      igp.code itemgroupcode
,      normalize(itm.code, 60, false) itemcodedirectory
from   exactonlinerest..shoporders sor
join   exactonlinerest..itemsincremental itm
on     itm.id = sor.item
join   exactonlinerest..itemgroups igp
on     igp.id = itm.itemgroup

Merk op, het veld item zit niet in de Exact Online REST API-versie van documentbijlages. Daardoor moeten we momenteel alle documenten ophalen via de XML-API tabel ExactOnlineXML..DocumentAttachments. Dit duurt per keer 18 uur.

De XML API Documents heeft een variant DocumentsEx waar je ook documenttype en de aanmaakdatum kunt meegeven, maar die zit niet in DocumentAttachments.

De volgende query duurt maar een paar seconden:

select *
from   exactonlinexml..documentsEx
       ( Params_DateCreated_From => trunc(sysdate) - 60
       , Params_Type => 139
       )

Is het ook mogelijk een *Ex-versie te maken van ExactOnlineXML..DocumentAttachments waar je tenminste de aanmaakdatum (Params_DateCreated_From) en het type 139 (“Tekening”, via Params_Type) kunt meegeven?

Het blijkt dat hier al in voorzien is. Zorg dat versie 20.2.112 draait en dan:

select *
from   ExactOnlineXML..DocumentAttachmentsEx
       ( Params_DateCreated_From => trunc(sysdate) - 2
       )@eol

Voor 4 documenten duurt dat circa 500 ms.

Draait prima. Helaas krijg ik niet de tekening zelf maar alleen de naam. Document-Type_number is idd 139.