Tableau Repointing (Oracle)
Tableau repointing is Oracle-only. Do not ask which source dialect. Do not check licenses — if the CLI is unlicensed it will fail on its own.
Supported files: .twb and .tds. .twbx is not supported.
Load modes
Direct (skill-match). The user asked for Tableau (e.g. "tableau", "migrate tableau", "repoint tableau"). You own init + convert. Empty source/ is allowed.
Path-only (from convert). The convert skill already confirmed Oracle and a yes. Collect TABLEAU_PATH and return. Do not run convert yourself.
Shared: collect the workbook folder
Do the following in order:
- Say to the user (verbatim): "Repointing rewrites each Tableau workbook connection to Snowflake and translates embedded Oracle SQL to Snowflake syntax. Only
.twband.tdsare supported —.twbxis not." - Ask the user (verbatim): "Please provide the folder path containing your Tableau
.twbor.tdsfiles." - Store the user's answer internally as
TABLEAU_PATH.
Direct mode
Do the following in order:
Call
configurewithproject_dir = "<current directory>"if this session has not already.If
project_existsis true andsource_languageis not Oracle (compare case-insensitively), stop. Tell the user (verbatim): "Tableau repointing currently supports Oracle workbooks only. This project is not Oracle. Start an Oracle project, or convert this project as-is without Tableau."If
project_existsis false, there is nosource_languageto check, so confirm the source before creating an Oracle project. Ask the user (verbatim): "Tableau repointing currently supports Oracle workbooks only. Are your workbooks connected to Oracle?"- On no (or any other source), stop. Tell the user (verbatim): "Tableau repointing currently supports Oracle only. Support for other sources is not available yet." Do not create a project.
- On yes, initialize Oracle in the current directory (name defaults to the folder name):
scai init -l Oracle --json
Then configure(project_dir="<current directory>", source_language="Oracle").
Collect
TABLEAU_PATH(Shared steps above).Run conversion.
--jsonis required. Emptysource/is fine — do not import SQL first unless the user asked to convert SQL as well.
scai code convert --tableauRepointing <TABLEAU_PATH> --json
If source/ already has SQL, the same command converts that SQL and repoints Tableau. Substitute the stored path. Do not emit the literal <TABLEAU_PATH> token.
- Show the JSON envelope as-is. Read
result.tableauRepointingfrom the envelope:- Success has
processedFilesandoutputPath. {"message":"None found"}means Tableau was not requested or no Tableau output was processed. Name the durable output location only fromresult.tableauRepointing.outputPath. Then stop unless the user asks to continue the rest of migration.
- Success has
Path-only mode
Collect TABLEAU_PATH (Shared steps). Return to convert. When it runs scai code convert, it appends --tableauRepointing <TABLEAU_PATH>.
Convert Output for Tableau
When --tableauRepointing is used, scai code convert writes:
- Repointed
.twb/.tds→artifacts/repointing_output/tableauResults/ - Per-query / connection summary →
reports/SnowConvert/ETLAndBiRepointing.*.csv
The JSON result envelope contains:
{
"result": {
"tableauRepointing": {
"processedFiles": 1,
"outputPath": "<absolute-project-path>/artifacts/repointing_output/tableauResults"
}
}
}
Do not report .scai/.snowconvert/tableauResults; it is temporary engine output and is deleted after promotion.
Option Reference
| Option | Description |
|---|---|
--tableauRepointing <PATH> |
Path to a folder of Tableau .twb / .tds files to repoint to Snowflake (rewrites connections and embedded Oracle SQL). .twbx is not supported. |
CHECKPOINT Addendum
After conversion, also confirm:
- Convert exited successfully and the envelope reports no conversion errors
-
result.tableauRepointing.processedFilesis greater than zero andoutputPathis present - Per-query summary appears in
reports/SnowConvert/ETLAndBiRepointing.*.csvwhen the engine emitted one