<?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: HAS_REPLICATION_FILTER on published table in Qlik Replicate</title>
    <link>https://community.qlik.com/t5/Qlik-Replicate/HAS-REPLICATION-FILTER-on-published-table/m-p/2530731#M15090</link>
    <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/229549"&gt;@Orlandis&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P data-start="71" data-end="109"&gt;Thanks for the detailed explanation.&lt;/P&gt;
&lt;BLOCKQUOTE data-start="111" data-end="220"&gt;
&lt;P data-start="113" data-end="220"&gt;&lt;STRONG data-start="113" data-end="218"&gt;In classic replication we manually created a transactional publication, added a filter to the table …&lt;/STRONG&gt;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P data-start="222" data-end="385"&gt;This is very similar to what Qlik Replicate does when preparing a table for CDC. The difference is that Qlik Replicate does not require a subscriber to be added.&lt;/P&gt;
&lt;BLOCKQUOTE data-start="387" data-end="547"&gt;
&lt;P data-start="389" data-end="547"&gt;&lt;STRONG data-start="389" data-end="545"&gt;It is necessary to manually create a publication on SQL Server, start the snapshot creation, and stop the snapshot creation while the agent is running …&lt;/STRONG&gt;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P data-start="549" data-end="806"&gt;Qlik Replicate does not require snapshot creation. The behavior you’re describing and the resulting error occur entirely within SQL Server itself, outside of Qlik Replicate’s scope. I would suggest consulting Microsoft for deeper insight on this behavior.&lt;/P&gt;
&lt;P&gt;If you’d like to see exactly what Qlik Replicate does when preparing a table for CDC, you can set &lt;STRONG&gt;SOURCE_CAPTURE&lt;/STRONG&gt; to &lt;STRONG&gt;Verbose&lt;/STRONG&gt;, re-run the task, and then review the task log files for the backend SQL statements executed.&lt;/P&gt;
&lt;P&gt;For example, here is a sample of an article creation statement recorded in the verbose task log. I hope this helps.&lt;/P&gt;
&lt;TABLE style="border-style: none; width: 100%; background-color: lightgrey;" border="1" width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="100%"&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;if not exists&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;(&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;select a.name from sysarticles a,sysobjects o&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;where a.[objid]=o.[id]&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;and schema_name(o.[uid]) =N'dbo'&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;and object_name(a.[objid])=N'testrepfilter'&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;and a.[type] in(1,3,5,7)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;and a.status &amp;amp; 1 = 1&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;begin&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;-- Adding the transactional articles&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;exec sp_addarticle&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@publication = N'AR_PUBLICATION_00005', --Publication Name&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@article = N'AR_ARTICLE_00005_267147997', --Article Name&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@source_owner = N'dbo', --Owner&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@source_object = N'testrepfilter', --Table&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@type = N'logbased',&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@description = N'',&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@creation_script = N'',&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@pre_creation_cmd = N'drop',&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;/*@schema_option = 0x00000000000000F3,*/&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@schema_option = 0x050D3,&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@identityrangemanagementoption = N'none',&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@destination_table = N'testrepfilter', --Table&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@destination_owner = N'dbo', --Owner&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@status = 16,&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@vertical_partition = N'false',&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@ins_cmd = N'CALL [sp_MSins_testrepfilter]', --Table&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@del_cmd = N'CALL [sp_MSdel_testrepfilter]', --Table&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@upd_cmd = N'MCALL [sp_MSupd_testrepfilter]'&lt;STRONG&gt;,--Table&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;@filter_clause = N'(1=0)'&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;-- Adding the article filter&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;exec sp_articlefilter&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@publication = N'AR_PUBLICATION_00005', --Publication Name&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@article = N'AR_ARTICLE_00005_267147997', --Article Name&lt;/FONT&gt;&lt;BR /&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;@filter_name = N'AR_FILTER_00005_267147997', --Filter name&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;@filter_clause = N'(1=0)',&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@force_invalidate_snapshot = 1,&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@force_reinit_subscription = 1&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;end&lt;/FONT&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P data-start="808" data-end="932"&gt;Once again, thank you for your outstanding support and the effort you’ve put into analyzing this at such a detailed level.&lt;/P&gt;
&lt;P data-start="934" data-end="949"&gt;My Best Regards,&lt;/P&gt;
&lt;P data-start="934" data-end="949"&gt;John.&lt;/P&gt;</description>
    <pubDate>Sun, 14 Sep 2025 01:57:14 GMT</pubDate>
    <dc:creator>john_wang</dc:creator>
    <dc:date>2025-09-14T01:57:14Z</dc:date>
    <item>
      <title>HAS_REPLICATION_FILTER on published table</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/HAS-REPLICATION-FILTER-on-published-table/m-p/2530347#M15068</link>
      <description>&lt;P&gt;Hello, community.&lt;BR /&gt;We encountered the following difficulties while migrating data from SQL Server to Attunity.&lt;BR /&gt;Our version is SQL Server 2022 Enterprise CU 17&lt;BR /&gt;The problem is this: when we try to perform a column change, it could be changing the type from varchar to nvarchar or increasing the length of the field, changing null to not null, we get the message -&amp;nbsp;&lt;BR /&gt;&lt;STRONG&gt;Msg 4928, Level 16, State 1, Line 6&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;Cannot alter column 'Name' because it is 'REPLICATED'&lt;/STRONG&gt;&lt;BR /&gt;In this case, the column being changed is not included in the primary key&lt;BR /&gt;&lt;BR /&gt;We noticed this feature, on almost all tables that are present in the publication on the SQL Server side, the has_replication_filter property is set to 1, but in fact, in the publication properties, no filters are set for any table.&lt;/P&gt;&lt;P&gt;It is because of this property that we cannot make valid changes and are forced to delete the table from the publication and add it again each time.&lt;/P&gt;&lt;P&gt;Perhaps someone has encountered this problem and understands the reason.&lt;/P&gt;</description>
      <pubDate>Wed, 10 Sep 2025 11:29:05 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/HAS-REPLICATION-FILTER-on-published-table/m-p/2530347#M15068</guid>
      <dc:creator>Orlandis</dc:creator>
      <dc:date>2025-09-10T11:29:05Z</dc:date>
    </item>
    <item>
      <title>Re: HAS_REPLICATION_FILTER on published table</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/HAS-REPLICATION-FILTER-on-published-table/m-p/2530462#M15076</link>
      <description>&lt;P&gt;Hi,&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The description of your problem seems to be related to MS-SQL replication rather then to Qlik Replicate. In any case is you wish, please open a case with the details of the problem and attach to it the task disagnostic package so our support team can review your settings and try to help you.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Regards,&lt;/P&gt;
&lt;P&gt;Orit&lt;/P&gt;</description>
      <pubDate>Thu, 11 Sep 2025 07:45:30 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/HAS-REPLICATION-FILTER-on-published-table/m-p/2530462#M15076</guid>
      <dc:creator>OritA</dc:creator>
      <dc:date>2025-09-11T07:45:30Z</dc:date>
    </item>
    <item>
      <title>Re: HAS_REPLICATION_FILTER on published table</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/HAS-REPLICATION-FILTER-on-published-table/m-p/2530514#M15080</link>
      <description>&lt;P&gt;Good day.&lt;BR /&gt;My question is related to Qlik replicate, the consumer that takes data from SQL Server is Attunity.&lt;BR /&gt;The status &lt;SPAN&gt;has_replication_filter&amp;nbsp;&lt;/SPAN&gt;on the table changes to 1 when a new table is added to the Attunity task.&lt;/P&gt;</description>
      <pubDate>Thu, 11 Sep 2025 12:34:35 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/HAS-REPLICATION-FILTER-on-published-table/m-p/2530514#M15080</guid>
      <dc:creator>Orlandis</dc:creator>
      <dc:date>2025-09-11T12:34:35Z</dc:date>
    </item>
    <item>
      <title>Re: HAS_REPLICATION_FILTER on published table</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/HAS-REPLICATION-FILTER-on-published-table/m-p/2530599#M15086</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/229549"&gt;@Orlandis&lt;/a&gt;&amp;nbsp;,&lt;BR /&gt;&lt;BR /&gt;Are you using MS-Replication or MS-CDC? What is your DDL statement?&lt;BR /&gt;&lt;BR /&gt;I ran the following statement on SQL Server 2022, but I was unable to reproduce your error.&lt;BR /&gt;&lt;BR /&gt;alter table [src_latin1].[dbo].[test02] ALTER COLUMN NAME NVARCHAR(30)&lt;BR /&gt;&lt;BR /&gt;CDC on my table was enabled by Qlik Replicate.&lt;BR /&gt;&lt;BR /&gt;Regards,&lt;BR /&gt;Desmond&lt;/P&gt;</description>
      <pubDate>Fri, 12 Sep 2025 05:16:20 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/HAS-REPLICATION-FILTER-on-published-table/m-p/2530599#M15086</guid>
      <dc:creator>DesmondWOO</dc:creator>
      <dc:date>2025-09-12T05:16:20Z</dc:date>
    </item>
    <item>
      <title>Re: HAS_REPLICATION_FILTER on published table</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/HAS-REPLICATION-FILTER-on-published-table/m-p/2530638#M15087</link>
      <description>&lt;P&gt;&lt;SPAN&gt;Hi.&lt;BR /&gt;We are using MS-Replication with Atunity.&lt;BR /&gt;If you execute the query &lt;STRONG&gt;select name, is_replicated, has_replication_filter from sys.tables, where name= 'test02'&lt;/STRONG&gt; and &lt;STRONG&gt;has_replication_filter&lt;/STRONG&gt; field value is &lt;STRONG&gt;0&lt;/STRONG&gt;, you will not get an error when executing the DDL operation. The problem is that as soon as the Atunity admin simply adds a table to his task, it is added to the publication and gets the status 1 for the has_replication_filter field.&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 12 Sep 2025 08:33:16 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/HAS-REPLICATION-FILTER-on-published-table/m-p/2530638#M15087</guid>
      <dc:creator>Orlandis</dc:creator>
      <dc:date>2025-09-12T08:33:16Z</dc:date>
    </item>
    <item>
      <title>Re: HAS_REPLICATION_FILTER on published table</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/HAS-REPLICATION-FILTER-on-published-table/m-p/2530720#M15088</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/229549"&gt;@Orlandis&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P data-start="152" data-end="324"&gt;In SQL Server, the column &lt;STRONG&gt;has_replication_filter&lt;/STRONG&gt; in &lt;STRONG&gt;sys.tables&lt;/STRONG&gt; is a flag indicating whether a table is participating in replication with a &lt;STRONG data-start="299" data-end="313"&gt;row filter&lt;/STRONG&gt; applied.&lt;/P&gt;
&lt;P data-start="326" data-end="663"&gt;When Qlik Replicate adds an article, it sets a default filter (&lt;STRONG&gt;@filter_clause = N'(1=0)'&lt;/STRONG&gt;). This filter technically excludes all rows from being replicated to subscribers, but for Qlik Replicate it serves no functional purpose. Its only role is to ensure that sufficient information is recorded in the TLOG for Qlik Replicate tasks.&lt;/P&gt;
&lt;P data-start="665" data-end="689"&gt;&lt;STRONG data-start="665" data-end="687"&gt;Observed behavior:&lt;/STRONG&gt;&lt;/P&gt;
&lt;OL data-start="690" data-end="1828"&gt;
&lt;LI data-start="690" data-end="1010"&gt;
&lt;P data-start="693" data-end="808"&gt;With &lt;STRONG&gt;has_replication_filter&amp;nbsp;= 1&lt;/STRONG&gt;, regular DDL commands such as the following can still be executed successfully:&lt;/P&gt;
&lt;DIV class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary"&gt;
&lt;DIV class="sticky top-9"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="overflow-y-auto p-4" dir="ltr"&gt;&lt;FONT face="courier new,courier"&gt;ALTER TABLE testrepfilter ALTER COLUMN name CHAR(30);&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;ALTER TABLE testrepfilter ALTER COLUMN name CHAR(40) NOT NULL;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;ALTER TABLE testrepfilter ALTER COLUMN name VARCHAR(40);&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV class="overflow-y-auto p-4" dir="ltr"&gt;&lt;CODE class="whitespace-pre! language-sql"&gt;&lt;/CODE&gt;&lt;CODE class="whitespace-pre! language-sql"&gt;&lt;/CODE&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/LI&gt;
&lt;LI data-start="1012" data-end="1241"&gt;
&lt;P data-start="1015" data-end="1071"&gt;Errors occur when using system stored procedures like:&lt;/P&gt;
&lt;P data-start="1015" data-end="1071"&gt;&lt;SPAN&gt;&lt;FONT face="courier new,courier"&gt;EXEC sp_rename 'dbo.testrepfilter.name', 'name2', 'COLUMN';&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P data-start="1157" data-end="1241"&gt;Notably, this error persists even if &lt;STRONG&gt;has_replication_filter&amp;nbsp;= 0&lt;/STRONG&gt;.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="1243" data-end="1828"&gt;
&lt;P data-start="1246" data-end="1601"&gt;&lt;STRONG data-start="1246" data-end="1258"&gt;Summary:&lt;/STRONG&gt;&lt;BR data-start="1258" data-end="1261" /&gt;SQL Server restricts certain schema changes (for example, renaming a column) to protect replication consistency. If the DDL operation is supported by Qlik Replicate, it will be replicated as-is (with some limitations). If the DDL is blocked by SQL Server, and you want to keep the filtered replication in place, the safest approach is:&lt;/P&gt;
&lt;OL data-start="1605" data-end="1730"&gt;
&lt;LI data-start="1605" data-end="1642"&gt;
&lt;P data-start="1608" data-end="1642"&gt;Drop the table from replication.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="1646" data-end="1675"&gt;
&lt;P data-start="1649" data-end="1675"&gt;Apply the schema change.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="1679" data-end="1730"&gt;
&lt;P data-start="1682" data-end="1730"&gt;Re-add the table back to replication articles list.&lt;/P&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;P data-start="1735" data-end="1828"&gt;Be aware that this may also require the table to be reloaded in the Qlik Replicate task.&lt;/P&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;Hope this helps.&lt;/P&gt;
&lt;P&gt;John.&lt;/P&gt;</description>
      <pubDate>Sat, 13 Sep 2025 15:46:39 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/HAS-REPLICATION-FILTER-on-published-table/m-p/2530720#M15088</guid>
      <dc:creator>john_wang</dc:creator>
      <dc:date>2025-09-13T15:46:39Z</dc:date>
    </item>
    <item>
      <title>Re: HAS_REPLICATION_FILTER on published table</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/HAS-REPLICATION-FILTER-on-published-table/m-p/2530721#M15089</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/115309"&gt;@john_wang&lt;/a&gt;&amp;nbsp;&lt;BR /&gt;Thank you for your comment.&lt;/P&gt;&lt;P&gt;As for sp_rename, this is a classic MS_replication behavior, I do not argue with this.&lt;BR /&gt;But the question remains open, you claim that the DDL operations specified in point 1 of your comment with the value has_replication_filter = 1 for the table should be performed without errors.&amp;nbsp;&lt;BR /&gt;We listened to your words and checked it out. In classic replication we manually created a transactional publication, added a filter to the table, added a subscriber to another MS SQL Server database, made a snapshot and performed a DDL operation on the publisher, this operation was successful and was displayed on the subscriber.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;What is the reason then?&lt;/P&gt;&lt;P&gt;We managed to simulate such behavior only in one case: it is necessary to manually create a publication on SQL Server, start the snapshot creation and stop the snapshot creation while the agent is running, i.e. not allow the agent to complete the snapshot. After this action, has_replication_filter = 1 on all tables and the execution of the DDL operation becomes impossible. Perhaps something similar somehow arose from Attunity and thus affected the publications and the tables in them?&lt;/P&gt;</description>
      <pubDate>Sat, 13 Sep 2025 18:21:22 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/HAS-REPLICATION-FILTER-on-published-table/m-p/2530721#M15089</guid>
      <dc:creator>Orlandis</dc:creator>
      <dc:date>2025-09-13T18:21:22Z</dc:date>
    </item>
    <item>
      <title>Re: HAS_REPLICATION_FILTER on published table</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/HAS-REPLICATION-FILTER-on-published-table/m-p/2530731#M15090</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/229549"&gt;@Orlandis&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P data-start="71" data-end="109"&gt;Thanks for the detailed explanation.&lt;/P&gt;
&lt;BLOCKQUOTE data-start="111" data-end="220"&gt;
&lt;P data-start="113" data-end="220"&gt;&lt;STRONG data-start="113" data-end="218"&gt;In classic replication we manually created a transactional publication, added a filter to the table …&lt;/STRONG&gt;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P data-start="222" data-end="385"&gt;This is very similar to what Qlik Replicate does when preparing a table for CDC. The difference is that Qlik Replicate does not require a subscriber to be added.&lt;/P&gt;
&lt;BLOCKQUOTE data-start="387" data-end="547"&gt;
&lt;P data-start="389" data-end="547"&gt;&lt;STRONG data-start="389" data-end="545"&gt;It is necessary to manually create a publication on SQL Server, start the snapshot creation, and stop the snapshot creation while the agent is running …&lt;/STRONG&gt;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P data-start="549" data-end="806"&gt;Qlik Replicate does not require snapshot creation. The behavior you’re describing and the resulting error occur entirely within SQL Server itself, outside of Qlik Replicate’s scope. I would suggest consulting Microsoft for deeper insight on this behavior.&lt;/P&gt;
&lt;P&gt;If you’d like to see exactly what Qlik Replicate does when preparing a table for CDC, you can set &lt;STRONG&gt;SOURCE_CAPTURE&lt;/STRONG&gt; to &lt;STRONG&gt;Verbose&lt;/STRONG&gt;, re-run the task, and then review the task log files for the backend SQL statements executed.&lt;/P&gt;
&lt;P&gt;For example, here is a sample of an article creation statement recorded in the verbose task log. I hope this helps.&lt;/P&gt;
&lt;TABLE style="border-style: none; width: 100%; background-color: lightgrey;" border="1" width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="100%"&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;if not exists&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;(&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;select a.name from sysarticles a,sysobjects o&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;where a.[objid]=o.[id]&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;and schema_name(o.[uid]) =N'dbo'&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;and object_name(a.[objid])=N'testrepfilter'&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;and a.[type] in(1,3,5,7)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;and a.status &amp;amp; 1 = 1&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;begin&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;-- Adding the transactional articles&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;exec sp_addarticle&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@publication = N'AR_PUBLICATION_00005', --Publication Name&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@article = N'AR_ARTICLE_00005_267147997', --Article Name&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@source_owner = N'dbo', --Owner&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@source_object = N'testrepfilter', --Table&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@type = N'logbased',&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@description = N'',&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@creation_script = N'',&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@pre_creation_cmd = N'drop',&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;/*@schema_option = 0x00000000000000F3,*/&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@schema_option = 0x050D3,&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@identityrangemanagementoption = N'none',&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@destination_table = N'testrepfilter', --Table&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@destination_owner = N'dbo', --Owner&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@status = 16,&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@vertical_partition = N'false',&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@ins_cmd = N'CALL [sp_MSins_testrepfilter]', --Table&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@del_cmd = N'CALL [sp_MSdel_testrepfilter]', --Table&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@upd_cmd = N'MCALL [sp_MSupd_testrepfilter]'&lt;STRONG&gt;,--Table&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;@filter_clause = N'(1=0)'&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;-- Adding the article filter&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;exec sp_articlefilter&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@publication = N'AR_PUBLICATION_00005', --Publication Name&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@article = N'AR_ARTICLE_00005_267147997', --Article Name&lt;/FONT&gt;&lt;BR /&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;@filter_name = N'AR_FILTER_00005_267147997', --Filter name&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;@filter_clause = N'(1=0)',&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@force_invalidate_snapshot = 1,&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;@force_reinit_subscription = 1&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;end&lt;/FONT&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P data-start="808" data-end="932"&gt;Once again, thank you for your outstanding support and the effort you’ve put into analyzing this at such a detailed level.&lt;/P&gt;
&lt;P data-start="934" data-end="949"&gt;My Best Regards,&lt;/P&gt;
&lt;P data-start="934" data-end="949"&gt;John.&lt;/P&gt;</description>
      <pubDate>Sun, 14 Sep 2025 01:57:14 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/HAS-REPLICATION-FILTER-on-published-table/m-p/2530731#M15090</guid>
      <dc:creator>john_wang</dc:creator>
      <dc:date>2025-09-14T01:57:14Z</dc:date>
    </item>
  </channel>
</rss>

