Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
My application is designed in a 3-tier manner: tier 1=data access saving qvds, tier 2=building QVWs from QVDs, tier 3=document.
Everything works well if I do a regular reload. My problem is when I do a Partial Reload. The only table I am partially reloading is Insights. After a partial reload Insights does not get refreshed and I see a new table Insights-1 in the diagram. The auto-created Insights-1 contains refreshed data while Insights does not.
Here's the script I am using to reload it (this script lives in tier 2, reading from the QVD generated in tier 1:
Insights:
replace LOAD Id, date(InsightDate, 'MM/DD/YYYY') as calendar_date, Priority, Issues, Perception, Recommendations, AddressedByClient, time_period_key
FROM
[Insights.qvd]
(qvd);
Everything OK when I perform a regular Reload:
After the reload I insert one more record into the Insights database table, so that I can verify my partial reload will work.
After performing a partial reload:
Why did this Insights-1 table get created? How do I resolve this?
Thank you so much for your help.
QV version 11.20.12235.0
Hi,
Remove QUALIFY *; from your script.
Rename fields using "As"
Ex.
Id As [Insight Id],
Best Regards.
Tonial.
Fernando,
I forgot to mentioned that QUALIFY *; is removed in the following manner:
if IsPartialReload()=0 then
QUALIFY *;
if I leave the QUALIFY *; then I still get the Insights-1, but it does not come linked to Calendar.
Thanks but your suggestions did not change my outcome.
Hi,
Qualify *; don't work with partial reload.
Try this;
Insights:
Replace
LOAD
Id AS Insights_Id,
date(InsightDate, 'MM/DD/YYYY') as Insights_calendar_date,
Priority AS Insights_Priority,
Issues AS Insights_Issues,
Perception AS Insights_Perception,
Recommendations AS Insights_Recommendations,
AddressedByClient AS Insights_AddressedByClient,
time_period_key
FROM
[Insights.qvd]
(qvd);
Best Regards.
Tonial.
Hi Fernando,
As I said before, qualify * is NOT used when a partial reload is called because of the if IsPartialReload()=0 statement.
I did what you suggested and I still have 2 tables after the partial reload:
It appears it has something to do with the fields being qualified in the original table, and appearing unqualified in the Insights-1 table which is auto-generated for some reason.
Thanks a lot for trying to help me!
Gus
Hi,
put your script here, i can help you more. But, you should do both loads without the qualify
See this.
Insights:
Replace
LOAD
Id AS Insights_Id,
date(InsightDate, 'MM/DD/YYYY') as Insights_calendar_date,
Priority AS Insights_Priority,
Issues AS Insights_Issues,
Perception AS Insights_Perception,
Recommendations AS Insights_Recommendations,
AddressedByClient AS Insights_AddressedByClient,
time_period_key
FROM
[Insights.qvd]
(qvd);
if IsPartialReload()=0 Then
Insights:
LOAD
Id AS Insights_Id,
date(InsightDate, 'MM/DD/YYYY') as Insights_calendar_date,
Priority AS Insights_Priority,
Issues AS Insights_Issues,
Perception AS Insights_Perception,
Recommendations AS Insights_Recommendations,
AddressedByClient AS Insights_AddressedByClient,
time_period_key
FROM
[Insights.qvd]
(qvd);
EndIf
Best Regards.
Tonial.