Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Qlik Engine API Does Not Work after June 2017 update

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

14 Replies
Anonymous
Not applicable
Author

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!

Øystein_Kolsrud
Employee
Employee

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.

Alexander_Thor
Employee
Employee

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.

Anonymous
Not applicable
Author

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.

Anonymous
Not applicable
Author

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!