Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi all,
I saw a difference in data when I load certain tables before binary load and after binary load. Can anyone give examples as to when I should load tables before, and when I should load after binary load? I know an example where applymap() should be done after binary load. Are there any other scenarios?
Thank you so much!
A binary must be the very first statement within a script - therefore no previous loading is possible at least not within a single application. Beside this the order of loadings could have an impact but it will depend on what do you are doing ... If you mean something different please elaborate it more clearly.
- Marcus
Sorry if I was not clear. By loading tables before binary load, this is what I meant.
1. App1 with all loaded tables. (This is what I meant by loading data before a binary load)
2. App2 binary loads App1.
3. Load in certain tables in App2 again.
I realize that some tables change in data when I load them in App1 or App2. So how do I know if I am supposed to load a table in App1 or App2?
Hello there!
A data load should not change if loaded before or after the binary load.
One thing that came to my mind is that the data you are loading after the binary load in app2 may be concatenating somehow with the previous data loaded in app1.
Can you please use qualify in the data loaded in app2, after the binary load? let me know if the data load as you expect.
Qualify function (https://help.qlik.com/en- US/sense/November2018/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Qualify.htm)
If not, can you provide us an example of what you are seeing?
Thanks for your reply! I am not loading anything after the binary load. Just to make it clear:
1. App1 loads Table1,Table2
2. App2 binary loads App1.
After this step, I realise that some data values from Table1 are wrong, so I do the following:
1. App1 loads Table2 ONLY
2. App2 binary loads App1
3. Load Table1 in App2.
Only now, the values from Table1 are loaded in correctly. Any ideas on why this is occuring?
There is also another scenario where
1. App1 loads Table1 and Table2
2. App2 binary loads App1
3. Load Table1 in App2. (For some reason, data is wrong if I do not load in Table1 here)
I also realised that in App2, resident loading Table1 and loading Table1 from my file path gives different results. Apparently I have to load from my file path to get the correct results. I have no idea how this works.
If the data is turning up wrong in the app where you are doing a binary load, the data is already faulty in app1. Try loading app1 and then check the data vs what you would expect.
Doing a binary load doesn't change the data between apps.
Thanks for your reply. My App1 has the correct data. However, I am required to do a binary load to another app, eg. App2.
My concern here is that when I binary load, some data/fields would not get loaded. An example I found going wrong was with my applymap() in App1.
I read from somewhere that applymap() function does not get binary loaded, so I did the applymap() in App2 instead. Lets say I created an applymap() in Table1. However I realised that some other tables that are joined with Table1 would have the wrong data values.
So now, do I have to load the tables that are joined to the applymap() table(Table1) again in App2, or is there an alternative?
Mapping loads won't be taking into account when doing a binary load, I think.
One thing you could do, is a normal load of the table in app1, do the binary load of app1 in app2 and then use
Mapping Load * Resident TableMap;
and then apply the mapping in app2. That way the mapping should be right.
Yes, I have mapping loaded my table in App2, and the table is correct. Will other tables that are joined to this table be affected? Do I have to re-load the table joins after I mapping load my table in App2, or is it already done in App1?