Coder Social home page Coder Social logo

tabmigrate's Introduction

TabMigrate

Community Supported

What is TabMigrate?

TabMigrate is a lightweight tool for moving Tableau content between multiple Tableau Server environments, such as test and production Tableau Servers or sites. It can also be used to provision sites with Workbooks and Data Sources from a local file system. TabMigrate also allows you to produce a CSV file containing an inventory of the site’s users and content; useful for analysis in Tableau.

Often there is a need to copy a set of content from one Tableau Server environment into another. Sometimes this need is across different Tableau Servers (or Tableau Online), other times there is a need to copy some content from one site in a server into another site. Today, this can be complex and require manual steps. For example, if a published workbook utilizes published Data Sources it is often impossible without significant manual steps to move the data sources and content form one Tableau Server to another.

By comparison, Tableau Server’s tabAdmin tool offers a full “site import and export” for copying and replacing an entire site. This is powerful but heavy-weight, replacing the entire site, its users, its schedules, etc. This tool offers a lightweight approach built on top of Tableau Server’s REST APIs.

  • It allows the contents (Workbooks, Data Sources, and Projects) to be downloaded from a Tableau Server site into your local file system.
  • It allows this file system content to be transformed and uploaded back into another Tableau Server or Tableau Server site, along-side existing content.
  • It generates command line arguments for the export and import operations, allowing you to quickly repeat or modify these steps.

Video Introduction

There's a short video introduction available on Tableau's YouTube channel. You can watch the full video or just jump to specific sections:

Versions of Tableau Server

TabMigrate was written and tested with version 10.2 of Tableau Server.

  • It should work in all Tableau Server versions >= 10.1.
  • Earlier versions of TabMigrate work with earlier Tableau servers (check the releases)
  • Moving forward, the application will be maintained and gain new features with each released version of Tableau Server, as the REST API set expands. If you need older versions, you can download the previous releases.

Getting started with TabMigrate (for non-developers)

You do not need to download and compile the source code to use TabMigrate. Those interested in simply running the application can download and unzip the setup from https://github.com/tableau/TabMigrate/releases (hint: the latest release is in v1.02_2015_11_13_TabRESTMigrate.zip -> download, unzip, and rock on). Running setup.exe will install the TabMigrate application on your Windows machine.

Application: The application can be run in either interactive (UI) or command line mode. When running in interactive mode the application will also show you the command line for performing all of the actions, making it easy to automate. The application UI offers three top level options:

  1. Generate an inventory of your site: This downloads information about your site into a *.csv file that can easily be loaded into Tableau Desktop or Excel.
  2. Export content from your site: You can either export your entire site (all the Workbooks and Data Sources), or choose an individual Project whose contents you want to export. Export will create file system directories for “workbooks” and “datasources” and download your sites content into subdirectories named after each Tableau Server site you export.
  3. Import content from your file system: You can bulk upload workbooks and datasources from your local file system into a Tableau Server site that you choose. This expects the same file system directory site export; file system directories are named for the Tableau Server projects that they will be published into. NOTE: You can also specify database IDs and Passwords to use when publishing your Workbooks and Data Sources. Workbooks with live database connections REQUIRE passwords to be included during publish. These are specified by listing the database credentials in an XML (text) file. Example:
<!-- Example file that shows how credentials can be declared. This file can be used as part of site import to supply needed workbook and datasource credentials-->
<xml>
     <credential 
          contentType="workbook" 
          contentProjectName="Test Site Import" 
	      contentName="test.twbx" 
		  dbUser="SimpleUser" 
	      dbPassword="q.123456" 
	      credentialIsEmbedded="false"> 
     </credential>
     <credential 
	      contentType="datasource" 
		  contentProjectName="Test Site Import" 
		  contentName="test2.tds" 
		  dbUser="SimpleUser3" 
		  dbPassword="q.12345678"> 
     </credential>
</xml>

Safety tips

The REST APIs used by this application allow you to upload, download, and otherwise modify your site’s content, workbooks, data sources, content tags, etc. So yes, it is certainly possible for you to overwrite existing content on server. A few tips:

  • “Generate site inventory” – This option does not perform write/upload/delete actions on your site, it should be “read only” in its behavior. It should have no negative side effects and is a great way to learn about and explore the capabilities of the application.
  • “Export site contents to local directory” – Be default, this option does not perform any write actions to your site and will be “read only” in its behavior. It downloads your Tableau Server site’s content to your local machines file system. NOTE: There are non-default options such as “[x] Remove tag from exported content” that will perform minor modifications your site’s content.
  • “Upload from file system into site” – This certainly will modify content on the site you specify. If there is existing content with the same name as content being uploaded it will overwrite it. Before running this command against a site with existing content, we recommend you run it using an empty site to verify the expected behavior.
  • To reduce the chance of accidently writing to the wrong site we recommend using a “site admin” (not system admin) account when possible. For best protection, the site admin account should only be a member of the single site you are uploading to.

Getting started with TabMigrate (for developers)

Source code: The project is written in C# and should load into Visual Studio 2013 or newer, including the free Visual Studio Express for Desktop.

What’s particularly useful in the source code?

The code demonstrates complex aspects of both the REST API and moving content between sites/servers. Someone working with the code will have a great base for calling any Tableau REST APIs from C#. Examples of things that are hard without detailed working code:

  • Using the REST api to sign in to your Tableau Server or site and including the session token in all subsequent REST API calls
  • Packaging MIME messages to the REST API can be complex and challenging to debug
  • Downloading and uploading both compressed .twbx/.tdsx and text .twb/.tds Workbooks and Data Sources requires interpretation of server response types
  • Uploading large files in chunks requires exact formatting of data sent to the server
  • Updating Workbook XML to point to data sources on a new server is detailed. The sample code shows how to: (i) unzip *.twbx files, (ii) update the Tableau Workbook’s XML so the data sources point to the new server/site, (iii) repackage the transformed workbook back into a compressed *.twbx that can be uploaded to Tableau Server.
  • Associating database credentials with the Workbooks and Datasources you are publishing
  • Querying for lists of Projects, Workbooks, Data Sources and users and interpreting the results

The source code also contains example files in a “_SampleFiles” subdirectory.

  • CredentialExample.xml : You can use this as a template for files you generate to associate database credentials with Workbooks and Data Sources you are publishing.

Is TabMigrate supported?

Community supported. Using it you can accidentally modify or delete your content, just as you can by accidentally do so in the user interface. Despite efforts to write good and useful code there may be bugs that cause unexpected and undesirable behavior. The software is strictly “use at your own risk.”

The good news: This is intended to be a self-service tool. You are free to modify it in any way to meet your needs.

tabmigrate's People

Contributors

benlower avatar ivosalmre-tableau avatar james-baker avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tabmigrate's Issues

Tableau Server 9.0.4 compatibility

Does anyone know if current or old releases of TabMigrate are compatible with Tableau Server 9.0.4?
I tried and got a authentication error.
But the credentials were triple checked.

How to deal with workbooks having many live data sources?

Some workbooks didn't upload, after checking I found that they count several data sources with different credentials. How can we deal with such situation? How to specify credential for different data sources under the same workbook?

Issue when downloading site contents

Hi. There seems to be a problem when you have a lot of content to download. I had a 254 MB download which took around 931 seconds to successfully download and then all downloads after this failed with a similar error to the one below.

This may be because my login is timing out, but for a site with a lot of content, this may prove difficult.

This may be due to my rest api session timing out (my organisation wants session timeout set at 10 minutes, no arguments) but I was thinking that what I may attempt is to add a Sign Out Class and sign out after every download, and sign back in before every download. Wasteful and tedious, I know, but worth a shot?

000,  19/05/2016 20:06:04, Download failed after .6 seconds. https://MYTABURL/api/2.2/sites/d00944ca-80c8-4cd9-a69f-8b46009c4e96/datasources/f70dc130-0914-11e5-805f-03397faea0ed/content
001,  19/05/2016 20:06:04, Error during Datasource download Discovery SPARRA Lowest Level
  https://MYTABURL/api/2.2/sites/d00944ca-80c8-4cd9-a69f-8b46009c4e96/datasources/f70dc130-0914-11e5-805f-03397faea0ed/content
  System.Net.WebException: The remote server returned an error: (401) Unauthorized.
   at TableauServerSignedInRequestBase.DownloadFile(String urlDownload, String downloadToDirectory, String baseFilename, DownloadPayloadTypeHelper downloadTypeMapper) in C:\Users\graham01\Documents\Visual Studio 2015\Projects\TabMigrate-master\TabRESTMigrate\RESTHelpers\TableauServerSignedInRequestBase.cs:line 52
   at DownloadDatasources.ExecuteRequest() in C:\Users\graham01\Documents\Visual Studio 2015\Projects\TabMigrate-master\TabRESTMigrate\RESTRequests\DownloadDatasources.cs:line 87

Just for a bit more info, I upped the wgserver.session.idle_limit to 60 minutes and the issue does go away, but because we need a 10 minute idle time out in our organisation, this doesn't really rectify the problem. I'm in the process of trying to implement a logout class and will report back if it works.

As a further update, it seems to be a result of downloading lots of data sources from a project, not just a single large data source. If you start downloading 50 data sources from a project, and from the first to the last takes longer than your idle timeout setting on the server, subsequent datasources will fail to download after the timeout ocurrs because your session has exired due to inactivity.

Chunking or Content-Length Required (Error 411)

We are trying to upload a number of workbooks to our Tableau 10.2.0 instance and are getting an error stating:

001, 16/01/2018 14:33:14, Unexpected error attempting to upload file .twb, The remote server returned an error: (411) Length Required.
002, 16/01/2018 14:33:14, Error uploading workbook <workbook name>.twb. The remote server returned an error: (411) Length Required.
003, 16/01/2018 14:33:14, get datasources list (Tableau Server/site details/fileUploads) : The remote server returned an error: (411) Length Required.

<TITLE>Length Required</TITLE>

HTTP Error 411. The request must be chunked or have a content length.

We have our own internally developed tools that publish files using the API without issue using chunking. Does anyone have an idea about what the cause may be because looking at the code it looks like TabMigrate should be using chunking regardless of file size?

Remap Workbook Data Source Issue

Hello,

I've got an error when I migrate workbook which include two tableau server datasources.
Once I export workbook and datasources from Server1, I can upload datasources to Server2 with Credential. But the workbook upload will got an error respond like below.
<?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 http://tableau.com/api/ts-api-2.3.xsd"><error code="400011"><summary>Bad Request</summary><detail>There was a problem publishing the file '24444:8986A08237594E16BE70F1EDFD2981C5-0:0'.</detail></error></tsResponse>
Also the manualStepsFile says "Possibly the workbook contains live database connections that need credentials so that thumbnail images can get generated".

I have another workbook create by the same database (tableau server repository), and this workbook can be migrate to Server2.

Does there an issue while remap data source ?

Attachment are two workbooks.
The workbooks use tableau server repository as the data source.
I published to Server1 and data source published separately.

remap_with_error.zip
remap_sucess.zip

Nested projects are flattened in export

We use tableau server 2019.2.2, we have 1 site with nested projects. We have a Production and a test primary level project, then within these projects we have sub projects such as sales, marketing, manufacturing etc.
This is the layout on the server:
Production > Sales
>Marketing
>Manufacturing
Test > Sales
>Marketing
>Manufacturing
When using Tab migrate to export to a folder we get the following output
Production
Sales
Marketing
Manufacturing
Test
With a mix of Production and test workbooks and data source in each folder. Ideally I would like Tab migrate o respect the project structure on export.

Unable to publish 10 Million and more lines of data using Tab migrate rest API

Hi All,

We are using Tab migrate Rest API to publish tableau workbooks automatically from our application. We are facing some issue while publishing data which is having 10 million or more lines of data.We are using SAP HANA live connection with Tableau Server version  10.2.1. Whenever we try to publish 10+ Million data , below errors response coming from Tableau Server.

The underlying connection was closed: An unexpected error occurred on a receive. at System.Net.HttpWebRequest.GetResponse()
at TableauServerSignedInRequestBase.GetWebReponseLogErrors(WebRequest webRequest, String description)

Can anyone please help me with the issue.

Prerequisite for TabMigrate

Hi Team,

I would like to know any pre-requisites steps are there like what will be the system requirement, OS version or any other thing for installing TabMigrate.
need to deploy tabmigrate in organisation.

thank you in advance for your support.

How to overwrite existing site contents while uploading?

While uploading a project from local file system into another tableau server site, we are geting error "Project name already exists" in the site. Please advise how to overwrite the existing content in the site while uploading contents.

Error logging into the Tabmigrate

Hi,

I was trying to login to Tabmigrate using the same credentials to login into the Tableau server and Tableau desktop ( which is successful) but login into the Tabmigrate is throwing the following error.

image

Any ideas?

Thanks much in advance.

Workbooks with non-published Views get migrated with all Views published

HI,
When migrating a Project I found that there were many extra Views which got migrated over. On analyzing, I found that we had many Workbooks where only the Dashboards were Published and not the Views, on the Source environment. However, when we migrated using the TabMigrate tool, all the Views were migrated as well. We had to manually open each Workbook with the Tableau Desktop and Publish again with just the Dashboards.
Please advise how we can migrate without this issue. Thanks

Tableau 10.1.3 - (400) Bad Request - There was a problem publishing the file - Error code 400011

Trying to Upload a workbook from file system to site using TabMigrate 1.08, but get a 400 bad request with error code 400011. And tableau server vizportal log reports an Invalid Username & Password.

It's unclear what the Invalid Username & Password is referring to. The workbook being uploaded contains 4 embedded extracts. Publishing of workbooks via Tableau Desktop works as expected.
Any assistance would be much appreciated.

TabMigrate displays the following error:

000,  2/1/2017 1:56:55 PM, finalize workbook publish (http://tableau/api/2.0/sites/XXX/workbooks?uploadSessionId=XXXX:XXXX-2:1&workbookType=twbx&overwrite=true) : The remote server returned an error: (400) Bad Request.
<?xml version='1.0' encoding='UTF-8'?><tsResponse xmlns="http://tableausoftware.com/api" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tableausoftware.com/api http://tableausoftware.com/api/ts-api-2.0.3.xsd"><error code="400011"><summary>Bad Request</summary><detail>There was a problem publishing the file 'XXXX:XXXX-2:1'.</detail></error></tsResponse>

001,  2/1/2017 1:56:55 PM, Unexpected error finalizing publish of file C:\Users\Administrator\AppData\Roaming\TabMigrate\tableau\siteExport2017-02-01-1111-23\_remapTempspace\unzipped\output\test.twbx, The remote server returned an error: (400) Bad Request.
002,  2/1/2017 1:56:55 PM, Error uploading workbook C:\Users\Administrator\AppData\Roaming\TabMigrate\tableau\siteExport2017-02-01-1111-23\workbooks\Default\test.twbx. The remote server returned an error: (400) Bad Request.

On the tableau server the vizportal log shows an Invalid Username or password error:

2017-02-01 13:56:20.144 +1100 (-,-,-,XXX) catalina-exec-1 : ERROR com.tableausoftware.api.rest.util.RestApiControllerAdvice - com.tableausoftware.api.rest.exceptions.UnauthorizedRestException: com.tableausoftware.domain.exceptions.LoginFailedException: Invalid username or password. (errorCode=16)
com.tableausoftware.api.rest.exceptions.UnauthorizedRestException: com.tableausoftware.domain.exceptions.LoginFailedException: Invalid username or password. (errorCode=16)
	at com.tableausoftware.api.rest.impl.RestApiAuthenticationAppService.signIn(RestApiAuthenticationAppService.java:114)
	at com.tableausoftware.api.rest.RestApiController.signIn_aroundBody154(RestApiController.java:1543)
	at com.tableausoftware.api.rest.RestApiController$AjcClosure155.run(RestApiController.java:1)
	at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:149)
	at com.tableausoftware.instrumentation.InstrumentedMethod.instrumentInvocation(InstrumentedMethod.java:67)
	at com.tableausoftware.instrumentation.InstrumentationAspect.aroundAnnotatedMethod(InstrumentationAspect.java:57)
	at com.tableausoftware.api.rest.RestApiController.signIn(RestApiController.java:1534)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:222)
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137)
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:814)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:737)
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at com.tableausoftware.core.controller.RelativeRedirectFilter.doFilter(RelativeRedirectFilter.java:60)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:121)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
	at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2517)
	at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2506)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:745)
Caused by: com.tableausoftware.domain.exceptions.LoginFailedException: Invalid username or password. (errorCode=16)
	at com.tableausoftware.domain.user.LocalIdentityProvider.getIdentity(LocalIdentityProvider.java:88)
	at com.tableausoftware.domain.user.SecurityManager.getIdentity(SecurityManager.java:92)
	at com.tableausoftware.domain.user.service.AuthenticationService.getSystemUserOrFail(AuthenticationService.java:389)
	at com.tableausoftware.domain.user.service.AuthenticationService.loginWithImpersonation(AuthenticationService.java:338)
	at com.tableausoftware.domain.user.service.AuthenticationService.loginWithImpersonation_aroundBody12(AuthenticationService.java:326)
	at com.tableausoftware.domain.user.service.AuthenticationService$AjcClosure13.run(AuthenticationService.java:1)
	at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:221)
	at com.tableausoftware.aspects.search.RequiresIndexUpdateAspect.setupTransactionTracking(RequiresIndexUpdateAspect.java:84)
	at com.tableausoftware.domain.user.service.AuthenticationService.loginWithImpersonation_aroundBody14(AuthenticationService.java:319)
	at com.tableausoftware.domain.user.service.AuthenticationService$AjcClosure15.run(AuthenticationService.java:1)
	at org.springframework.transaction.aspectj.AbstractTransactionAspect.ajc$around$org_springframework_transaction_aspectj_AbstractTransactionAspect$1$2a73e96cproceed(AbstractTransactionAspect.aj:66)
	at org.springframework.transaction.aspectj.AbstractTransactionAspect$AbstractTransactionAspect$1.proceedWithInvocation(AbstractTransactionAspect.aj:72)
	at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281)
	at org.springframework.transaction.aspectj.AbstractTransactionAspect.ajc$around$org_springframework_transaction_aspectj_AbstractTransactionAspect$1$2a73e96c(AbstractTransactionAspect.aj:70)
	at com.tableausoftware.domain.user.service.AuthenticationService.loginWithImpersonation(AuthenticationService.java:319)
	at com.tableausoftware.api.rest.impl.RestApiAuthenticationAppService.signIn(RestApiAuthenticationAppService.java:102)
	... 50 more

Inconsistent Behiviour of TabMigrate

Hello, I observed a weird behavior of the tool. While "uploading" it runs successfully sometimes and fails (gives errors) sometimes, with the same settings (source, target and such).

I ran few upload tests, and every time I created a new target site. The errors I get:
a) "The remote server returned an error: (400) Bad Request."
b) Aborted upload workbooks. Unexpected error + Object reference not set to an instance of an object.
c) Failed attempting to create project '<project_name>', Object reference not set to an instance of an object (however the project actually gets created, but no workbooks/data sources are published)

Can someone please explain?

Unexpected error finalizing publish of file workbook

Hello,

I am having issues with some workbooks not publishing. In some cases the workbooks on the sources site are pointed to published datasources, which are oracle data sources with extracts. Another case is an embedded data source with a live connection.

I've selected remap workbook dataserver references.
In comparing some workbooks that were loaded with similar connections, the main difference was that the datasource and workbook were in the same project. The one with error the data sources are in a different project than the workbook.

259, 6/2/2017 11:28:03 AM, Error: Unexpected error finalizing publish of file C:\Users\xxxxx\AppData\Roaming\TabMigrate\tableau-dev.medtronic.com\siteExport2017-06-02-1111-55_remapTempspace\Tableau Site Usage Views.twb, The remote server returned an error: (400) Bad Request.
260, 6/2/2017 11:28:03 AM, Error: Error uploading workbook C:\Users\xxxxx\AppData\Roaming\TabMigrate\tableau-dev.medtronic.com\siteExport2017-06-02-1111-55\workbooks\Tableau Site Usage\Tableau Site Usage Views.twb. The remote server returned an error: (400) Bad Request.

However, as mentioned a similar issue occurred with a workbook with an embedded data source with a live connection.

229, 6/2/2017 11:27:54 AM, Error: Unexpected error finalizing publish of file C:\Users\judith.lanzo\AppData\Roaming\TabMigrate\tableau-dev.medtronic.com\siteExport2017-06-02-1111-55_remapTempspace\VizAlertsConfig.twb, The remote server returned an error: (400) Bad Request.
230, 6/2/2017 11:27:54 AM, Error: Error uploading workbook C:\Users\judith.lanzo\AppData\Roaming\TabMigrate\tableau-dev.medtronic.com\siteExport2017-06-02-1111-55\workbooks\Default\VizAlertsConfig.twb. The remote server returned an error: (400) Bad Request.
231, 6/2/2017 11:27:54 AM, Attempt web request: https://tableau-dev.medtronic.com/api/2.3/sites/3225751f-f893-40eb-acf0-df1dd782c39b/projects
232, 6/2/2017 11:27:54 AM, Append header X-Tableau-Auth: z1WTQamMeJmv1eCHh2iUWxcnUJkiReeJ
233, 6/2/2017 11:27:54 AM, Project created. Project: Self Service/8b79ec46-109d-406b-963f-fad4b4f418d7
234, 6/2/2017 11:27:55 AM, Intiating file upload C:\Users\judith.lanzo\AppData\Roaming\TabMigrate\tableau-dev.medtronic.com\siteExport2017-06-02-1111-55_remapTempspace\SS Test.twb
235, 6/2/2017 11:27:55 AM, Attempt web request: https://tableau-dev.medtronic.com/api/2.3/sites/3225751f-f893-40eb-acf0-df1dd782c39b/fileUploads
236, 6/2/2017 11:27:55 AM, Append header X-Tableau-Auth: z1WTQamMeJmv1eCHh2iUWxcnUJkiReeJ
237, 6/2/2017 11:27:55 AM, Attempt web request: https://tableau-dev.medtronic.com/api/2.3/sites/3225751f-f893-40eb-acf0-df1dd782c39b/fileUploads/28416:06489A1BCB504CF2AB884BB0B18DCB19-1:0
238, 6/2/2017 11:27:55 AM, Append header X-Tableau-Auth: z1WTQamMeJmv1eCHh2iUWxcnUJkiReeJ
239, 6/2/2017 11:27:58 AM, Upload chunk status 28416:06489A1BCB504CF2AB884BB0B18DCB19-1:0 / 1 MB
240, 6/2/2017 11:27:58 AM, File chunks upload successful. Next step, make it a published workbook
241, 6/2/2017 11:27:58 AM, Attempt web request: https://tableau-dev.medtronic.com/api/2.3/sites/3225751f-f893-40eb-acf0-df1dd782c39b/workbooks?uploadSessionId=28416:06489A1BCB504CF2AB884BB0B18DCB19-1:0&workbookType=twb&overwrite=true
242, 6/2/2017 11:27:58 AM, Append header X-Tableau-Auth: z1WTQamMeJmv1eCHh2iUWxcnUJkiReeJ
243, 6/2/2017 11:27:58 AM, Error: finalize workbook publish (https://tableau-dev.medtronic.com/api/2.3/sites/3225751f-f893-40eb-acf0-df1dd782c39b/workbooks?uploadSessionId=28416:06489A1BCB504CF2AB884BB0B18DCB19-1:0&workbookType=twb&overwrite=true) : The remote server returned an error: (400) Bad Request.

Bad RequestThere was a problem publishing the file '28416:06489A1BCB504CF2AB884BB0B18DCB19-1:0'.

i also noticed the embedded usrname and password on the datasources did not carry over. Is there editing required to keep them embedded?

Error=There was a problem publishing the file '73849:1CE141F4AD5A45A39E0781056766C60D-0:0'

I am getting the error "There was a problem publishing the file '73849:1CE141F4AD5A45A39E0781056766C60D-0:0'" when i publish the dashboard which is having following condition alone.

  1. More than 1 HP Vertica connection or combination of HP Vertica connection is not working.
    2)Combination of Teradata connection is not working
    Please help me what action should be taken to resolve this issue.

example=

Bad Request

There was a problem publishing the file '19956:00A289B092C34D5C8BCD008CBC86080D-0:0'.

001, 7/18/2016 6:06:21 PM, Unexpected error finalizing publish of file C:\Users\xbblhrv\AppData\Roaming\TabMigrate\tluint-dev.bnymellon.net\gdp\siteExport2016-07-15-1323-54_remapTempspace\2. Intraday Liquidity.twb, The remote server returned an error: (400) Bad Request.
002, 7/18/2016 6:06:21 PM, Error uploading workbook C:\Users\xbblhrv\AppData\Roaming\TabMigrate\tluint-dev.bnymellon.net\gdp\siteExport2016-07-15-1323-54\workbooks\Test\2. Intraday Liquidity.twb. The remote server returned an error: (400) Bad Request.
003, 7/18/2016 6:06:26 PM, finalize workbook publish (https://tluint-dev.bnymellon.net/api/2.0/sites/ee3ccb93-608f-423c-9074-39011a3795a4/workbooks?uploadSessionId=2734:EE960E6A98024B5CA3E63157D5C51729-0:0&workbookType=twbx&overwrite=true) : The remote server returned an error: (400) Bad Request.

TabMigrate - Some queries/doubts

  1. Can this tool be used by a person who is a "Publisher" or an "Interactor" on Tableau server? What are the watch-outs in this case?
  2. If a workbook or a data source as a live connection to some database (for example SQL Server) and the connection type is "windows authentication", then during "upload" how are we going to construct the "credential" xml file? What should we specify for the db user and db password?
  3. If a workbook has multiple data sources (all live connections to different databases), then during "upload" how are we going to construct the "credential" xml file?
  4. I observed that the tool starts giving the "login failed" error after 3 or 4 runs (publish or export). If we close the tool and restart it works fine then. Is this a known issue?
  5. Is the tool compatible with nested projects functionality? If not, may I know by when it will be updated?
  6. What is the purpose of the "send keep alive requests" option on the "Export" screen?
  7. Is there any benchmark for performance when exporting and uploading large volume of data (hyper or tde files)?

.hyper datasource doesn't work

Hey all,

I'm trying to upload a .hyper from a .twbx file (unpacked) and tabMigrate is giving me the following problem - (Error: File is not a data source).

Doesn't tabMigrate support .hyper files? only .tds?

I'm using Tableau Server 2019.1 and tabMigrate is v1.13_2017_05_26.

If anyone could help I would be thankful.

Cheers!

Add support for TLSv1.1 / TLSv1.2

Trying to get TabMigrate to authenticate against a server and I keep getting this error. I can successfully login to the web interface, the REST API is enabled, and I can also authenticate successfully and get a token via the REST API using Postman on the same machine. But TabMigrate always errors with this message. Server Version is v10.3.3, using AD with Automatic Login enabled.

After doing a bit of research online I wonder if it's related to some security hardening we implemented to limit all but TLS v1.2 protocol and refuse several of the weaker algorithms (the full protocol spec is: ssl.ciphersuite: ECDHE:!RSA:!3DES:!DES:!IDEA:!aNULL:!MD5:!DSS:!RC4). I read somewhere that .NET framework only supports TLS v1.0, isn't that what TabMigrate is built on? Or am I barking up the wrong tree?

Error: Error sending sign in request: System.Net.WebException: The request was aborted: Could not create SSL/TLS secure channel. at System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) at System.Net.HttpWebRequest.GetRequestStream() at TableauServerRequestBase.SendHttpRequestContents_Inner(WebRequest request, String bodyText, String httpMethod) at TableauServerRequestBase.SendPostContents(WebRequest request, String bodyText) at TableauServerSignIn.ExecuteRequest()

AD domain login

TabMigrate seems to not be able to login into our Tableau Server while I can login directly without any issues. could it be that it is because we have multiple ADs and on login we must qualify AD domain as such:
domain\username

Also, how to know which TabMigrate version is compatible with Tableau Server 9.3?

Your security settings do not allow this application to be installed on your computer (fixed)

This is just for anyone else that sees this error message.
I was unable to install the package using setup.exe. After some searching, I found this link here from Microsoft: https://docs.microsoft.com/en-us/visualstudio/deployment/how-to-configure-the-clickonce-trust-prompt-behavior?view=vs-2015&redirectedfrom=MSDN
Once I made the changes tin my registry to "Enabling the ClickOnce Trust Prompt", the setup program worked. I still had a warning message, but now I had an option to install anyway.

Uploading Workbooks with Live Connections failing

I exported some workbooks and data sources which have Live connections to HANA databases. When I try to "upload" these workbooks & data sources to a target server, I get the below errors:

"....Possibly the workbook contains live database connections that need credentials so that thumbnail images can get generated....."

Does this mean, we cannot upload workbooks with Live connections to data sources?

User passwords which contain "&" cause a failure

Given the password foo&bar, Tabmigrate will return an incorrect passoword or URL error message and the vizportal log shows:

2016-06-01 07:28:05.444 +0800 (-,-,-,V04eBcCoyx0AABbAgdUAAAIj) catalina-exec-3 : ERROR com.tableausoftware.api.rest.util.RestApiControllerAdvice - org.springframework.http.converter.HttpMessageConversionException: Deserialization problem: The reference to entity "bar" must end with the ';' delimiter.; nested exception is org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 65; The reference to entity "bar" must end with the ';' delimiter.
org.springframework.http.converter.HttpMessageConversionException: Deserialization problem: The reference to entity "bar" must end with the ';' delimiter.; nested exception is org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 65; The reference to entity "bar" must end with the ';' delimiter.
at com.tableausoftware.api.rest.util.RestApiMessageConverter.readInternal(RestApiMessageConverter.java:100)
at org.springframework.http.converter.AbstractHttpMessageConverter.read(AbstractHttpMessageConverter.java:161)
at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:214)
at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:147)
at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:125)
at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:78)
at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:162)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:129)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:814)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:737)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at com.tableausoftware.core.controller.RelativeRedirectFilter.doFilter(RelativeRedirectFilter.java:60)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:121)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2522)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2511)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 65; The reference to entity "bar" must end with the ';' delimiter.
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:357)
at com.tableausoftware.api.rest.util.RestApiMessageConverter.readInternal(RestApiMessageConverter.java:96)
... 45 more

....change the password for the user to "foobar" in Server, try again, and all is well.

Embedded credentials are not migrating

Workbooks with embeded credentials seem to have their credentials stripped upon publishing to the new site meaning we have to go back in to each workbook and re-set credentials and refresh schedules.

I have tried creating the db credential xml file and pointing TabMigrate at that but it doesn't appear to work. The files I get from tableau are a mix of TWBX and twb files.

Do credentials need to be passed in the db credential xml file or should a workbook's embedded credentials migrate along with it?

OpenIDConnect-Auth: System.ComponentModel.Win32Exception: The client and server cannot communicate, because they do not possess a common algorithm

SignIn with OpenIDConnect throws exception.
(Normale Rest-API calls work).
We use https for connection.

Any solutions? Thanks!

000, 5/23/2019 3:25:01 PM, Error sending sign in request: System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a receive. ---> System.ComponentModel.Win32Exception: The client and server cannot communicate, because they do not possess a common algorithm
at System.Net.SSPIWrapper.AcquireCredentialsHandle(SSPIInterface SecModule, String package, CredentialUse intent, SecureCredential scc)
at System.Net.Security.SecureChannel.AcquireCredentialsHandle(CredentialUse credUsage, SecureCredential& secureCredential)
at System.Net.Security.SecureChannel.AcquireClientCredentials(Byte[]& thumbPrint)
at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output)
at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count)
at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
at System.Net.TlsStream.CallProcessAuthentication(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Net.TlsStream.ProcessAuthentication(LazyAsyncResult result)
at System.Net.TlsStream.Write(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.PooledStream.Write(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.ConnectStream.WriteHeaders(Boolean async)
--- End of inner exception stack trace ---
at System.Net.HttpWebRequest.GetRequestStream(TransportContext& context)
at System.Net.HttpWebRequest.GetRequestStream()
at TableauServerRequestBase.SendHttpRequestContents_Inner(WebRequest request, String bodyText, String httpMethod)
at TableauServerRequestBase.SendPostContents(WebRequest request, String bodyText)
at TableauServerSignIn.ExecuteRequest()

Live Data Source do not get exported with credentials

Hi,

I am using TabMigrate v1.13 with Tableau 10.2. When I export my Site, the Live Connections do not get exported with the User ID and Password. I have checked and my Data Sources have Authentication as 'Embedded in Connection'. I also found that the DS xml that gets created, does not have these details.
As a result, when I am Uploading from file system to site, these Data Sources are uploaded without the connection details and hence the Views/Workbooks using these DS do not get uploaded.
Please let us know what is the solution for this. Thanks

SSL/TLS session creation error when Tableau Server SSL protocols customized

When SSL protocols are customized to only allow TLS v1.2 in Tableau Server, TabMigrate fails to connect with:
System.Net.WebException: The request was aborted: Could not create SSL/TLS secure channel

Current tabsvc.yml for Tableau Server contains "ssl.protocols: all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1"

A fix is to set SecurityPointManager.SecurityProtocol to allow TLSv1.2.

Pull request is being sent that includes a fix.

Workbook with OAuth Connection

TabMigrate is not working for Workbook with OAuth Data connections
When we try to Migrate the workbook the tool errors out stating that the cause as "Possibly the datasource requires an OAuth credential to be uploaded"

Can you advice, how this credential can be uploaded using connection.xml? or specified else where in the property file

  • Tableau uses Oauth to connect to Salesforce.com, Google Analytics, or Google BigQuery data.

The remote server returned the error (409) Conflict.

Getting error while trying to upload the workbook to another server.
TabMigrate uploads datasource but not the actual workbook.
BTW why does TabMigrate use API version 2.3 when 2019.x is on API version 3.x ????

`02.2020 08:48:32, create project (https://mytableau/api/2.3/sites/1d3cbf2b-5541-4b79-972d-8c743579dd76/projects) : The remote server returned the error (409) Conflict.

Resource ConflictA project already exists with the name '_Test'

001, 14.02.2020 08:48:32, Error attempting to create project '_Test', The remote server returned the error (409) Conflict.
002, 14.02.2020 08:48:32, Failed attempting to create project '_Test', Object reference is not set to an object instance.
003, 14.02.2020 08:48:32, Aborted upload workbooks. Unexpected error + Object reference is not set to an object instance.
`

Errors logging into test and prod servers from TabMigrate

We have 2 Tableau Servers hosted in Azure. Both have TabMigrate (TM) installed but I can't log into either server from TM.

Errors are different:
TEST - Error returned from sign in response: System.Net.WebException: The remote server returned an error: (404) Not Found.
PROD - Error: Error returned from sign in response: System.Net.WebException: The remote server returned an error: (401) Unauthorized.

Both have recently been upgraded to 2020.2. I have previously tested TM with the test server and it seemed to work. Not sure what URL I used but I don't believe anything else has changed. Any ideas gratefully received!

item names containing / do not migrate properly

Hi,
Thanks for writing this, it made my life easier! One problem I had was that any data sources or workbooks with a '/' character in the name lose all characters up to and including the last / in the item name upon migration.

e.g.

My data source 2013/14 and 2014/15 extracted

becomes simply

15 extracted

after migration.

Hope you can fix it, good luck!

Lee

Unable to install Tabmigrate

I have uninstalled my old version of TabRESTMigrate through control panel and download v1.0.8 latest release
Unzip it and run setup.exe file and i continuously getting below message - , I did cleanup before installing new version.

ERROR SUMMARY
Below is a summary of the errors, details of these errors are listed later in the log.
* Activation of C:\Jambesh\v1.08_2016_08_26_TabRESTMigrate\TabRESTMigrate.application resulted in exception. Following failure messages were detected:
+ Unable to install this application because an application with the same identity is already installed. To install this application, either modify the manifest version for this application or uninstall the preexisting application.

COMPONENT STORE TRANSACTION FAILURE SUMMARY
No transaction error was detected.

WARNINGS
* The manifest for this application does not have a signature. Signature validation will be ignored.
* The manifest for this application does not have a signature. Signature validation will be ignored.

OPERATION PROGRESS STATUS
* [11/15/2016 11:36:28 AM] : Activation of C:\Jambesh\v1.08_2016_08_26_TabRESTMigrate\TabRESTMigrate.application has started.
* [11/15/2016 11:36:28 AM] : Processing of deployment manifest has successfully completed.
* [11/15/2016 11:36:28 AM] : Installation of the application has started.
* [11/15/2016 11:36:28 AM] : Processing of application manifest has successfully completed.
* [11/15/2016 11:36:30 AM] : Found compatible runtime version 4.0.30319.
* [11/15/2016 11:36:30 AM] : Request of trust and detection of platform is complete.
* [11/15/2016 11:36:31 AM] : Downloading of subscription dependencies is complete.
* [11/15/2016 11:36:31 AM] : Commit of the downloaded application has started.

ERROR DETAILS
Following errors were detected during this operation.
* [11/15/2016 11:36:31 AM] System.Deployment.Application.DeploymentException (Subscription)
- Unable to install this application because an application with the same identity is already installed. To install this application, either modify the manifest version for this application or uninstall the preexisting application.
- Source: System.Deployment
- Stack trace:
at System.Deployment.Application.SubscriptionStore.CheckApplicationPayload(CommitApplicationParams commitParams)
at System.Deployment.Application.SubscriptionStore.CommitApplication(SubscriptionState& subState, CommitApplicationParams commitParams)
at System.Deployment.Application.ApplicationActivator.InstallApplication(SubscriptionState& subState, ActivationDescription actDesc)
at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl)
at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)

COMPONENT STORE TRANSACTION DETAILS
No transaction information is available.

@@@
Is there any place to look to remove the old manifest files which may not have remove during uninstall process?

Other option, what change i have to make in Manifest file to make this installation successful?

Tableau 10 TabMigrate error when publishing file

In trying to use TabMigrate, when I go to upload the content to a site, I am getting this error:

015, 10/13/2016 9:41:14 AM, finalize workbook publish (http://vtest.mayo.edu/api/2.0/sites/ad226f89-f4d5-48ca-b406-efe3b45fda64/workbooks?uploadSessionId=8882:341EC4C9AE6D4323BAF6B8A766F0C48A-0:0&workbookType=twb&overwrite=true) : The remote server returned an error: (400) Bad Request.

Bad Request

There was a problem publishing the file '8882:341EC4C9AE6D4323BAF6B8A766F0C48A-0:0'.

In looking at the REST API documentation the 400011 error for publishing workbook is: The workbook could not be published for some other reason than those specified earlier.

Need some assistance in trying to determine if the TabMigrate code's API call is wrong or if I am doing something wrong when I use the app.

remote name not able to resolve

Hello,

when we are trying to do TabMigrate testing, we are getting following error.

Error: Error sending sign in request: System.Net.WebException: The remote name could not be resolved: 'myserver.com'
at System.Net.HttpWebRequest.GetRequestStream(TransportContext& context)
at System.Net.HttpWebRequest.GetRequestStream()
at TableauServerRequestBase.SendHttpRequestContents_Inner(WebRequest request, String bodyText, String httpMethod)
at TableauServerRequestBase.SendPostContents(WebRequest request, String bodyText)
at TableauServerSignIn.ExecuteRequest()

Does any body knows what can be done, we are trying to migrate sites from one server to another and we are connected via VPN.

Thanks in advance for your support.

Connection sample for Impala and Kerberos

We have password-less kerberos authentication, can you please assist with some sample credential/connection xml file to be used with this tool for tableau deployment.

Sample connection string in my tableau workbook (inside .twb file):

<connection authentication='yes' authentication-type='1' class='hadoophive' connection-type='Impala' dbname='' kerberos-host='env1-hostname.com' kerberos-realm='env1-hostname.com' kerberos-service='impala' odbc-connect-string-extras='' one-time-sql='' port='10101' schema='schema-1' server='env1-hostname.com' server-oauth='' sslcert='' sslmode='' transport-type='1' username='' workgroup-auth-mode='as-is'>

I have to update "env1-hostname.com" to "env2-hostname.com" at the time of deployment.

I could see update connection request in REST API here

  <connection
    serverAddress="server-address" serverPort="port"
    userName="connection-username" password="connection-password" 
    embedPassword="embed-password"  />
</tsRequest>

So how should the credential file look, in my case?

<xml>
<credential contentType="datasource" contentProjectName="Test Site Import" contentName="test2.tds" dbUser="SimpleUser3" dbPassword="q.12345678"> </credential>
</xml>

TabMigrate unable to refresh extract after publish for workbook with user filter

We have an blocking error:

com.tableausoftware.nativeapi.dll.TableauException: 
Cannot evaluate user filter; no current user or group. 
Cannot evaluate user filter; no current user or group. 
Cannot evaluate user filter; no current user or group. 
Cannot evaluate user filter; no current user or group. 
Errors occurred while trying to load the workbook "Tableau-Dashboard". The load was not able to complete successfully.  

On some search we found that the workbook we were trying to publish has a user filter and we are not able to set user thumbnail like we set when we publish via Tableau desktop. This has been addressed for tabcmd publish. [link]
This is kinda critical, would you know if there is any workaround for this.
I am using tableau version - 10.3

Tabjolt - Error loading jvm.dll

We have performed the below steps to install TabJolt at a client site. We are stuck and need help to take it forward. We have tried our best to solve the error but no luck.

  • The machine where TabJolt is installed is Windows 2016 with 4 Cores & 10 GB RAM. Java is also installed on the machine.

  • Installation of Tabjolt was successful. The inbuilt PostGreSQL database (bundled with the installation) was installed.

  • During the installation, we did not get the configuration dialog box where the tableau server details have to be entered.

  • We tried to open the “config.bat” file manually but we were not successful. Then we opened the command prompt and ran the “config.bat” command, but got the below error:
    image

  • As per the link bellow, the error is due to a missing file called MSVC100.dll that should be present under the c:\windows\system32 folder and can be solved by installing the MS VC++ redistributable packages

  • https://community.tableau.com/docs/DOC-22488
    image

  • Typically the MS VC ++ files are already bundled with the installation, but for some reasons it was not successful.

  • We downloaded the latest version of MS VC++ redistributable packages (both 32bit and 64bit) and installed it on the server. However the MSVC100.dll file was still not installed/copied under the windows folder.

  • Hence we manually downloaded the MSVC100.dll file and copied under the windows folder but still it did not solve the error at step 4 above. The machine was restarted but still getting the same error.

  • We ignored this error, and simply tried executing the “Go” command…but we got the same error at the step 4 above.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.