WFS request op basis van ID-based filtering werkt niet meer

De WFS van BAG en WKPB geeft sinds kort een foutmelding als ID-based filter uit meerdere ID’s bestaat:

msWFSGetFeature(): WFS server error. FLTApplyFilterToLayer() failed
msOGRFileWhichShapes(): OGR error. ExecuteSQL() failed. Check logs.

Wanneer 1 ID wordt gebruikt, dan gaat het wel goed.

Voorbeeld:
https://service.pdok.nl/lv/bag/wfs/v2_0?SERVICE=WFS&VERSION=2.0.0

<wfs:GetFeature service=“WFS” version=“2.0.0”
outputFormat=“application/gml+xml; version=3.2” count=“101” xmlns:bag=“http://bag.geonovum.nl
xmlns:wfs=“http://www.opengis.net/wfs/2.0
xmlns:fes=“http://www.opengis.net/fes/2.0
xmlns:ogc=“http://www.opengis.net/ogc
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance
xmlns:gml=“http://www.opengis.net/gml/3.2
xsi:schemaLocation=“http://www.opengis.net/wfs
http://schemas.opengis.net/wfs/2.0/wfs.xsd”>
<wfs:Query typeNames=“bag:verblijfsobject” srsName=“EPSG:28992”>
fes:Filter
<fes:ResourceId rid=“verblijfsobject.45336043-0973-4690-8660-4472d81ef496”/>
<fes:ResourceId rid=“verblijfsobject.84cadf35-b334-459f-8187-4cedc5fadb0c”/>
</fes:Filter>
</wfs:Query>
</wfs:GetFeature>

Is er iets veranderd?

Groet,
Saskia

Bedankt voor het melden, wij zijn er naar aan het kijken.

Beste Robbert, Wanneer verwacht je het resultaat van het onderzoek?

Hoi Saskia & Adrie,

Leuk om iets van jullie te horen :slightly_smiling_face: jammer dat het om een bug gaat.

Onlangs zijn de WFS-services geupgrade van Mapserver versie 7 naar versie 8.4. Momenteel zijn we aan het onderzoeken of deze bug hierdoor wordt veroorzaakt en hoe we kunnen zorgen dat requests zoals het bovenstaande blijven werken.

Wij verwachten hier nog wel even mee bezig te zijn. Mogelijk is het herschrijven van het fes:Filter naar een ogc:Filter voor jullie een bruikbare workaround.

Dus i.p.v.:

<fes:Filter>
	<fes:ResourceId rid="verblijfsobject.71bed554-2de0-469b-9b1c-be9f9cce515c"/>
    <fes:ResourceId rid="verblijfsobject.272f9592-ba60-47ee-86bd-8374841a3a41"/>
</fes:Filter>

zou

<ogc:Filter xmlns:gml="http://www.opengis.net/gml"
            xmlns:ogc="http://www.opengis.net/ogc">
	<ogc:Or>
		<ogc:PropertyIsEqualTo>
			<ogc:PropertyName>fuuid</ogc:PropertyName>
			<ogc:Literal>verblijfsobject.71bed554-2de0-469b-9b1c-be9f9cce515c</ogc:Literal>
		</ogc:PropertyIsEqualTo>
		<ogc:PropertyIsEqualTo>
			<ogc:PropertyName>fuuid</ogc:PropertyName>
			<ogc:Literal>verblijfsobject.272f9592-ba60-47ee-86bd-8374841a3a41</ogc:Literal>
		</ogc:PropertyIsEqualTo>
	</ogc:Or>
</ogc:Filter>

gebruikt kunnen worden.

Groet,
Damien

1 like

Hi Damien,

Ook van onze kant is het een leuke verrassing om je hier tegen te komen! :slightly_smiling_face:

Wat je voorstel betreft, wij zouden dan een uitzondering moeten gaan maken voor deze bijzondere situatie. Je zult begrijpen dat dit absoluut niet onze voorkeur heeft en zelfs niet wenselijk is. Problemen bij de bron oplossen is altijd het beste!

Ik hoop dus dat dit probleem zo snel mogelijk kan worden gevonden en opgelost in jullie nieuwe Mapserver omgeving.

Keep us posted!

Groet,

Adrie & Saskia