The shared object of a QlikView document is created/updated as and when users create objects via any client.
Why does it also contain the data that from the data model the users are working on, along with the kind of object/type of chart with various other information about dimensions, expressions and object meta data?
This query comes from the investigation on a plain QlikView document of size around 430 MB with only the data model, the size of shared object file created is more than 140 MB.
I used the PowerTools to check the contents and found the feature to export to XML. When the XML file got generated its' size was over 2GB! I tried to load this XML into QlikView, only to find the existence of data in the data loading wizard. So,to conclude the .shared file has data from all the objects or bookmarks created by all users. Right?
Now, important question required for us to understand is that why the .shared file created via QlikView 9 SR7 (Client & Server) does not work for all users in QlikView 11.2 SR7 or SR8 (Client & Server) when it was actually created by the same set of users. To explain "does not work" further, below are the steps to recreate the scenario(s):
1. Create a sample app, deploy in QlikView 9.
2. Create some objects by two different users on server mode.
3. Copy the .shared file and .qvw into deployment of QlikView 11.2 SR7/8
4. Access the application via QlikView Desktop in server mode or via Plugin of 11.2 in IE.
The observation and the understanding after so many trials is that only the first user(say, user1) who accesses the application deployed can see his objects. The subsequent user(say, user2) cannot see any of his objects.
However, user2 can see the list of his objects in the 'Server Objects Pane'.
What would have gone wrong for user2? Is it a compatibility issue? Or any restrictions? Or a known bug?
Has anyone else also encountered this? What resolution is best in order not to lose out on the objects created by users in version 9, and make accessible and workable in version 11.2?
I'm looking at the details of .SHARED files myself so I can share with you some of my understanding.
First thing to note is I really don't think you can take a .SHARED file form a QlikView version 9 installation and copy it to a version 11. It simply isn't going to work. I would recommend that if you for some reason have a need to copy SHARED files between two different QlikVliew installations that you make sure they are using IDENTICAL versions. you never know what changes Qlik may be making to the internal structure of the .SHARED file between versions.
.SHARED file do not contain application data. That's is data that is loaded into a QVW using LOAD statements. .SHARED files only contain information regarding the definition and layout of reporting objects.
I don't think Qlik document anywhere the structure of the .SHARED file. I'm guessing It's binary and it's compressed. Using the power tools QVSharedFileViewer you can export the contents of the .SHARED file to XML and as you have found that xml file can be surprisingly large. If you take a look at the contents of that XML you will get a view as to why it is so large.
If a user creates something as simple as a list box QlikView needs to store quite a lot of information in order to specify EVERY attribute of that list box. So you can imagine the definition of a complex chart can result in a very large block of XML. Look for a tag in your XML that starts something like
and follow through that entire GraphProperties tag and you will begin to understand why the XML file is so large.
It is my guess that the .SHARED file does not contain this actual XML. It has it's own efficient storage mechanism and the QVSharedFileViewer translates the .SHARED file structure to an XML representation for easier human reading.