Azure Active Directory single sign-on (SSO) integration with Workday

n this tutorial, you’ll learn how to integrate Workday with Azure Active Directory (Azure AD). When you integrate Workday with Azure AD, you can:

  • Control in Azure AD who has access to Workday.
  • Enable your users to be automatically signed-in to Workday with their Azure AD accounts.
  • Manage your accounts in one central location – the Azure portal.

Prerequisites

To get started, you need the following items:

  • An Azure AD subscription. If you don’t have a subscription, you can get a free account.
  • Workday single sign-on (SSO) enabled subscription.

Scenario description

In this tutorial, you configure and test Azure AD SSO in a test environment.

  • Workday supports SP initiated SSO.
  • Once you configure Workday you can enforce Session Control, which protect exfiltration and infiltration of your organization’s sensitive data in real-time. Session Control extend from Conditional Access.

To configure the integration of Workday into Azure AD, you need to add Workday from the gallery to your list of managed SaaS apps.

  1. Sign in to the Azure portal using either a work or school account, or a personal Microsoft account.
  2. On the left navigation pane, select the Azure Active Directory service.
  3. Navigate to Enterprise Applications and then select All Applications.
  4. To add new application, select New application.
  5. In the Add from the gallery section, type Workday in the search box.
  6. Select Workday from results panel and then add the app. Wait a few seconds while the app is added to your tenant.

Configure and test Azure AD single sign-on for Workday

Configure and test Azure AD SSO with Workday using a test user called B.Simon. For SSO to work, you need to establish a link relationship between an Azure AD user and the related user in Workday. Get more info From Workday Software Training

To configure and test Azure AD SSO with Workday, complete the following building blocks:

  1. Configure Azure AD SSO to enable your users to use this feature.
    1. Create an Azure AD test user to test Azure AD single sign-on with B.Simon.
    2. Assign the Azure AD test user to enable B.Simon to use Azure AD single sign-on.
  2. Configure Workday to configure the SSO settings on application side.
    1. Create Workday test user to have a counterpart of B.Simon in Workday that is linked to the Azure AD representation of user.
  3. Test SSO to verify whether the configuration works.

Configure Azure AD SSO

Follow these steps to enable Azure AD SSO in the Azure portal.

  1. In the Azure portal, on the Workday application integration page, find the Manage section and select Single sign-on.
  2. On the Select a Single sign-on method page, select SAML.
  3. On the Set up Single Sign-On with SAML page, click the edit/pen icon for Basic SAML Configuration to edit the settings.Edit Basic SAML Configuration
  4. On the Basic SAML Configuration page, enter the values for the following fields:a. In the Sign-on URL text box, type a URL using the following pattern: https://impl.workday.com/<tenant>/login-saml2.flexb. In the Identifier text box, type a URL using the following pattern: http://www.workday.comc. In the Reply URL text box, type a URL using the following pattern: https://impl.workday.com/<tenant>/login-saml.htmld NoteThese values are not the real. Update these values with the actual Sign-on URL and Reply URL. Your reply URL must have a subdomain for example: www, wd2, wd3, wd3-impl, wd5, wd5-impl). Using something like http://www.myworkday.com works but http://myworkday.com does not. Contact Workday Client support team to get these values. You can also refer to the patterns shown in the Basic SAML Configuration section in the Azure portal. Get more skills from Workday Course
  5. Your Workday application expects the SAML assertions in a specific format, which requires you to add custom attribute mappings to your SAML token attributes configuration. The following screenshot shows the list of default attributes, where as nameidentifier is mapped with user.userprincipalname. Workday application expects nameidentifier to be mapped with user.mailUPN, etc., so you need to edit the attribute mapping by clicking on Edit icon and change the attribute mapping.image NoteHere we have mapped the Name ID with UPN (user.userprincipalname) as default. You need to map the Name ID with actual User ID in your Workday account (your email, UPN, etc.) for successful working of SSO.
  6. On the Set up Single Sign-On with SAML page, in the SAML Signing Certificate section, find Certificate (Base64) and select Download to download the certificate and save it on your computer.The Certificate download link
  7. To modify the Signing options as per your requirement, click Edit button to open SAML Signing Certificate dialog.imageimagea. Select Sign SAML response and assertion for Signing Option.b. Click Save
  8. On the Set up Workday section, copy the appropriate URL(s) based on your requirement.Copy configuration URLs

Create an Azure AD test user

In this section, you’ll create a test user in the Azure portal called B.Simon.

  1. From the left pane in the Azure portal, select Azure Active Directory, select Users, and then select All users.
  2. Select New user at the top of the screen.
  3. In the User properties, follow these steps:
    1. In the Name field, enter B.Simon.
    2. In the User name field, enter the username@companydomain.extension. For example, B.Simon@contoso.com.
    3. Select the Show password check box, and then write down the value that’s displayed in the Password box.
    4. Click Create. Learn more from Workday Studio training

Assign the Azure AD test user

In this section, you’ll enable B.Simon to use Azure single sign-on by granting access to Workday.

  1. In the Azure portal, select Enterprise Applications, and then select All applications.
  2. In the applications list, select Workday.
  3. In the app’s overview page, find the Manage section and select Users and groups.The "Users and groups" link
  4. Select Add user, then select Users and groups in the Add Assignment dialog.The Add User link
  5. In the Users and groups dialog, select B.Simon from the Users list, then click the Select button at the bottom of the screen.
  6. If you’re expecting any role value in the SAML assertion, in the Select Role dialog, select the appropriate role for the user from the list and then click the Select button at the bottom of the screen.
  7. In the Add Assignment dialog, click the Assign button.

Configure Workday

  1. In a different web browser window, sign in to your Workday company site as an administrator.
  2. In the Search box search with the name Edit Tenant Setup – Security on the top left side of the home page.Edit Tenant Security
  3. In the Redirection URLs section, perform the following steps:Redirection URLsa. Click Add Row.b. In the Login Redirect URLTimeout Redirect URL and Mobile Redirect URL textbox, paste the Login URL which you have copied from the Set up Workday section of Azure portal.c. In the Logout Redirect URL textbox, paste the Logout URL which you have copied from the Set up Workday section of Azure portal.d. In Used for Environments textbox, select the environment name. NoteThe value of the Environment attribute is tied to the value of the tenant URL:
    the Environment attribute must be set to Implementation.
    -If the domain name starts with something else, you need to contact Workday Client support team to get the matching Environment value.
  4. In the SAML Setup section, perform the following steps:SAML Setupa. Select Enable SAML Authentication.b. Click Add Row.

To get in-depth knowledge enroll for a live free demo on Workday Integration Training

EMBEDDING TABLEAU SERVER VIEWS IN A C# APPLICATION

It is possible, and not even that difficult, to embed Tableau Server views into a C# based Windows application. However, the putting all the pieces together to make it work smoothly is pretty difficult — the documentation on the Internet that describes the HOW is all over the place and unless you really know what Tableau is doing, it is not obvious what pieces of the .Net framework are actually useful

Tableau Integration, Performance Tuning & Data Visualization Services

Hopefully this post will put it all together enough for anyone interested to get started.

Preface: I’m not a C# programmer and my entire knowledge of this is centered around the WebBrowser part and how it interacts with Tableau Server Training

The Web Server

Why a separate web server? While you can always use the direct embed links to bring up a Tableau viz from Server, if you want it to integrate well:

  • JavaScript API needs a wrapper web page to initialize from
  • Trusted Authentication needs a web server to trust
  • The correct headers in the web page will force the embedded IE browser to render the right way

JavaScript api

The JavaScript API has to be started from a web page, no matter how basic it is. JS API is useful for all the control it gives such as sizing, toolbar options and so forth. Plus, it is also the only facility for interaction between the Tableau Viz and the application.

Authentication

If your authentication is entirely Active Directory with ‘Enable automatic logon’ (Set in the ‘Configure Tableau Server’ program) , you are in luck! You don’t even have to worry about the trusted authentication portion. Because the WebBrowser object in .Net is calling the local Internet Explorer on the computer, SSPI should work just fine.

For trusted auth, you don’t need anything incredibly complex from the dynamic web server. As long as it can receive the Ticket from the trusted auth request and substitute that in to the URL request, you’ll get smooth SSO in your application.

You can POST data to the dynamic page (seen below in the C# code), for example the username, and if your Tableau Server is set up with SSL, the whole process is completely secure. Get more skills from Tableau Training Certification

Forcing standards compliant rendering

By default, the WebBrowser object renders all its content using IE7 compatibility mode. If you want to see Tableau Server completely break, render everything in IE7 mode. Luckily, there is an easy way to force the use of the most modern rendering the system supports (IE10 or 11 hopefully).

The first lines of HTML in all the pages served up by your web server should be

<!doctype html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>

The doctype declaration and the meta tag together force IE to use it’s latest and greatest rendering engine, which is pretty good these days.

Updated: But this is not enough! For some reason, the WebBrowser part renders in IE10 Compatibility Mode, which while not being as terrible as IE7, still does things so incorrectly that it breaks the editing toolbar when using Web Edit. You will only see the Undo button and nothing else if you are in Compatibility mode.

To ensure that the browser always does the right thing, you’ll have to add some code to your application that changes a few registry entries while the program is running.

Stack Overflow provides an answer, which I’ve modified here with only the necessary pieces (and also throwing out IE7 altogether since Tableau Server 9 can’t use it). I put the two classes in the main Form1 public class in the example file, then use the SetWebBrowserFeatures() method on initialization of the form Learn tableau Online

public partial class Form1 : Form
    {
 
        public Form1()
        {
            InitializeComponent();
            SetWebBrowserFeatures();
             
        }
 
..........
 
        /*
         * This section handles forcing the WebBrowser into modern standards compliant mode
         * Without it, you'll get dropped into IE10 compatibility mode and not all the buttons in web edit show up
         * */
 
        // set WebBrowser features, more info: http://stackoverflow.com/a/18333982/1768303
        static void SetWebBrowserFeatures()
        {
            // don't change the registry if running in-proc inside Visual Studio
            if (LicenseManager.UsageMode != LicenseUsageMode.Runtime)
                return;
 
            var appName = System.IO.Path.GetFileName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName);
 
            var featureControlRegKey = @"HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\";
 
            Registry.SetValue(featureControlRegKey + "FEATURE_BROWSER_EMULATION",
                appName, GetBrowserEmulationMode(), RegistryValueKind.DWord);
 
            // enable the features which are "On" for the full Internet Explorer browser
 
            Registry.SetValue(featureControlRegKey + "FEATURE_ENABLE_CLIPCHILDREN_OPTIMIZATION",
                appName, 1, RegistryValueKind.DWord);
 
            Registry.SetValue(featureControlRegKey + "FEATURE_AJAX_CONNECTIONEVENTS",
                appName, 1, RegistryValueKind.DWord);
 
            Registry.SetValue(featureControlRegKey + "FEATURE_GPU_RENDERING",
                appName, 1, RegistryValueKind.DWord);
 
            Registry.SetValue(featureControlRegKey + "FEATURE_WEBOC_DOCUMENT_ZOOM",
                appName, 1, RegistryValueKind.DWord);
 
            Registry.SetValue(featureControlRegKey + "FEATURE_NINPUT_LEGACYMODE",
                appName, 0, RegistryValueKind.DWord);
        }
 
        static UInt32 GetBrowserEmulationMode()
        {
            int browserVersion = 0;
            using (var ieKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Internet Explorer",
                RegistryKeyPermissionCheck.ReadSubTree,
                System.Security.AccessControl.RegistryRights.QueryValues))
            {
                var version = ieKey.GetValue("svcVersion");
                if (null == version)
                {
                    version = ieKey.GetValue("Version");
                    if (null == version)
                        throw new ApplicationException("Microsoft Internet Explorer is required!");
                }
                int.TryParse(version.ToString().Split('.')[0], out browserVersion);
            }
 
            if (browserVersion < 8)
            {
                throw new ApplicationException("Unsupported version of Microsoft Internet Explorer!");
            }
 
            UInt32 mode = 11000; // Internet Explorer 11. Webpages containing standards-based !DOCTYPE directives are displayed in IE11 Standards mode. 
 
            switch (browserVersion)
            {
                case 7:
                    mode = 7000; // Webpages containing standards-based !DOCTYPE directives are displayed in IE7 Standards mode.
                    break;
                case 8:
                    mode = 8000; // Webpages containing standards-based !DOCTYPE directives are displayed in IE8 mode.
                    break;
                case 9:
                    mode = 9000; // Internet Explorer 9. Webpages containing standards-based !DOCTYPE directives are displayed in IE9 mode.                    
                    break;
                case 10:
                    mode = 10000; // Internet Explorer 10.
                    break;
            }
 
            return mode;
        }

The Tableau Server

Configure it to trust the web server, per all the trusted auth setup. That’s all you need to do.

THE APPLICATION

Initializing the Web Browser to the page

The crux of everything is the .Net WebBrowser control. Bring one into your page layout ( in this example it is webBrowser1 ). As mentioned earlier, if your Tableau Server doesn’t have AD with automatic logon turned on, you’ll want to use HTTP POST to pass the username over to the dynamic page.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Security.Permissions;
 
namespace Embedded_Tableau_Example
{
    [PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
    public partial class Form1 : Form
    {
        int tab_count = 1;
        String username = ""; // Here you can get your username however you'd like
        public Form1()
        {
            InitializeComponent();
             
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
 
            string postData = String.Format("username={0}", username);
            byte[] Post = Encoding.UTF8.GetBytes(postData);
            string AdditionalHeaders = "Content-Type: application/x-www-form-urlencoded";
 
            var page_location = "http://{TableauServerLocation}/c_sharp_embed.php"; // HTTPS for security in final environment
            //webBrowser1.Navigate(page_location); // If using AD with automatic logon
            webBrowser1.Navigate(page_location, "_self", Post, AdditionalHeaders);
            webBrowser1.ObjectForScripting = this;
 
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            webBrowser1.Document.InvokeScript("pdfExport");
        }
 
        private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
 
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
             
            object[] args = { tab_count };
 
            webBrowser1.Document.InvokeScript("switchTab", args);
            tab_count++; 
 
        }
 
        public void Test(String message)
        {
            MessageBox.Show(message, "client code");
        }
 
        private void button3_Click(object sender, EventArgs e)
        {
            webBrowser1.Document.InvokeScript("returnJSONString");
        }
 
        public void retrieveJSON(String json)
        {
            MessageBox.Show(json, "Stringy JSON");
        }
 
    }
}

To get in-depth knowledge, enroll for a live free demo on Tableau Course

EMBEDDING TABLEAU SERVER VIEWS IN A C# APPLICATION

It is possible, and not even that difficult, to embed Tableau Server views into a C# based Windows application. However, the putting all the pieces together to make it work smoothly is pretty difficult — the documentation on the Internet that describes the HOW is all over the place and unless you really know what Tableau is doing, it is not obvious what pieces of the .Net framework are actually useful.

Hopefully this post will put it all together enough for anyone interested to get started.

You will need:

  • Tableau Server
  • A separate web server, with some facility for dynamic web pages. Apache + PHP, or IIS + ASP.Net for example.
  • Visual Studio

The Web Server

Why a separate web server? While you can always use the direct embed links to bring up a Tableau viz from Server, if you want it to integrate well:

  • JavaScript API needs a wrapper web page to initialize from
  • Trusted Authentication needs a web server to trust
  • The correct headers in the web page will force the embedded IE browser to render the right way Get more skills from Tableau Online Course

JavaScript api

The JavaScript API has to be started from a web page, no matter how basic it is. JS API is useful for all the control it gives such as sizing, toolbar options and so forth. Plus, it is also the only facility for interaction between the Tableau Viz and the application.

Authentication

If your authentication is entirely Active Directory with ‘Enable automatic logon’ (Set in the ‘Configure Tableau Server’ program) , you are in luck! You don’t even have to worry about the trusted authentication portion.

Because the WebBrowser object in .Net is calling the local Internet Explorer on the computer, SSPI should work just fine.

For trusted auth, you don’t need anything incredibly complex from the dynamic web server. As long as it can receive the Ticket from the trusted auth request and substitute that in to the URL request, you’ll get smooth SSO in your application.

You can POST data to the dynamic page (seen below in the C# code), for example the username, and if your Tableau Server is set up with SSL, the whole process is completely secure.

Forcing standards compliant rendering

By default, the WebBrowser object renders all its content using IE7 compatibility mode. If you want to see Tableau Server completely break, render everything in IE7 mode. Luckily, there is an easy way to force the use of the most modern rendering the system supports (IE10 or 11 hopefully). Learn from Tableau Server Training

The first lines of HTML in all the pages served up by your web server should be

<!doctype html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>

The doctype declaration and the meta tag together force IE to use it’s latest and greatest rendering engine, which is pretty good these days.

Updated: But this is not enough! For some reason, the WebBrowser part renders in IE10 Compatibility Mode, which while not being as terrible as IE7, still does things so incorrectly that it breaks the editing toolbar when using Web Edit.

You will only see the Undo button and nothing else if you are in Compatibility mode. To ensure that the browser always does the right thing, you’ll have to add some code to your application that changes a few registry entries while the program is running.

Stack Overflow provides an answer, which I’ve modified here with only the necessary pieces (and also throwing out IE7 altogether since Tableau Server 9 can’t use it). I put the two classes in the main Form1 public class in the example file, then use the SetWebBrowserFeatures() method on initialization of the form.

public partial class Form1 : Form
    {
 
        public Form1()
        {
            InitializeComponent();
            SetWebBrowserFeatures();
             
        }
 
..........
 
        /*
         * This section handles forcing the WebBrowser into modern standards compliant mode
         * Without it, you'll get dropped into IE10 compatibility mode and not all the buttons in web edit show up
         * */
 
        // set WebBrowser features, more info: http://stackoverflow.com/a/18333982/1768303
        static void SetWebBrowserFeatures()
        {
            // don't change the registry if running in-proc inside Visual Studio
            if (LicenseManager.UsageMode != LicenseUsageMode.Runtime)
                return;
 
            var appName = System.IO.Path.GetFileName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName);
 
            var featureControlRegKey = @"HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\";
 
            Registry.SetValue(featureControlRegKey + "FEATURE_BROWSER_EMULATION",
                appName, GetBrowserEmulationMode(), RegistryValueKind.DWord);
 
            // enable the features which are "On" for the full Internet Explorer browser
 
            Registry.SetValue(featureControlRegKey + "FEATURE_ENABLE_CLIPCHILDREN_OPTIMIZATION",
                appName, 1, RegistryValueKind.DWord);
 
            Registry.SetValue(featureControlRegKey + "FEATURE_AJAX_CONNECTIONEVENTS",
                appName, 1, RegistryValueKind.DWord);
 
            Registry.SetValue(featureControlRegKey + "FEATURE_GPU_RENDERING",
                appName, 1, RegistryValueKind.DWord);
 
            Registry.SetValue(featureControlRegKey + "FEATURE_WEBOC_DOCUMENT_ZOOM",
                appName, 1, RegistryValueKind.DWord);
 
            Registry.SetValue(featureControlRegKey + "FEATURE_NINPUT_LEGACYMODE",
                appName, 0, RegistryValueKind.DWord);
        }
 
        static UInt32 GetBrowserEmulationMode()
        {
            int browserVersion = 0;
            using (var ieKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Internet Explorer",
                RegistryKeyPermissionCheck.ReadSubTree,
                System.Security.AccessControl.RegistryRights.QueryValues))
            {
                var version = ieKey.GetValue("svcVersion");
                if (null == version)
                {
                    version = ieKey.GetValue("Version");
                    if (null == version)
                        throw new ApplicationException("Microsoft Internet Explorer is required!");
                }
                int.TryParse(version.ToString().Split('.')[0], out browserVersion);
            }
 
            if (browserVersion < 8)
            {
                throw new ApplicationException("Unsupported version of Microsoft Internet Explorer!");
            }
 
            UInt32 mode = 11000; // Internet Explorer 11. Webpages containing standards-based !DOCTYPE directives are displayed in IE11 Standards mode. 
 
            switch (browserVersion)
            {
                case 7:
                    mode = 7000; // Webpages containing standards-based !DOCTYPE directives are displayed in IE7 Standards mode.
                    break;
                case 8:
                    mode = 8000; // Webpages containing standards-based !DOCTYPE directives are displayed in IE8 mode.
                    break;
                case 9:
                    mode = 9000; // Internet Explorer 9. Webpages containing standards-based !DOCTYPE directives are displayed in IE9 mode.                    
                    break;
                case 10:
                    mode = 10000; // Internet Explorer 10.
                    break;
            }
 
            return mode;
        }

The Tableau Server

Configure it to trust the web server, per all the trusted auth setup. That’s all you need to do.

THE APPLICATION

Initializing the Web Browser to the page

The crux of everything is the .Net WebBrowser control. Bring one into your page layout ( in this example it is webBrowser1 ). get advanced skills from Tableau Advanced Training

As mentioned earlier, if your Tableau Server doesn’t have AD with automatic logon turned on, you’ll want to use HTTP POST to pass the username over to the dynamic page. You do this with the WebBrowser.Navigate method .

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Security.Permissions;
 
namespace Embedded_Tableau_Example
{
    [PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
    public partial class Form1 : Form
    {
        int tab_count = 1;
        String username = ""; // Here you can get your username however you'd like
        public Form1()
        {
            InitializeComponent();
             
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
 
            string postData = String.Format("username={0}", username);
            byte[] Post = Encoding.UTF8.GetBytes(postData);
            string AdditionalHeaders = "Content-Type: application/x-www-form-urlencoded";
 
            var page_location = "http://{TableauServerLocation}/c_sharp_embed.php"; // HTTPS for security in final environment
            //webBrowser1.Navigate(page_location); // If using AD with automatic logon
            webBrowser1.Navigate(page_location, "_self", Post, AdditionalHeaders);
            webBrowser1.ObjectForScripting = this;
 
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            webBrowser1.Document.InvokeScript("pdfExport");
        }
 
        private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
 
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
             
            object[] args = { tab_count };
 
            webBrowser1.Document.InvokeScript("switchTab", args);
            tab_count++; 
 
        }
 
        public void Test(String message)
        {
            MessageBox.Show(message, "client code");
        }
 
        private void button3_Click(object sender, EventArgs e)
        {
            webBrowser1.Document.InvokeScript("returnJSONString");
        }
 
        public void retrieveJSON(String json)
        {
            MessageBox.Show(json, "Stringy JSON");
        }
 
    }
}

ExtendedWebBrowser control to reroute popups

Everything in the above section is true, but the standard WebBrowser control has a major flaw — you can cancel the NewWindow event, but you can’t get any information about it. Web Edit, See Underlying Data, and all of the Exports (PDF, PNG, Crosstab) by default open a new IE window, which is not desirable.

The preferable action is capture the URLs of the new windows and reroute them back into our original WebBrowser control so that the actions all happen locally (particularly for the download methods).

For some reason, the Windows.Forms version of the WebBrowser control does not expose all of the events that are actually happening.

For example, NewWindow3 exists in the underlying control and provides the location for the new window being created via the bstrUrl string. How do we get to the NewWindow3 event though? Learn more skills from Learn Tableau Online

The solution provided by Mrojas at Art in Soft creates an ExtendedWebBrowser class that allows for capturing any of the events in the underlying controls. It’s also possible that this reference on Stack Overflow allows for the same thing with less code, but I was able to get the ExtendedWebBrowser code working and tested, so that’s my recommendation.

The entire project is available on GitHub. This is what I added to the Program.cs (I’ve added the necessary NewWindow3 event handler to the original from Art in Soft, with the DWebBrowserEvents2 from Pinvoke.net providing the COM interface code necessary).

To get in-depth knowledge, enroll for a live free demo on Tableau Online Training

Integration With Microsoft Visual Studio and Azure DevOps

Microsoft Visual Studio includes tools and technologies for all members of software development teams: project architects, developers, managers and, of course, testers. TestComplete can integrate with these tools giving your Quality Assurance team the ability to:

  • Run unit tests created with Visual Studio as part of your TestComplete projects:

Run TestComplete tests directly from your MSBuild projects:

<!– File: MSBUILD.proj –>

<Project DefaultTargets=”Build”
  xmlns=”http://schemas.microsoft.com/developer/msbuild/2003″&gt;
 
  <!– Declares the task type that will run TestComplete projects–> 
  <UsingTask TaskName=”TC14.ExecuteSolution” AssemblyName= “MSBuildTC14Task, Version=1.1.0.0,
Culture=neutral, PublicKeyToken=e33f56e68d0f845e”/>

 …

</Project> Learn more skills from DevOps Training

Include your TestComplete tests into your Visual Studio test projects and run them locally the same way you run Visual Studio native tests (like unit tests):

  • Integrate TestComplete tests into your team projects managed with Azure DevOps or Team Foundation Server.

In other words, you can mix tests created in both products and make your testing flexible and powerful.

In This Section

https://support.smartbear.com/testcomplete/docs/_assets/commonImages/go.gifRunning Visual Studio Unit Tests From TestComplete

Describes how you can run Visual Studio unit tests from TestComplete projects.

https://support.smartbear.com/testcomplete/docs/_assets/commonImages/go.gifRunning TestComplete Tests From MSBuild Projects

Explains how to integrate TestComplete projects into MSBuild projects.

https://support.smartbear.com/testcomplete/docs/_assets/commonImages/go.gifRun TestComplete Tests From Visual Studio

Describes how to run TestComplete tests from Visual Studio.

https://support.smartbear.com/testcomplete/docs/_assets/commonImages/go.gifInstall Integration Package

Describes how to install the integration package that is shipped with TestComplete and that allows running TestComplete tests from Visual Studio. Get more skills DevOps Online Course

Running Visual Studio Unit Tests From TestComplete

You can include unit tests created with MSTest in your TestComplete projects and run them directly in TestComplete. This way you can integrate Visual Studio unit tests into the collection of tests that you use to test your application(s).

To run MSTest unit tests in TestComplete:

  1. Set the path to the MSTest command-line executable (MSTest.exe) in the Tools > Options > Unit Testing dialog.
  2. Add a Selenium or Unit Testing item to your project:
    1. Right-click your project’s node in the Project Explorer and choose Add | New Item from the context menu.
    1. TestComplete will open the Create Project Item dialog.
  1. Select Selenium or Unit Testing in the list of available project items. If needed, enter the item name and the location of the item file. Click OK.

TestComplete will add a new project item to your project.

  1. Add a unit test of the MSTest type to the Selenium or Unit Testing collection:
    1. Right-click the Selenium or Unit Testing collection in Project Explorer, then click Add | New Item.
    2. In the Create Project Item dialog, select MSTest in the list of available test types.
  2.  
    1. Enter the test name.
    2. If needed, enter the location of the file that will store the test settings.
    3. Enter the path to the assembly storing the needed MSTest tests. You can also click the ellipsis button and browse for the needed file.
    4. Click OK.
  3. TestComplete will add a new MSTest item to your project.

You can edit properties of the added MSTest item in the MSTest Unit Test editor.

After adding the MSTest item to your project and specifying its parameters, you can use this item in your TestComplete projects: run it as a test item, run it from your scripts, and so on.

Running TestComplete Tests From MSBuild Projects

You can run TestComplete tests as part of your Microsoft Build Engine (MSBuild) projects. TestComplete provides the MSBuildTC14Task.dll assembly describing the tasks that run TestComplete tests.

Requirements

Your computer must have Microsoft .NET Framework 2.0–3.5 installed. TestComplete supports MSBuild included in these versions.

TestComplete installation program will install and register the MSBuildTC14Task.dll assembly in the global assembly cache (GAC) automatically.

Example

Below is a typical example of running a TestComplete project suite from an MSBuild project:

<!– File: MSBUILD.proj –>

  
<!– Root element of the MSBuild project –>
<Project DefaultTargets=”Build”
  xmlns=”http://schemas.microsoft.com/developer/msbuild/2003″&gt;
 
  <!– Declares the task type, ExecuteSolution, that will be used to run TestComplete projects (TC14 is a namespace). –> 
  <UsingTask TaskName=”TC14.ExecuteSolution” AssemblyName= “MSBuildTC14Task, Version=1.1.0.0,
Culture=neutral, PublicKeyToken=e33f56e68d0f845e”/>
 
  <!– Target –>
  <Target Name=”Build”>
 
  <!– Executes the task. Note that the tag name, ExecuteSolution, coincides with the registered task name.   –>
    <ExecuteSolution
      SolutionFile=”C:\MyProjects\MyProjectSuite.pjs”
      StopIfFail=”true”
      AdditionalOptions=”/project:MyProject”
      GUIInteractive=”true”
      LogFile=”C:\MyProjects\MyResults.mht”
    />
  </Target>
</Project>

The example is simple, but it demonstrates two key points of executing a TestComplete project suite from an MSBuild project:

  • Registration. To run a TestComplete project suite from MSBuild projects, you should register a special task type. The registration is done via the UsingTask element whose attributes specify the task name and the name of the assembly that will perform the task.
  • You should always register the task type before using it in an MSBuild project. The registration string should always be the same as it is specified in the sample.
  • You can copy the UsingTask string and paste it to your MSBuild project file. Do not modify this string in your MSBuild project file.
  • Execution. Upon registering the task type, you can use the ExecuteSolution element to run the needed TestComplete project suite. The UsingTask element associates ExecuteSolution with the assembly that will perform the task.

To get in-depth knowledge, enroll for a live free demo on DevOps Online Training

Dynamic Parameters in Tableau

Parameters are one of the most loved features of Tableau. You can use them in calculations, across multiple datasources, in titles and labels, and in countless other ways.

Unfortunately, they are static. Unlike filters, parameters are a set list of values. You can build them based off of a field, but if that field changes, the parameter keeps the old values.

In many cases, a filter can be used instead of parameters to alleviate this problem, but there are many cases where a parameter is necessary. 

Luckily, using the power of the JavaScript API, there is a solution! Using a combination of a filter and a parameter, we can easily use a dynamic filter to set a parameter’s value. This parameter can then be used for blending across multiple data sources, calculations or whatever magic you want to implement!

On the Tableau Desktop side, setup couldn’t be easier. Simply make a parameter of “string” type and use it in the areas where you would like to use the dynamic parameter’s values.

For the end user to select, instead of the parameter, use your dynamic field as a “single value” quick filter. The parameter’s default value can be whatever you like (usually All or similar to match the quick filter). For more info Tableau Training

For the JavaScript side, you’ll need to do some programming – but it couldn’t be simpler! The example is built in jQuery, but if you are using a different JavaScript library, feel free to substitute out the various functions for whatever you need.

First, we need a function to run on the page load to instantiate our visualization. This function will set up our visualization, assign it to a variable and hook it to a function that is called when a filter is changed.

/**
 * Instantiate our vizualization.
 */
$(function() {
	var url  = 'http://interworks.com/#/site/NA/views/TestParam/Dashboard1';
	var vizOptions = {
		showTabs           : true,
		hideToolbar        : true,
		width              : "420px",
		height             : "420px"
	};
	
	currentViz = new tableauSoftware.Viz(document.getElementById('viz'), url, vizOptions);
	currentViz.addEventListener(tableauSoftware.TableauEventName.FILTER_CHANGE, onFilterChange);
});

Next, we need a function to process our filters and assign one to our parameter. I used the Region field and a parameter named MyDynamicParam. Adjust these as needed. I also added a small piece of code to set the parameter to All when the All option is selected instead of a single region.

/**
 * Catches the tableau event fired when a filter is changed.
 */
function onFilterChange(e)
{
	if (e.getFieldName() == 'Region') {
		e.getFilterAsync().then(function(filter) {
			var values = filter.getAppliedValues();
			var value = values[0]['value'];
			
			// Value of the parameter if "All" is selected in the filter.
			if (values.length > 1) {
				value = 'All';
			}
			
			currentViz.getWorkbook().changeParameterValueAsync('MyDynamicParam', value);
		});
	}
}

To get in-depth knowledge, enroll for a live free demo on Tableau Online Training

How To Analyze MongoDB Data In Tableau

The speed, flexibility and ease of setup of NoSQL-style databases have all contributed to the rapid rise in popularity of MongoDB in recent years.

Despite its advantages in speed and flexibility, though, MongoDB can still be a bit of a pain when it comes to actually analyzing your data, because so many of the analytic approaches and techniques used by data analysts and data scientists currently depend on the more structured, tabular format common to traditional relational databases.

At Panoply, we get a lot of customers who are looking for ways to make analyzing their MongoDB data easier, especially when it needs to be integrated with the rest of their data in an analytics warehouse.

Today, we’re going to explore how you can use Panoply to collect, process and prepare your MongoDB-stored data for analysis in just a few steps by taking advantage of our automated data warehousing approach, and we’ll do it using Tableau, one of the most popular BI suites.

If you want to follow along, we’ll be using a pre-made dataset of city inspection data available from Github that you can load into your own MongoDB instance before starting–or just use your own data. Learn more from MongoDB Training

Pulling data from MongoDB into your Panoply Data Warehouse

First, you’ll need to connect your MongoDB instance to Panoply (note: if you’ve already done this, feel free to skip ahead to a later section). From your Panoply dashboard, click on Data Sources in the left pane, then hit Add Data Source in the upper right:

Which will take you into the data source selection section. MongoDB will be under Databases (in the leftmost column):

Selecting MongoDB will open a new pane where you can enter your connection details, which will look something like this:

Note that you’ll need a couple different pieces of information to connect Panoply to your MongoDB database:

  • Username: the username you use to connect to your MongoDB database remotely
  • Password: the password associated with that username
  • Host: the address where your MongoDB database is hosted
  • Port: the port your MongoDB database uses for connections
  • Database name: the name of your MongoDB database. for more MongoDB Certification

As you can see in the screengrab above, you’ll need to plug all that information into a MongoDB connection URI, which will have the general form of:

mongodb://[username:password@]host1:[port1],[...hostN:portN]][/[database][?options]]

Or, more concretely, it should look something like this:

mongodb://myDBReader:D1fficultP%40ssw0rd@mongodb0.example.com:27017/admin

Note that Panoply encrypts all login information provided by our users. Once you’ve entered your URI, you can expand the Advanced Options section and set your preferences. In the Advanced Options section, you’ll be able to set the following:

  • Destination: allows you to give a name to the table that will be created in Panoply after importing, or a table-specific prefix if you’re planning on importing multiple tables
  • Primary Key: allows you to set a primary key that will act as a unique identifier for each record in your table(s), and will also allow you to link related data across tables. If you already have a field in your tables called “id” or something similar, Panoply will use it as a primary key if no other parameter is set. If you don’t set a primary at all, you won’t see any deduplication in your data imports, so every single piece of data from the collection run will be added to your tables–you might not want that. Since your are using MongoDB, the default will be _id.
  • Incremental Key: make sure to set this up if you’re planning on making multiple, recurring pulls from this data source. Doing so will make future imports more efficient, as Panoply will only collect data that has been updated since the last time you pulled from that source. Note that incremental keys will only work properly if you are pulling from a single table with this connector.
  • Exclude: you can use this field to exclude specific data elements from your import. If there are specific types of data (e.g. irrelevant or sensitive data) that you would like to exclude from your Panoply data warehouse, you can use this setting to manage that. You can exclude nested fields with dot notation. So if my “users” top level object had a field in it called “email”, you could exclude that by putting “users.email” in the exclude section in Panoply. get additional info from Tableau Training

Once you’ve set all that up, click Collect. The Data sources – MongoDB pane will go gray while the process is underway, and a green status bar will appear at the top of the pane. You don’t need to stay and watch it, though.

Panoply is designed to allow for multiple, parallel data collection processes, so you can move on to your next data source–and the one after that–while your MongoDB data is being ingested.

Panoply will send you an alert when your data collection run is finished, but you can also monitor progress directly or cancel jobs in the Jobs pane.

Once all your data collection is finished, you can head to the Tables pane and get a bird’s eye view of all your fresh, processed data. If you used the same sample data we did, your data should have gone from a collection called Inspections looking something like this:

{"_id":{"$oid":"56d61033a378eccde8a8354f"},"id":"10021-2015-ENFO","certificate_number":9278806,"business_name":"ATLIXCO DELI GROCERY INC.","date":"Feb 20 2015","result":"No Violation Issued","sector":"Cigarette Retail Dealer - 127","address":

{"city":"RIDGEWOOD","zip":11385,"street":"MENAHAN ST","number":1712}}

{"_id":{"$oid":"56d61033a378eccde8a83550"},"id":"10057-2015-ENFO","certificate_number":6007104,"business_name":"LD BUSINESS SOLUTIONS","date":"Feb 25 2015","result":"Violation Issued","sector":"Tax Preparers - 891","address":{"city":"NEW YORK","zip":10030,"street":"FREDERICK DOUGLASS BLVD","number":2655}}

{"_id":{"$oid":"56d61033a378eccde8a83551"},"id":"10084-2015-ENFO","certificate_number":9278914,"business_name":"MICHAEL GOMEZ RANGHALL","date":"Feb 10 2015","result":"No Violation Issued","sector":"Locksmith - 062","address":{"city":"QUEENS VLG","zip":11427,"street":"214TH ST","number":8823}}

Connecting Tableau to your MongoDB data

Now that your data is all loaded into Panoply and organized into standardized columnar tables, you’ll find it’s a lot easier to analyze with a BI tool like Tableau. Connecting Tableau to your Panoply data warehouse is a pretty simple process, since it uses Tableau’s native Redshift connector. learn more info from MongoDB Online Training

Finding your Panoply connection parameters

Before you start, though, you’ll need to gather your connection details from Panoply. You can find this by clicking Connect on the navigation pane in your Panoply dashboard, which will open a new pane with all of the relevant connection details, like so:

Setting up the connection in Tableau

Now open a new Tableau session, and start a new connection by going to Data > New Data Source from the menu:

Choose Amazon Redshift. This will open a dialog where you can enter the connection details you got from Panoply:

Once Tableau is connected to your Panoply data warehouse, you will be able to select which data tables you want to use for analysis. Select the Public schema on the left hand side, then drag the tables you’d like to analyze to the top top pane (indicated by the text “Drag tables here”).

You should see the tables you selected laid out in a relational graph now. Since we used the city inspections dataset from the Github collection mentioned above, our data from Panoply now looks like this in Tableau:

Analyzing your MongoDB data in Tableau

You’ve now created an analysis pipeline by linking your MongoDB database to your Panoply instance and are all set up to analyze your MongoDB in Tableau. Let’s take a look at the dataset we pulled from Github.

A brief glance at the raw JSON shows that it’s got records of New York City inspections from all over the city representing a number of different business types. It also shows whether a violation was issued after the inspection, but it doesn’t show the type of violation.

Let’s start by looking at the geographical distribution of violations using one of Tableau’s pretty mapping features. Once you’ve connected to your Panoply data source, you can head to your first worksheet.

At this point, Tableau has probably even popped up a little flag in the lower left corner of your screen to help you along:

To get in-depth knowledge, enroll for a live free demo on Tableau Online Training

Integrating Tableau With Hadoop

Tableau, a leading Business Intelligence company, allows instant insight by transforming data into interactive visualizations called dashboards. It is a quick and easy tool for data analysis, visualization and information sharing.

Tableau connects easily to nearly any data source currently available in the market, whether it be a corporate Data Warehouse, Microsoft Excel or web based data. And what’s more, Tableau can also be connected to multiple flavours of Hadoop.

Hive, as well as one of the very well-known Hadoop vendors (Cloudera, Hortonwork, and MapR ) should be installed in the system. We can say that Tableau now supports the ability to visualize complex large data stored in Cloudera’s, Hortonworks’, and MapR’s distribution via Hive and the Cloudera, Hortonworks, and MapR Hive ODBC driver.

Once Hadoop is connected with Tableau, we can bring data in-memory and do fast ad-hoc visualizations. We can even see patterns and outliers in all that data that’s stored in our Hadoop cluster.

With this integration, we can’t get any value from the data unless we can see what is there inside of it.

In today’s evolving technology landscape, with the essential key being outperforming competitors, Tableau’s solution for Hadoop is one of the most elegant solutions there is. It provides the most desired performance, quickly and easily.

It prevents any need for us to move huge log data into the Relational store before analysing it with Tableau and makes it more accessable. Also Tableau Software enables businesses to keep pace with the competitors through an adaptive and intuitive means of visualizing their data. Learn more skills from Tableau Training

Tableau lets us bring our data into its fast, in-memory analytical engine. With this approach we can query an extract of data without waiting for MapReduce queries to complete. We can just click to refresh the extract or schedule automatic refreshes.

However, we should also pay attention to technology merging effects and the fact that the Hive service does not relay information about query progress to Tableau for data accessing.

It also does not provide an interface for cancelling the requested queries. Hadoop’s known drawback is its high latency. When we work with Hadoop and Tableau, we can connect live to our Hadoop cluster and then extract the data into Tableau’s fast in-memory data engine.

This can be a limitation, as to get the benefit of ad hoc visualizations at interactive speeds, we need to be able to move fast.

We can conclude that Hadoop reporting is faster, easier and more efficient with Tableau. Tableau’s solution for Hadoop is elegant and performs very well. This obviates the need for us to move huge log data into a relational store before analyzing it. This makes the whole process seamless and efficient.

To get in-depth knowledge, enroll for a live free demo on Tableau online Training

Tableau vs Power BI most Differences

When it comes to Business Intelligence tools, Tableau and Microsoft Power BI are the standout performers in the recent decade. Tableau since its inception has come a long way and has established itself as the market leader for BI tools and data analytics.

Microsoft Power BI though relatively younger has grown to be the closest competitor for Tableau. Both the tools have their own strengths and weaknesses and each will suit businesses based on requirements.

We will do a comparison study between the two which will help companies to decide the best for their needs.

Cost:

Tableau will be more expensive than Power BI when it comes to larger enterprises. To get the most out of Tableau you need to build data warehousing too which will further inflate the cost.

If you are looking for an affordable solution then Power BI is the clear winner here. Power BI professional version cost less than10$ per month per user whereas the pro version of Tableau is more than 35$ per user per month.

If you are a startup or a small business you can opt for Power BI and then upgrade to Tableau if the need arises. Learn more skills from Tableau Training

Data Visualization:

If your primary objective is Data Visualization, then Tableau is the most preferred choice. Tableau is the best tool when it comes to Data Visualization whereas Power BI focuses more on predictive modeling and reporting.

Deployment:

Tableau has more flexible deployment options compared to Power BI. Power BI is available only as SaaS model whereas Tableau has got both on-premises and cloud options.

If for some obvious reasons your business policy doesn’t allow for SaaS then Power BI is out of the picture. Though expensive due to its flexible deployment and licensing options, Tableau is the winner here.

Bulk data handling capabilities:

When it comes to handling the huge volume of data sets Tableau still ranks better than Power BI. Power BI tends to be a drag slow while handling bulk data which can be fixed by using direct connections instead of the import functionality.

Functionality:

Tableau is able to answer most of the questions users would like to ask on the data available compared to Power BI. The depth of data discovery is more sophisticated with Tableau than Power BI.

Integration:

Both the products easily integrate with most of the popular third party data sources. Tableau still has a thin edge over Power BI when it comes to out-of-the-box integrations.

Power BI has API access and pre-built dashboards for speedy insights for some of the most-used technology out there like salesforce, Google Analytics, email marketing, and of course Microsoft products.

You can also connect to services within your organization or download files to build your visualizations. In order to connect any data to Power BI, use the “Get Data” button. You’ll need to go through a short authorization process in order to get fully connected.

Tableau really invested heavily in integrations and connections to big tools and widely-used connections. You can view all of the connections included with your account level right when you log into the tool.

Tableau’s connection is a little more involved, because you’ll need to identify which data to pull into the tool when you make the connection. Because of this it might be helpful to understand what data you want to look at and why before you start making those connections

Programming tools support:

Both the software connects smoothly with programming languages. Tableau integrates much better with R Language compared to Power BI. Power BI can still be connected to R language using Microsoft revolution analytics but is available only for enterprises level users.

User Interface:

Tableau has a slick user interface which enables the user to create a customized dashboard easily. Power BI has a more intuitive interface and is much simpler to learn than tableau. It’s due to the simplicity and ease of use, why business users prefer Power BI.

Power BI has real-time data access and some pretty handy drag and drop features. The whole tool is built to speed up time to visualizations, and it gives even the most novice users access to powerful data analytics and discovery without a whole lot of prior knowledge and experience.

The real-time data access means that teams can react instantly to business changes fed to Power BI from the CRM, project management, sales, and financial tools.

Considering live data access is where most SaaS products and especially most dashboard products are moving toward, Power BI certainly has the leg up here.

Tableau’s features are just as powerful, but some of them a little less intuitive, being hidden behind menus. Forecasting based off of past behavior, calculations to transform existing data based on your requirements.

Tableau gives you live query capabilities and extracts, which is particularly helpful for data analysts who are used to stopping all work for the query process.

The interface uses a drag and drop table view to ask questions of the data. You put your data types in the x and y axes, and then Tableau instantly builds your visualization. The company line is that they “keep the focus on your questions,” but this really feels like Tableau lives somewhere in between query-based (and developer-dependent) data visualization and drag and drop.

They balance it nicely, however, because despite the UX’s somewhat cluttered appearance, Tableau is fairly easy to use, as long as you’re familiar with your data sets or are willing to spend some time studying.

Product Support & Community:

There is no significant difference between the two when it comes to supporting and user communities. Microsoft Power BI is relatively younger than Tableau and hence will have a smaller community but will catch up soon.

Both the tools work on different principles and there is no clearly defined winner here. You have to select the best tool based on your own requirements taking into considerations the above-listed points.

Tableau Weaknesses:

Unfortunately, Tableau comes at a cost. When it comes to the investment required to purchase and implement Tableau – 9 times out of 10 it will be more expensive than Power BI, by a fair margin.

Often, Tableau projects are accompanied by data-warehouse-building endeavours, which compound the amount of money it takes to get going. The results from building a data warehouse and then hooking up Tableau are phenomenal, but you’ll need an implementation budget of at the very least $50k – plus the incremental cost of Tableau licenses.

Power BI Weaknesses:

As I’ve mentioned, Tableau still has the slight edge on Power BI when it comes to the minutiae of product functionality; mostly due to their 10-year head start.  But perhaps Power BI’s greatest weakness is its lack of deployment flexibility. For Power BI on-premise you need to install the Power BI Report Server as well as the SQL Server.

I also mentioned that Tableau works well for users with large amounts of data and for users that want on-premise systems.

You should be aware that there are some new features being added to Power BI via Power BI Premium that help catch Microsoft up to Tableau in the areas of large datasets and on-premise capabilities – but Power BI Premium adds significant cost, and these features are relatively new. Tableau still reigns in these areas.

To get in-depth knowledge, enroll for a live free demo on Tableau Online Training

Top Data Visualization Tools in 2020

In the field of data science, data visualization is undoubtedly the top word today. No matter what data you want to analyze, doing data visualization seems to be a necessary step.

But many people don’t have a specific concept of data visualization, and they don’t know how to implement it. So, today I am going to take you through the definition, concept, implementation process and tools for data visualization.

What is data visualization?

Scientific visualization, information visualization, and visual analytics are often seen as the three main branches of visualization. The new discipline “Data Visualization”, which is a combination of these three branches, is a new starting point in the field of visual research. For more info Tableau Training

List of Data Visualization Tools:

Sisense:

Sisense is a business intelligence platform that lets you visualize the information you require to make better and more intelligent business decisions. It uses an agile analysis software with a full range of data visualizations. This way, you can create dashboards and graphical representations with a drag and drop user interface. You can also share them with colleagues, business partners, and clients via interactive dashboards.

Tableau:

Tableau is often regarded as the grand master of data visualization software and for good reason. Tableau has a very large customer base of 57,000+ accounts across many industries due to its simplicity of use and ability to produce interactive visualizations far beyond those provided by general BI solutions.

It is particularly well suited to handling the huge and very fast-changing datasets which are used in Big Data operations, including artificial intelligence and machine learning applications, thanks to integration with a large number of advanced database solutions including Hadoop, Amazon AWS, My SQL, SAP and Teradata.

Extensive research and testing has gone into enabling Tableau to create graphics and visualizations as efficiently as possible, and to make them easy for humans to understand. Learn more skills from Tableau Online Training

Pros

  • Hundreds of data import options
  • Mapping capability
  • Free public version available
  • Lots of video tutorials to walk you through how to use Tableau

Cons

  • Non-free versions are expensive ($70/month/user for the Tableau Creator software)
  • Public version doesn’t allow you to keep data analyses private

Infogram:

Infogram is a fully-featured drag-and-drop visualization tool that allows even non-designers to create effective visualizations of data for marketing reports, infographics, social media posts, maps, dashboards, and more.

Finished visualizations can be exported into a number of formats: .PNG, .JPG, .GIF, .PDF, and .HTML. Interactive visualizations are also possible, perfect for embedding into websites or apps. Infogram also offers a WordPress plugin that makes embedding visualizations even easier for WordPress users.

Pros

  • Tiered pricing, including a free plan with basic features
  • Includes 35+ chart types and 550+ map types
  • Drag and drop editor
  • API for importing additional data sources

Cons

  • Significantly fewer built-in data sources than some other apps

Datawrapper:

Datawrapper is an aimed squarely at publisher and journalist. The Washington Post, VOX, The Guardian, BuzzFeed, The Wall Street Journal and Twitter adopts it.

Datawrapper is easy visualization tool, and it requires zero codings. You can upload your data and easily create and publish a map or a chart. The custom layouts to integrate your visualizations perfectly on your site and access to local area maps are also available.

Zoho Analytics:

Zoho Analytics is a business data analytics platform that uses a variety of tools, which include KPI widgets, pivot tables, and tabular view components that enable it to generate reports that come with valuable business insights.

The platform, formerly known as Zoho Reports, promotes collaboration, enabling users and their colleagues to work together in report development and decision-making.

To make things even better, the solution lets users embed just about any report or dashboard in their apps, websites, and blogs. The vendor makes its commitment to system security by using only state-of-the-art security measures, which include an encrypted connection.

App developers and ISVs and developers can likewise benefit from using the software as it allows them to integrate and build reporting and analytical capabilities into their platforms. Zoho Analytics free trial allows you to get to know the features firsthand at no cost and without commitment

Microsoft Power BI:

Microsoft Power BI is a business analytical tool which makes it easy for businessmen to visually analyze their data and form strategies based on it. It provides an access to on-premise and in-cloud data. It has two pricing plans, out of which one can be acquired for free.

The free one comes with 1GB data limit, allows you to create, make and share dashboards and reports. The Power BI Pro has all power BI features, can consume live data with full interactivity, share data queries through the Data Catalog and much more.

Adaptive Discovery:

Specifically being designed for the business users, the Adaptive discovery tool allows focusing your analysis and decision making on what is important.

With interactive drill-down and visual storytelling, you can identify the root causes, answer questions on the fly and spot trends to address the issues ahead of the curve. It gives you the complete perspective that you need to drive for financial, sales and operational performances.

It allows modeling, planning, and forecasting to make better decisions.

Pros:

  • Connects to any data source. Be it ERP, CRM or HCM.
  • Personalized dashboards.
  • Modular metrics.
  • Shared metrics.
  • Information at your fingertips from anywhere with analytics delivered completely in the cloud.
  • Out of the box planning, budgeting, and forecasting process.

Cons:

  • Sometimes responsiveness is slow due to the use of java.
  • Initially, it is a bit difficult to learn this tool (mainly setting up reports).
  • Unable to modify reports without creating a new one.
  • Overall, reporting functionality could be improved.

Cost: You need to contact the company for pricing details. It has a subscription-based pricing model. The price will be determined by the number of instances that you want to opt for. This tool is available in two editions i.e. Adaptive discovery professional and Adaptive discovery enterprise.

To get in-depth knowledge, enroll for a live free demo on Tableau Certification

Tableau future Career gaining popularity?

If you want a data analytics job where you primarily get to use Tableau, but aren’t exactly sure what it takes to actually get that gig, this is the blog post for you.

While landing this job and other jobs where I’ve used Tableau, I’ve seen first-hand the requirements, hard and soft skills it takes to get the offer.

Here are some great things I’ve learned to increase your chances of landing a job that uses Tableau. For more info Tableau Training

For starters, you’ll need the chops to effectively derive insights from data with Tableau. In addition, it’s equally important to be able to effectively communicate all of the information to your stakeholders.

Even if this seems pretty obvious, you might be asking, “Okay, but how do I get to a higher level of competence and confidence?”

Fear not, I’ve curated a short list of what you can do now to boost your Tableau skills and propel your career in analytics.

Demand for Tableau Professionals:

By 2020, the world is set to generate 50 times the amount of data as in its previous decade, according to a study by International Data Corporation (IDC).

With this humongous amount of data and real business implications at play, business organizations across the world have the need for interactive, easy-to-use tools to analyze data and derive actionable insights from it. Tableau helps organizations do exactly this!

Thus, the popularity of Tableau is expected to go through the roof.

Here are the trends that show how the demand for tableau experts is peaking.

Rewarding Tableau Careers:

Not only there is a great demand for Tableau experts, but there are also huge rewards on offer as well. As of May 6, 2019, the average annual pay for a Tableau Developer is $108,697 a year.

The average salaries too, are on an upward trend with the recent average salaries going up to as high as $158,000. For more skills Tableau Certification

Why is Tableau gaining popularity?

In this data-driven world, to understand the nitty-gritty of customer needs, problems in business processes, and market trends, we make use of visualizations.

The analysis of a problem with the help of proper visualization is always the best method for solving the problem. This is the reason for the popularity of Tableau.

Before checking out the outspread Tableau career opportunities, let’s understand the use of Tableau with the help of a real-life use case. This use case explains how the data analysis of rides is carried out in Uber.

Nowadays, most of us use Uber for traveling from one place to another. From the moment we book a ride to our drop location and beyond, we constantly provide real-time data to Uber by enabling them to track our location.

Uber records our data for each and every ride. After recording the data, it analyzes the data and identifies the patterns of movements in a particular location, time, the number of travelers on the same route, the available cabs nearby, etc.

After that, it gives suggestions to drivers on the best routes to take to be present at the location where they can pick us up easily without any delay, and it further provides the best routes to reach the destinations at the earliest as well. This helps in increasing rides per day for Uber.

Kind of Tableau Jobs Role on Supply

The best issue a few Tableau careers is you’ve got a spread of job roles to settle on from and at various levels in your Tableau career. Following area unit a number of the hottest job titles for Tableau professionals.

  • Tableau advisor
  • Data Analyst
  • Business Analyst
  • Business Intelligence Developer & Manager

To get in-depth knowledge, enroll for a live free demo on Tableau Online Training

Design a site like this with WordPress.com
Get started