Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi! Good day!
I have been trying to get Partial reload to work with a button. First, I have a simple table
Table1:
Replace
LOAD * Inline [
Line , Comment
123 , comment1
145 , comment2
]; - which works well during a full reload. Then I change "comment1" to "comment3" in the script and initiate partial reload with a button - this seems to work fine, too.
The problem happens when I add this same script as a part of a bigger data model. There are many tables in the model but none of the other tables have a "Line" or "Comment" column - Table1 is standalone table. Nowhere else do I have replace/add/merge statement either. A regular reload works fine but when I initiate partial load using a button (after changing "comment1" to "comment3"), nothing seems to change at all.
Can anyone please let me know why this is the case? Is there any other change I have to make in the script to make sure partial reload works?
Can you show the script where you are changing 'comment1' to 'comment3'?
The problem might be in there? Otherwise a REPLACE LOAD statement should work in either a full or partial reload, unless you use REPLACE ONLY LOAD or otherwise contain the statement within a If IsPartialReload() statement.
I have been faffing around with similar issues, right now I can't figure out why my INSERT INTO statement isn't working in partial reload.
Hi @daturpin , thank you so much for the response. I change "comment1" to "comment3" in the same script I have for Table1. I don't have a separate block of script specifically for the change.
Table1:
Replace
LOAD * Inline [
Line , Comment
123 , comment1
145 , comment2
];
I just change the existing block in the load editor and initiate partial refresh. I don't have the ONLY prefix or an if block in my script, either. I hope that answered your question.
I have been trying to get partial reload to work in addition to a writeback functionality, that didn't go as planned so I figured I'll try a simple script first.
I don't see anything wrong with the INLINE statement, using REPLACE LOAD it should work both in full and partial reload.
But I am still not understanding how it works when standing alone, but not when part of a "bigger data model". Where did you insert the script? Are there any If NOT IsPartialReload() statements? Is there a missing semicolon somewhere?
What has tricked me a few times is that I have used TRACE statements and missed a semicolon; this doesn't throw an error but makes the system think some working code is part of the TRACE statement.
Now, the problems with the partial reload and writeback functionality. I might be able to help with that, as I have gotten that working, except when connected to an external source and doing a SQL INSERT OVERWRITE, I haven't been able to get that to work even after fixing all errors.
Hi @daturpin let me give you a gist of how I'm expecting the reload to work as part of the writeback. Below is an overview:
Table1:
LOAD Line,Description from file1.qvd;
LEFT KEEP (Table1)
Table2:
LOAD Line,Config from file2.qvd;
LEFT KEEP (Table1)
TableToBeOverwritten:
REPLACE LOAD Line,Comment from overwrittenfile.qvd;
I have a Vizlib writeback table setup with update function that writes back to the overwrittenfile.qvd - it is prepopulated with Line values from the other two qvd's and blank comments. The vizlib writeback template script is also added in the beginning. The writeback seems to work fine but when I do a partial load, I get the below error:
I assumed it could be because of the LEFT KEEP so I moved TableToBeOverwritten code to the very top and removed the left keep. I keep getting the same error. A full reload doesn't seem to give any error. I am unsure what I'm missing.
That error is the bane of my existence. Because you get the same error for ANY reason. Unless you can read the Log File (I cannot, because I've running serverless QVD, which it looks like you are as well), then it won't tell you much.
In this case, however, I think the problem is that your tables are out of sync to start with. Try using REPLACE LOAD on Table1 and Table2 instead of LOAD. It will still work in a full reload but it will also re-sync the tables on partial reload.
Hi @daturpin . I will try replacing the LOAD with REPLACE LOAD, like you suggested. I'm worried it might make the reload slower since these tables take 2-3 minutes to load (there are at least 6 with the same LEFT KEEP to the main table), but if gets rid of this error I've been seeing for the past several days, so be it.
I'm exploring binary load as an alternative, for now. I have to see how that will pan out. Writeback has been quite a challenge for me. I really appreciate the help!