Tableau Migration SDK 5.2.0
  • 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 Users by SiteRole

In this example, all unlicensed users are excluded from migration.

  • Python
  • C#

Filter Class

from tableau_migration import (
    IUser,
    ContentMigrationItem,
    ContentFilterBase,
    SiteRoles)
    

class UnlicensedUserFilter(ContentFilterBase[IUser]):
    def should_migrate(self, item: ContentMigrationItem[IUser]) -> bool:
        if item.source_item.license_level.casefold() == SiteRoles.UNLICENSED.casefold():
            return False
        return True

Registration

plan_builder.filters.add(UnlicensedUserFilter)

See hook registration for more details.

Filter Class

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

    public override bool ShouldMigrate(ContentMigrationItem<IUser> item)
    {
        return !string.Equals(item.SourceItem.SiteRole, SiteRoles.Unlicensed, StringComparison.OrdinalIgnoreCase);
    }
}

Registration

Learn more.

_planBuilder.Filters.Add<UnlicensedUsersFilter, IUser>();

Dependency Injection

Learn more.

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