qlik-oss / enigma-go

Go library for consuming Qlik's Associative Engine.
MIT License
39 stars 12 forks source link

Not wrapping engine 7002 error on GetLayout for objects with large amount of data #134

Closed avb-qlik closed 4 years ago

avb-qlik commented 4 years ago

Description

Enigma-go is not wrapping engine 7002 error on GetLayout for objects with large amount of data. To be more specific: https://github.com/qlik-oss/enigma-go/blob/master/qix_generated.go#L3082

Steps to Reproduce

  1. GetObject with the id of a pivot-table of millions of cells
  2. Call ExpandLeft with all parameter set to true https://github.com/qlik-oss/enigma-go/blob/master/qix_generated.go#L10010 . No errors are returned.
  3. Call GetLayout . The layout of the object is returned with an HyperCube.Size set to zero and a property Error set to 7002 with no description. No errors are returned.
Expected behavior

On point 3 I would expect to get an enigma-go error with 7002 code (https://github.com/qlik-oss/enigma-go/blob/master/qix_generated.go#L3082

Actual behavior

No errors are returned from the GetLayout call. Causing some possible subsequent calls to fail with other error codes (like 6002 invalid layout).

Environment

Operating system
[ ] Windows
[ ] OSX
[x] Linux

Versions

wennmo commented 4 years ago

Hi @avb-qlik , I agree that the error is not that evident when placed in an Error property, but that is how the protocol is designed. Since a generic object also can contain multiple hypercubes, a GetLayout is not necessarily considered failed if only one hypercube is erroring.

Basically enigma-go and enigma.js is wrapping the Engine JSON-RPC API, so from my perspective this seems to be working as designed. Let me know if you disagree or if I have misinterpreted your expected behaviour.

avb-qlik commented 4 years ago

Hi @wennmo, it makes sense since charts can have multiple hypercubes and it’s a common scenario. I got the point. We can close the issue as WAD then. Thanks