Extract Refresh task with a Daily schedule don't work as expected

Open
#1,508 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
56/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Quiet
Tech stack
python
Domain
api

Research direction

Start with samples/create_extract_task.py and samples/create_schedules.py, especially the DailyInterval example, then reproduce the task creation against Tableau API 3.24. Done means a Daily schedule without weekday arguments creates a task running once at 5:40 AM, while explicitly listing all weekdays does not produce an hourly schedule.

Written by the indexing model from the issue text.

Description

bug Server-Side Enhancement

Describe the bug

When creating an Extract Refresh task with a Daily schedule following the provided example, I either get an "Error 500" from the server or a task that's running every hour instead of once a day.

Versions
Details of your environment, including:

  • Tableau Server version: Tableau Cloud 2024.3.0 (20243.24.1011.1935) 64-bit Linux
  • Python version: 3.11.10
  • TSC library version: 0.33

To Reproduce
When following the example code above with a Daily interval as described in this sample

  tableau_auth   = TSC.PersonalAccessTokenAuth(TOKEN_NAME, api_token, SERVER_SITE)
  tableau_server = TSC.Server(SERVER_URL, use_server_version=False)
  tableau_server.version = '3.24'

  with tableau_server.auth.sign_in(tableau_auth):
    workbook = TSC.WorkbookItem(name=WORKBOOK_NAME, project_id=project)

    daily_interval = TSC.DailyInterval(start_time=datetime.time(hour=5, minute=40, tzinfo=datetime.UTC))
    daily_schedule = TSC.ScheduleItem(None, None, None, None, daily_interval)
    target_item    = TSC.Target(workbook.id, 'workbook')
    extract_item   = TSC.TaskItem(None, 'FullRefresh', None, None, None, daily_schedule, None, target_item)
    tableau_server.tasks.create(extract_item)

I'm getting he following error:

Internal error 500 at https://eu-west-1a.online.tableau.com/api/3.24/sites/288c88d2-8f35-4faa-b71c-bc082f0ded3c/tasks/extractRefreshes
b'<?xml version=\'1.0\' encoding=\'UTF-8\'?><tsResponse xmlns="http://tableau.com/api" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tableau.com/api https://help.tableau.com/samples/en-us/rest_api/ts-api_3_24.xsd"><error code="500000"><summary>Internal Server Error</summary><detail>The server encountered an error and cannot complete your request. Contact your server administrator.</detail></error></tsResponse>'

Now if instead I declare the list of weekdays in the Daily interval:

    daily_interval = TSC.DailyInterval(datetime.time(hour=5, minute=40, tzinfo=datetime.UTC),
                                       'Monday', 'Tuesday', 'Wednesday', 'Thursday',
                                       'Friday', 'Saturday', 'Sunday')

then a Refresh Task is created but it's scheduled to run every hour instead of once a day at 5:40AM as expected.

Screenshot 2024-10-23 at 15 21 54

Dominant language
Python
Stars
716
Forks
446
Avg merge
8d 8h
Merged PRs (30d)
2

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from tableau/server-client-python

All issues in tableau/server-client-python

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.