400: Column not found: ::ancestor.project_id ((no parameters)). The remote server returned an error: (400) Bad Request

Bij het ophalen van:

https://bridge-online.cloud/sacme-simplicate/odata4/Simplicate.Projects.ProjectHourTypeServices@spe?$filter=project_id%20eq%20'project%3Aa01eee11cf40c003feaad60b7a7437df'

treedt de volgende foutmelding op:

400: Column not found: ::ancestor.project_id ((no parameters)). The remote server returned an error: (400) Bad Request.

Het SQL-statement is:

select t.*
from ProjectHourTypeServices@spe t
where ([project_id] = :w1)

De foutcode 400 is lichtelijk verwarrend; in een volgende release zal dit de beter te herleiden itgenspe010 worden.

De foutmelding treedt op als het volgende verzoek gestuurd wordt voor de ProjectHourTypeServices naar Simplicate:

https://acme.simplicate.com/api/v2/projects/service?offset=0&limit=100&q[%3A%3Aancestor.project_id]=project%3Aa01eee11cf40c003feaad60b7a7437df

Hierin zit een filter op de kolom project_id uit “ouder” van de data. Deze filtersyntax met ancestor is niet beschikbaar op Simplicate en wordt veroorzaakt door een bug in de Invantive SQL-driver voor Simplicate.

In de volgende versie van de Invantive SQL Simplicate-driver zal dit opgelost zijn. Deze zal naar verwachting in de week van 13 december in productie genomen worden.

De geadviseerde workaround nu is om het filter niet mee te geven. Het doorsturen van een filter heet bij Invantive “server-side filtering” en bij Power Query “query folding”.

Het meesturen kan voorkomen worden door bijvoorbeeld het datatype van een kolom te wijzigen zoals beschreven in “Transformaties die vouwen voorkomen” op Query Folding - Power Query | Microsoft Docs.