Custom Web Application + Tableau + SQL Server (No Tableau Dashboard) - sql-server

I want to use Tableau integration with SQL Server for my business reporting (generate Excel and PDF files). However I do not want to use the Tableau dashboard as the user interface for collecting input data. I already built our web applications to do that.
So the requirements are:
Custom web applications (no Tableau Dashboard)
Tableau integration with SQL server
Output Excel/PDF
Is it possible to use a custom web application to replace the Tableau Dashboard for collecting user input?
Can anyone share any documentation?

If what you want is a custom web app with some visualizations implemented by Tableau Server, yet to have those visualizations embedded and controlled by your custom application, then Tableau has a lot of options for you.
See the sections on "Embedding" visualizations in the Tableau help pages. You may also want to use the Javascript API (start with the excellent 5 minute tutorial). That API allows you to control interaction between your application and the embedded visualization to make the integration more seamless, and customized to your needs.
To avoid forcing your users to authenticate with Tableau Server, read about Tableau's solution to Single Sign On and/or read about Trusted Authentication (which lets your application vouch for a user's identity if you have a core based license).
All these features are described in the Desktop, Server or Developer guides on Tableau's help pages. I recommend embedding using the object HTML tag instead of the iframe tag. Both work and both are documented, but the object tag gives you more control, works well with the JavaScript API and avoids some of the legacy HTML issues surrounding iframes.
If instead, as you stated, your only goal is to produce Excel or PDF output, Tableau can do that - one easy way is to append .pdf or .csv to URLs. Again read the documentation on embedding. But if that is the only goal, especially for CSV, Tableau is an expensive way to simply generate a CSV file. I'd give some thought to your requirements. There are reporting packages that are focused on hard copy tabular reports (sometimes called report factories) - that's not Tableau's primary focus.
One approach that can be helpful, use a modest investment in Tableau Desktop to quickly prototype your visualizations and reports. Verify you are producing the right outputs and that you have the right data to create them. Then you can decide whether Tableau is the best way to meet your requirements in a production environment. Even if you use a different approach in production, it can be very helpful for speeding that initial investigation.

Related

How to develop a simple database based project

I want to start an information provider service. It works this way:
Some employees will find the information needed and fill a database manually.
Users will request data they need on their client side apps on their own platforms. Some of the project specifications is as follows: 1) Data that will go between database server and clients is really small(Suppose some ordinary images). 2) The client side apps don't need to be kept updated. Once the user of app clicks update button(for example) the app will request the server to send required information. 3)It's important to run client side apps on several platforms like: windows, windows phone, android, ios,... 4) Database doesn't need to be vary fast or vary big.
Note: And It's important to note that I'm not expert and I have some limitations. I know java and html, css, javascript. But I think those are enough for this project. (Am I right?)
So I decided to design this development architecture:
1)Using hibernate and provide a layer for server which stands above hibernate and is used to do database-specific tasks. This layer provides some protocols for client side apps to communicate with server. It enables me to change database later without changing client side apps. 2)Using PhoneGap which is a framework that uses html, css, javascript and produces apps for many platforms.
I really appreciate any suggestion, comment,... Thanks!
The fastest way in Java world would be spring boot. Basically you can configure whole application: datasource, orm, persistance layer and rest services just by adding proper annotations. There are many examples of how to do it. Basically with current implementation of spring jpa and web services you can bind mapped resources to rest services. Also current JPA can generate SQL for you using DAO method name. SO e.g. findPersonByName will generate proper sql for you (of course you need to map your db model in entities but this is also simply done with annotations).
Yes, this is a sufficient tech stack to accomplish your goal. You will have to decide how much logic to implement server-side vs app-side.
Pick a java framework for providing an API so that you can expose a restful API to your apps.
Here are a couple of comparisons from stack overflow:
Which is the best Java REST API?
Easiest frameworks to implement Java REST web services
no! for database you need server side scripting language, like php or perl, java-script is client side and will only work on browser. i recommend first learning mysql database, just the basics how to create Db, table, insert and fetch. then some PHP. i think these will set the ground for your project. '
for development environment : download XAAMP! it comes complete with Sql-database base and PHP.

Export Tableau notebook to standalone interactive output?

I have just started using Tableau and I love creating visualizations with it. However, I am trying to export the visualizations into some standalone format, but I do not know how to. I see that I can export as image / pdf / excel crosstab, but all these kill the interactivity of the visualizations. I can export as a Tableau packaged workbook, but the client (my intended audience) will need Tableau to see it. Is there any way to export it as a standalone, offline, interactive data visualization accessible format ? I would assume the client will have Microsoft Office installed, but cannot assume / ask him to install Tableau to view my output.
Please suggest if there is any way possible.
Thanks a lot !
Siva.
I'm guessing you don't have Tableau Server (in which you could generate reports that could be visualized in a web browser).
So the solution is to have Tableau Reader: https://www.tableau.com/products/reader
It's free, and it will allow your client to open your twbx files. Only thing is, if you have a large database, the file size will be huge (as it will have all the database in it), so it's a good thing to filter the tables to the minimum necessary, so you don't have to share huge files.
Another option, if the data is not particularly private, is to publish the packaged workbook to Tableau Public. That's free as well. Just be aware that anyone can view workbooks on Tableau public, so it's great for blogs, newspaper interactives and public demos, not so good for private financial data. Even for business users, you can post examples with fake data to Tableau Public.
Also, if your customer doesn't want to purchase Tableau Server, but wants more than the free Tableau Reader, there is a third way. Use the cloud hosted Tableau OnLine service which makes financial sense for smaller organizations.

How does a webapp save files to its server?

I'm building a webapp where one can develop documents within the web browser (e.g., something like Zoho's document tool, or Google Docs). In my case, I have a set of arrays that store different paragraphs and other pieces of information, along with parallel arrays that store metadata on the paragraphs themselves.
The entire webapp is written in jQuery and associated libraries / plugins.
Is there an elegant way for me to save this as a file on the server itself? So far, I've been recommended using a hidden form to POST the arrays to the server and store them in a NoSQL database of some sort... This feels a bit painful to me and I'm wondering if (1) there is a more elegant approach, or (2) there is a library / framework that automates some of the sending / POSTing / saving.
Thank you!
You would need to create services that live on the server itself. These services would be methods such as (just as a simple example)
SaveDocument(User, Document)
GetDocument(User, Document)
you would need to configure your web app to call these services and pass in the required parameters. Now as for how to do this, you could write the services in any number of languages (Java using JavaEE, C# using WCF to name a few, but you can also do this in python/ruby/etc) and then generate WSDL interfaces to the services that any number of other languages could call.
There are lots of resources available on the web that cover this, so pick a language you want to learn, or are already proficient in and google around on how to develop web services in that language.
Good luck!

Integrate Access report

How can I integrate Reports done in Microsoft Access in my WPF application?
You'll have to define a little bit more what you mean by integration.
You are talking about a desktop application like word or PowerPoint or in this case Access. You can certainly automate or use Access as a com object and have access reports output their results as RFT or likey even better as a PDF document. So, it not clear when you speak of integration is really much centered around how you going to prompt the user for those report paramters and ask the user for filtering etc. So, choices you have range from a simple nightly batch job that runs and creates a bunch of PDF files on the users desktop and then are copied to a server, or perhaps even FTP up to the server.
Perhaps you talking about something a little bit tighter here?
So I'm not really sure if your questions any different than how would you integrate some PDF documents, or PowerPoint presentation, or in this case some Access reports. They are all the same concept and your question not really different then asking how to do this with power point.
However keep in mind that for Access 2010, there is WEB based reporting now. Those web reports actually use behind the scene are fully built around SQL server reporting services. In this case, the data will reside on SharePoint, but the WEB report side of Access are WPF presentation compatible reports since they are web based and run using sql server reporting services (they are RDL reports).
On the other hand if you're not really using Access in this case. You might as well just use the web based SQL server reporting service then. So do keep in mind that the web based reports Access uses for access 2010 is/are based on SQL server reporting services and it's actually creating RDL compatible reports.
However if you're not talking about the web based edition of access available in for 2010, then you're back to any old desktop program like excel are word or PDF documents or in this case Access. So, there's nothing different here about any old desktop program in windows and Access is one of those programs (sans the new weeb stuff for 2010).
So, the approach (or shall I say challenge) to getting that data into your presentation layer is not really a specific question to access alone, but is really much like a asking how can you have the output of your PowerPoint presentation brought into WPF.
You likely be best to have the report's render its output as PDF, or perhaps the XPS document writer is a sutiable output. So, your code take it from that point onwards for printing or display. So if you have the means to display a PDF or XPS doc, now then this would be a possible road to go down.

Update a local/client Microsoft Access Database from a server (MS SQL Server2005)

I've got a website that runs on a shared hosting environment, using ASP.net 2.0 (C#) and MS SQL Server 2005. I've recently been asked if I can integrate my website with a piece of third party desktop software that uses the Access runtime as its database (transparent to the end user).
Primarily I want to be able to offer users of my website the option of exporting their data into the Access database on their local machine. The data schema's match sufficiently, the question is how to actually do this, and in the simplest way possible for the user.
Simply having a webpage update the local Access database isn't possible due to the obvious security restrictions. I've considered asking them to upload the Access database to the server, so I can migrate the data then allow them to download it again, however the competency of the users of this software is such that even locating the Access database, let alone uploading and downloading it from the website might be too complicated.
I've also considered if Adobe Air or Silverlight could help here, but don't know them well enough to know for sure. Similarly I'm assuming another exe could be written to perform this task that the user could simply download and run, however my experience is in web development, not program development, so this isn't a 100% certainty for me, or an ideal development option for me.
So, can this be done, and if so what technique can achieve this, with the stated aims being ease of use for the end user, followed by ease of development by someone with web development as their main skill. Many thanks!
You may find this answer of interest: Best way to stream files in ASP.NET
It is about transferring a file from the server. You could save Excel or CSV and use that to update Access.
Instead of trying to do this in a web page you might just expose some views from your sql server to some client specific logins.
Then within the Access application, allow them to tie to your sql server. You might even provide an access application for getting the data from your site and stuffing it in their local access database.
In my work we have done something similar that is transparent to the user by creating an ActiveX control. The problem is that you are limiting the users to use only Internet Explorer.
I think that the best way to achieve what you are trying to do is by installing a service in the client's computer. If creating a service is beyond your experience you can post a project in a place like oDesk and find somebody that can help you with the development for the money that you are willing to pay to complete your project.
Good Luck.

Resources