This document defines global variables for an incremental load process. It sets variables for the database name, QVD file directory, incremental date field, and other parameters. It then defines variables specific to loading the FACT_QV_SalesReturn_Transaction table from the database into a QVD file. The load process retrieves new and changed data since the last load and concatenates it with the existing QVD. It will either perform an initial load for a new quarter or an incremental load of new data since the last load date.
1. ---------------------- Declare variable in main page
---------------------------------------
/***************************Global Variables for Incremental
Load***********************************/
Set vNAV_Database = 'QLIKVIEW_NAV_DB.dbo.';
SET vQVDFileDir = 'Source QVDs NAV'; //
Path to QVD file(s)
SET vIncrementalDate = '[Posting Date]'; // Enter
DateTime Stamp field from DB
SET vDropTable = "'True'";
// 'True' or 'False' on whether to keep data in memory
LET vThisExecTime = today(); // Set
Data Time Stamp of Load
LET vPrevQtrStart = QuarterStart(today(),-1,4); // Set
QuarterStart of Previous Quarter wrt Reload Date
LET vCurrQtrStart = QuarterStart(today(),0,4); // Set QuarterStart
of Current Quarter wrt Reload Date
--------------------------------------------------------------------------------------
------------------------------------------------
SET vTableName_SRT = 'FACT_QV_SalesReturn_Transaction'; // Database table
name
SET vFinalQVDName_SRT = 'FACT_SalesReturn_Transaction'; // Final QVD Name
SET vInitQVDName_SRT = 'FACT_SalesReturn_Transaction_init'; // Initial
QVD Name
SET vIncrementalDate_SRT = '[SRNDET_DOCDATE]'; // Enter DateTime
Stamp field from DB
SET vSQL_Columns_SRT= // SQL Load Block
"
[SRNDET_RID],
[SRNDET_LOCID],
[SRNDET_FINYEAR],
[SRNDET_SGID],
[SRNDET_CUSTTYPE],
[SRNDET_CUSTCODE],
[SRNDET_DOCNO],
[SRN_DOCTYPE],
[SRNDET_DOCDATE],
[SRNDET_LSGID],
[SRNDET_PRDCD],
[SRNDET_BATCH],
[SRN_HQ],
[SRNDET_INVNO],
[GENDET_INCDATE],
[SRNDET_INVQTY],
[SRNDET_INVBON],
[SRNDET_UNIT],
[SRNDET_CLAIMQTY],
[SRNDET_CLAIMBONQTY],
[SRNDET_ACTRECQTY],
[SRNDET_ACTBONRECQTY],
[SRNDET_PRICE],
[SRNDET_STAT],
[SRNDET_AMT],
[SRNDET_TAXPER],
[SRNDET_TAXVALUE],
[SRNDET_OCTPER],
[SRNDET_OCTVALUE],
3. [SRNDET_PRICID],
[SRNDET_MRPE],
[SRNDET_BONTAXPER],
[SRNDET_BONTAXABLE],
[SRNDET_PROCESSID],
[SRNDET_RETTYPE],
[SRNDET_RETTYPE_DESC],
[GL_CODE],
[SRN_HQ_NEW],
[SRNDET_ZONE],
[SRNDET_STATE],
[SRN_GeoCount],
[SRN_RmGeoCount],
[SRN_INVQTY],
[SRN_INVVAL]
"
;
//Inital Load OR load on start of every new Quarter
IF ISNULL(QvdCreateTime('$(vQVDFileDir)$(vInitQVDName_SRT).qvd')) OR $(vThisExecTime)
= $(vCurrQtrStart)
OR $(vReloadTypeFlag) = 1 then
//Create QVD with data till previous quarter
[$(vFinalQVDName_SRT)]:
SQL SELECT
$(vSQL_Columns_SRT)
FROM $(vSIM_Database)$(vTableName_SRT)
WHERE $(vIncrementalDate_SRT) < '$(vPrevQtrStart)'
;
If ScriptErrorCount = 0 then
//Store Table into QVD
STORE [$(vFinalQVDName_SRT)] INTO [$(vQVDFileDir)$
(vInitQVDName_SRT).qvd];
If $(vDropTable) = 'True' then
DROP TABLE [$(vFinalQVDName_SRT)];
End If
End If
//Merge above QVD with data from SQL from previous quarter till date
[$(vFinalQVDName_SRT)]:
SQL SELECT
$(vSQL_Columns_SRT)
FROM $(vSIM_Database)$(vTableName_SRT)
WHERE $(vIncrementalDate_SRT) >= '$(vPrevQtrStart)'
AND $(vIncrementalDate_SRT) <= '$(vThisExecTime)'
;
Concatenate
LOAD
$(vQVD_Columns_SRT)
FROM [$(vQVDFileDir)$(vInitQVDName_SRT).qvd] (qvd)
;
If ScriptErrorCount = 0 then
//Store Table into QVD
STORE [$(vFinalQVDName_SRT)] INTO [$(vQVDFileDir)$
4. (vFinalQVDName_SRT).qvd];
//Set Last Execution Time
LET vLastExecTime = vThisExecTime;
//Drop Table?
If $(vDropTable) = 'True' then
DROP TABLE [$(vFinalQVDName_SRT)];
End If
End If
//Incremental Load
ELSE
[$(vFinalQVDName_SRT)]:
SQL SELECT
$(vSQL_Columns_SRT)
FROM $(vSIM_Database)$(vTableName_SRT)
WHERE $(vIncrementalDate_SRT) >= '$(vPrevQtrStart)'
AND $(vIncrementalDate_SRT) <= '$(vThisExecTime)'
;
Concatenate
LOAD
$(vQVD_Columns_SRT)
FROM [$(vQVDFileDir)$(vInitQVDName_SRT).qvd] (qvd)
;
If ScriptErrorCount = 0 then
//Store Table into QVD
STORE [$(vFinalQVDName_SRT)] INTO [$(vQVDFileDir)$
(vFinalQVDName_SRT).qvd];
//Set Last Execution Time
LET vLastExecTime = vThisExecTime;
//Drop Table?
If $(vDropTable) = 'True' then
DROP TABLE [$(vFinalQVDName_SRT)];
End If
End If
ENDIF