Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi,
With the June 2017 upgrade of the Qlik server, most of the Qlik Engine API calls fail now (GetConnections, SetScript, GetScript, etc.). Did anyone experience this issue?
I tested the Engine API in the Engine API Explorer in the Dev Hub and the calls work there. But, using the exact same parameters through a websocket connection, the Engine API returns {'code': -32602, 'parameter': 'Invalid handle', 'message': 'Invalid Params'}
The handle and parameters I send are exactly the ones in the Engine API Explorer. Can anyone relate to this issue?
Thanks,
Chris
Hi again!
To clarify, I'm trying to launch QlikSense using a background process to interact with an specific app. So, are you telling me this is not possible due to the login step? Is there any way to send to Qlik Sense Desktop my credentials? I tried out my code skiping the QlikSense launch and another exception was trhown: System.ComponentModel.WarningException: 'SDK target system version mismatch. SDK target system version (v4.0) should match server version(v3.2)'
Nevertheless, even if I fix the version mismatch, this is not the expected behavior.
Any help will be very appreciate.
Regards!
I'm not sure if it possible to pass along credentials to Desktop, so I hope someone else can chime in on that one.
The version mismatch is easy to avoid though. If you don't want to use the 3.2 version that matches the server, then you can deactivate the version check like this:
location.IsVersionCheckActive = false;
Keep in mind that this means that the SDK will be out of sync with the engine API, so you might get some strange behaviors. But in reality the API's change so little that it usually works anyway.
The licensing terms for Qlik Desktop requires you to log in.
If you wish to run it as a automated process then it should be connected to a Qlik Sense Enterprise server and authenticated through whatever mechanism the virtual proxy is configured for.
I found the solution to my initial issue. It was related to not awaiting the receive() method on the websocket object created with the line from my above code: ws = await session.ws_connect(f"wss://{self.host}:{self.port}/app"). In short, when I also awaited ws.receive() everything started to work again.
Now, to explain why it worked before without calling receive() on the websocket object, I can only presume that in version 3.2, Qlik Engine did not return any message upon successfully connecting through its websocket API. And now, in version 4.0, it does. So that message had to be awaited also.
Agreed, I used that approach to fix the versión mismatch. So, if the full automation is not possible, we will need another solution to our needs. Anyway, all your help is very appreciated.
Thank you!