Hi everyone,
We are facing an issue with GQI queries in a Low-Code App on one of our customers' systems, which is hosted on DaaS (DataMiner version: 10.6.0.0-17062).
The app retrieves data from an ad hoc data source. The customer needs to see the same information filtered by different sources, so we replicated the queries across several pages (3 queries per page, total of 6 pages), each one with filters applied to the fields relevant to that page. These filters are dynamic, based on values available to the user in the page.
Everything was working fine this morning. Later in the day, we noticed that one of the queries stopped returning data, without showing any error. When we tried to debug this query, it started throwing the following GQI error:
GQI error: Error in implementation of GetNextPage: Object reference not set to an instance of an object.
To illustrate the behavior we are seeing:
- On the page for equipment 1-A, the query returns no data and shows no error, even though there is data matching that filter(confirmed after using the "get parameter for element where" query method and apply the same column filters).
- On the page for equipment 2-A, the query works correctly and returns data without any error.
- However, if we take either query (from 1-A or from 2-A) and add it to a new component in the app, both throw the GQI error above.
So the same query that works in an existing component fails when added to a new one.
- Has anyone encountered this error or similar behavior before, and what was the cause?
- What could explain a query working in an existing component but failing in a new one?
- Is there a recommended way to get more detailed logging or a stack trace for this error on a DaaS system?
Any help or pointers would be greatly appreciated. Thanks in advance!
Hi Bautista, thank you for your quick response!
The ad hoc data source retrieves data from a table (not standalone parameters) of an element. It receives the element ID ("DmaId/ElementId") as an input argument, reads the full table from that element and returns its rows.
The data source also supports real-time updates, so the components refresh automatically when the table changes on the element.
As I mentioned, the query works well on some pages but not on others, even though the value sent as a filter is correct and should return data. To give a concrete example of what we tested:
On page 1-A, the query returns no data and shows no error, even though there is data matching the filter.
On page 2-A, the same query works correctly, returning data without any error.
When we copy either query (from 1-A or from 2-A) into a new component in the app, both throw the GQI error "Error in implementation of GetNextPage: Object reference not set to an instance of an object."
So the query from 2-A, which works fine on its own page, fails as soon as it's placed in a new component, with the same configuration and input. Could you elaborate on what could cause the same query to behave differently depending on the component it runs in? For example, is the query executed differently in a new component than in an existing one (such as how real-time updates or input arguments are handled), or could there be some cached state that keeps the existing components working?
Thanks again!
Hello again, would you happen to have any static variables in your Ad Hoc DataSource?
We reached out to the support team for more details on this issue. They mentioned it might be happening because "Update Data" was disabled in the LCA component, as certain information is only fetched inside the OnStartUpdate function. Enabling "Update Data" and linking a trigger component fixed it for me.
We reached out to the support team for more details on this issue. They mentioned it might be happening because "Update Data" was disabled in the LCA component, as certain information is only fetched inside the OnStartUpdate function. Enabling "Update Data" and linking a trigger component fixed it for me.
Hey Joao, could you elaborate more on your ad hoc datasource? What data are you retrieving (e.g. is it a table or standalone parameters) and how are you retrieving it?
The Object Reference sounds like it could mean you are calling a class function on a null object. You should review the code to ensure no variables get a class function called on them when the value is null.
I hope this helps,
Bauti