Tableau Migration SDK 5.1.1
  • Articles
  • Code Samples
  • Python API Reference
  • C# API Reference
Show / Hide Table of Contents
  • Filters
    • Filter projects by name
    • Filter users by SiteRole
    • Filter Custom Views by 'Shared' flag
  • Mappings
    • Username email
    • Rename projects
    • Change projects
  • Transformers
    • Add tags to content
    • Encrypt Extracts
    • Adjust 'Start At' to Scheduled Tasks
    • Change default users for Custom Views
    • Action URL XML Transformer
  • Post-Publish Hooks
    • Update permissions
  • Bulk Post-Publish Hooks
    • Bulk logging
  • Batch Migration Completed Hooks
    • Batch migration logging
  • Migration Action Completed Hooks
    • Migration action logging

Sample: Filter Projects by Name

In this example, the project named Default is filtered out.

  • Python
  • C#

Filter Class

from tableau_migration import (
    IProject,
    ContentMigrationItem,
    ContentFilterBase)
    

class DefaultProjectFilter(ContentFilterBase[IProject]):
    def should_migrate(self, item: ContentMigrationItem[IProject]) -> bool:
        if item.source_item.name.casefold() == 'Default'.casefold():
            return False
        return True

Registration

plan_builder.filters.add(DefaultProjectFilter)

See hook registration for more details.

Filter Class

public class DefaultProjectsFilter : ContentFilterBase<IProject>
{
    public DefaultProjectsFilter(
        ISharedResourcesLocalizer localizer,
        ILogger<IContentFilter<IProject>> logger) : base(localizer, logger) { }

    public override bool ShouldMigrate(ContentMigrationItem<IProject> item)
    {
        return !string.Equals(item.SourceItem.Name, "default", System.StringComparison.OrdinalIgnoreCase);
    }
}

Registration

Learn more.

_planBuilder.Filters.Add<DefaultProjectsFilter, IProject>();

Dependency Injection

Learn more.

services.AddScoped<DefaultProjectsFilter>();
  • Edit this page
In this article