<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Reload lineage over time for Data files / Sharepoint connections? ( Reload Monitor App ) in Connectivity &amp; Data Prep</title>
    <link>https://community.qlik.com/t5/Connectivity-Data-Prep/Reload-lineage-over-time-for-Data-files-Sharepoint-connections/m-p/2527979#M15102</link>
    <description>&lt;P&gt;Hi!&lt;/P&gt;&lt;P&gt;I agree with&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/49432"&gt;@Chanty4u&lt;/a&gt;&amp;nbsp;the recommended solution is to store lineage rows into your own QVD keyed by the execution, then reuse it.&lt;/P&gt;&lt;P&gt;somenthing like&lt;BR /&gt;// Historical lineage store&lt;BR /&gt;LET vLineageQvd = 'lib://YourDataLake/ReloadLineageHistory.qvd';&lt;/P&gt;&lt;P&gt;// Load existing history (if any)&lt;BR /&gt;LineageHistory:&lt;BR /&gt;LOAD&lt;BR /&gt;ReloadID,&lt;BR /&gt;_AuditReloadKey,&lt;BR /&gt;FileType,&lt;BR /&gt;FileName,&lt;BR /&gt;DataConnectionID,&lt;BR /&gt;Timestamp // whatever execution timestamp field you have (from Reloads)&lt;BR /&gt;FROM [$(vLineageQvd)] (qvd)&lt;BR /&gt;WHERE 1=1; // handles first-run if file exists&lt;/P&gt;&lt;P&gt;// New lineage from this reload's ingestion&lt;BR /&gt;// (Assumes you also have Reloads with ReloadID, Timestamp)&lt;BR /&gt;LEFT JOIN (AuditReloadLineage)&lt;BR /&gt;LOAD&lt;BR /&gt;_AuditReloadKey,&lt;BR /&gt;ReloadID,&lt;BR /&gt;Timestamp&lt;BR /&gt;RESIDENT Reloads;&lt;/P&gt;&lt;P&gt;// Append only new execution+file combos&lt;BR /&gt;CONCATENATE (LineageHistory)&lt;BR /&gt;LOAD DISTINCT&lt;BR /&gt;ReloadID,&lt;BR /&gt;_AuditReloadKey,&lt;BR /&gt;FileType,&lt;BR /&gt;FileName,&lt;BR /&gt;DataConnectionID,&lt;BR /&gt;Timestamp&lt;BR /&gt;RESIDENT AuditReloadLineage&lt;BR /&gt;WHERE NOT EXISTS(ReloadID) // coarse grain; refine key if one ReloadID can emit multiple rows&lt;BR /&gt;OR NOT EXISTS(_AuditReloadKey); // safer: use a composite key&lt;/P&gt;&lt;P&gt;// Save back&lt;BR /&gt;STORE LineageHistory INTO [$(vLineageQvd)] (qvd);&lt;/P&gt;&lt;P&gt;// Use LineageHistory in your UI instead of the volatile AuditReloadLineage&lt;BR /&gt;If a single reload execution can produce multiple lineage rows, build a composite key like Hash128(ReloadID, FileType, FileName, DataConnectionID) and use that in the NOT EXISTS() filter.&lt;/P&gt;</description>
    <pubDate>Thu, 21 Aug 2025 07:07:32 GMT</pubDate>
    <dc:creator>diegozecchini</dc:creator>
    <dc:date>2025-08-21T07:07:32Z</dc:date>
    <item>
      <title>Reload lineage over time for Data files / Sharepoint connections? ( Reload Monitor App )</title>
      <link>https://community.qlik.com/t5/Connectivity-Data-Prep/Reload-lineage-over-time-for-Data-files-Sharepoint-connections/m-p/2527244#M15100</link>
      <description>&lt;P&gt;Quick question hopefully&amp;nbsp; -&amp;nbsp; I'm using the reload monitor to pull just the apps / connections that are using sharepoint excel files, or uploaded excel files .&lt;/P&gt;&lt;P&gt;Within the reload monitor - I've added the following to the script to filter just Excel files.&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;TempReloadAuditData:
NoConcatenate
LOAD
_ReloadExecutionConcurrencyKey as 'ExcelConcurrencyKey',
    ReloadID as 'ExcelReloadID',
    _AuditReloadKey    // keep key for join to AuditReloadLineage
RESIDENT Reloads;


LEFT JOIN (TempReloadAuditData)
LOAD
    _AuditReloadKey,
    FileType as 'ExcelReloadFileType',
    FileName as 'ExcelReloadFileName',
    DataConnectionID
RESIDENT AuditReloadLineage
where
FileType ='xlsx' or FileType ='xlsm' &lt;/LI-CODE&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;However - this only appears to pull in the latest loaded Excel lineage files, and not the historical ones.&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Should I just start populating this into a QVD or is there a way to see this data historically also?&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;</description>
      <pubDate>Wed, 13 Aug 2025 15:46:22 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Connectivity-Data-Prep/Reload-lineage-over-time-for-Data-files-Sharepoint-connections/m-p/2527244#M15100</guid>
      <dc:creator>110</dc:creator>
      <dc:date>2025-08-13T15:46:22Z</dc:date>
    </item>
    <item>
      <title>Re: Reload lineage over time for Data files / Sharepoint connections? ( Reload Monitor App )</title>
      <link>https://community.qlik.com/t5/Connectivity-Data-Prep/Reload-lineage-over-time-for-Data-files-Sharepoint-connections/m-p/2527958#M15101</link>
      <description>&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;In your modified Reload Monitor script, store the relevant lineage data (FileType, FileName, DataConnectionID, ReloadID, AppID, ReloadStartTime) into a QVD on every reload.&lt;/P&gt;&lt;P&gt;Then in the next reload, append new rows (rather than overwriting).&lt;/P&gt;&lt;P&gt;This builds your own historical lineage repository.&lt;/P&gt;</description>
      <pubDate>Thu, 21 Aug 2025 04:05:15 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Connectivity-Data-Prep/Reload-lineage-over-time-for-Data-files-Sharepoint-connections/m-p/2527958#M15101</guid>
      <dc:creator>Chanty4u</dc:creator>
      <dc:date>2025-08-21T04:05:15Z</dc:date>
    </item>
    <item>
      <title>Re: Reload lineage over time for Data files / Sharepoint connections? ( Reload Monitor App )</title>
      <link>https://community.qlik.com/t5/Connectivity-Data-Prep/Reload-lineage-over-time-for-Data-files-Sharepoint-connections/m-p/2527979#M15102</link>
      <description>&lt;P&gt;Hi!&lt;/P&gt;&lt;P&gt;I agree with&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/49432"&gt;@Chanty4u&lt;/a&gt;&amp;nbsp;the recommended solution is to store lineage rows into your own QVD keyed by the execution, then reuse it.&lt;/P&gt;&lt;P&gt;somenthing like&lt;BR /&gt;// Historical lineage store&lt;BR /&gt;LET vLineageQvd = 'lib://YourDataLake/ReloadLineageHistory.qvd';&lt;/P&gt;&lt;P&gt;// Load existing history (if any)&lt;BR /&gt;LineageHistory:&lt;BR /&gt;LOAD&lt;BR /&gt;ReloadID,&lt;BR /&gt;_AuditReloadKey,&lt;BR /&gt;FileType,&lt;BR /&gt;FileName,&lt;BR /&gt;DataConnectionID,&lt;BR /&gt;Timestamp // whatever execution timestamp field you have (from Reloads)&lt;BR /&gt;FROM [$(vLineageQvd)] (qvd)&lt;BR /&gt;WHERE 1=1; // handles first-run if file exists&lt;/P&gt;&lt;P&gt;// New lineage from this reload's ingestion&lt;BR /&gt;// (Assumes you also have Reloads with ReloadID, Timestamp)&lt;BR /&gt;LEFT JOIN (AuditReloadLineage)&lt;BR /&gt;LOAD&lt;BR /&gt;_AuditReloadKey,&lt;BR /&gt;ReloadID,&lt;BR /&gt;Timestamp&lt;BR /&gt;RESIDENT Reloads;&lt;/P&gt;&lt;P&gt;// Append only new execution+file combos&lt;BR /&gt;CONCATENATE (LineageHistory)&lt;BR /&gt;LOAD DISTINCT&lt;BR /&gt;ReloadID,&lt;BR /&gt;_AuditReloadKey,&lt;BR /&gt;FileType,&lt;BR /&gt;FileName,&lt;BR /&gt;DataConnectionID,&lt;BR /&gt;Timestamp&lt;BR /&gt;RESIDENT AuditReloadLineage&lt;BR /&gt;WHERE NOT EXISTS(ReloadID) // coarse grain; refine key if one ReloadID can emit multiple rows&lt;BR /&gt;OR NOT EXISTS(_AuditReloadKey); // safer: use a composite key&lt;/P&gt;&lt;P&gt;// Save back&lt;BR /&gt;STORE LineageHistory INTO [$(vLineageQvd)] (qvd);&lt;/P&gt;&lt;P&gt;// Use LineageHistory in your UI instead of the volatile AuditReloadLineage&lt;BR /&gt;If a single reload execution can produce multiple lineage rows, build a composite key like Hash128(ReloadID, FileType, FileName, DataConnectionID) and use that in the NOT EXISTS() filter.&lt;/P&gt;</description>
      <pubDate>Thu, 21 Aug 2025 07:07:32 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Connectivity-Data-Prep/Reload-lineage-over-time-for-Data-files-Sharepoint-connections/m-p/2527979#M15102</guid>
      <dc:creator>diegozecchini</dc:creator>
      <dc:date>2025-08-21T07:07:32Z</dc:date>
    </item>
  </channel>
</rss>

