7 Replies Latest reply on Apr 23, 2015 4:00 PM by Russell Christopher

    Maximum URL length At Action Time

    Brian Scott

      Hello friends -


      Has anyone run into a problem with a maximum URL length generation when trying to construct an action?  I've got a mapped solution that shows a lot of points.  I generated some external code to accept a http get, strip the point identifiers from the request, look 'em up in our CRM, and generate a spreadsheet for mailing purposes.  It is beautiful. 


      BUT.  If my point identifiers are ten characters each.  This makes a big URL if someone selects a bunch of points.  Unfortunately, Tableau seems to be stopping at around 2K characters in the generated URL.  Hand coded tests reveal that my code on the other end can support much longer query parameters / lists of identifiers; thus, I have determined that Tableau is chopping me off.


      Anyways, this has made my beautiful solution kind of clunky and dumb in that the user can only select ~ 150 points at a time.


      Who can help?




        • 1. Re: Maximum URL length At Action Time
          Patrick Van Der Hyde



          Tableau utilizes a Get request from Tableau to the browser.  The maximum length that most browsers will accept in a get request is 2048 bytes.


          For instance - IE:


          And on Chrome from Google dev forum:


          Again 2048 and this is a standard for Web.


          If this is a limitation that must be overcome for the use case, Tableau supplies a Javascript API that utilizes Post instead of Get and could be utilized.

          • 2. Re: Maximum URL length At Action Time
            Brian Scott

            Absolutely not helpful and inaccurate.


            The microsoft link you sent me was for IE8 and hasn't been updated in six years. 


            The google link you sent me was for Google Charts, not for Chrome itself. 


            If you google 'maximum query parameter length' the first hit is a stack overflow page clearly indicating that different browsers can support much, much larger query parameters.


            I am in complete control of the environment that I need the GET to arrive at, and can set maximum URL limits on that end as necessary.  For example, if I hop into server.xml in my Apache implementation, I can set maxHttpHeaderSize to whatever value I want and blast away.  I can direct my users who will be using this feature to set their default browser to whatever I want.  I have successfully sent hardcoded query parameters far exceeding 2084 characters using Chrome and Safari as testbeds.


            In any case, the fact that you think a POST or the Javascript API could be utilized in my case tells me maybe you don't understand my question.  I don't need to get *into* tableau server, I need to *leave* tableau server (or desktop) and get to a server I own with data from a visualization. If there is a mechanism by which I can generate a POST from *within* a visualization and send along whatever data I need to get outside the tableau environment, please let me know. 


            I don't care about the web standard, because all of my work is going on behind our firewalls.  In order to get there, however, I need the tool to populate a URL that may include over 2084 characters, something which a great many browsers support, and can be configured for acceptance on my target servers. 

            • 3. Re: Maximum URL length At Action Time
              Matt Lutton

              I am not sure this type of reply is going to get you far.  You might try a different approach--and you can easily contact Tableau Support rather than posting an insulting reply on a forum.


              Patrick is a Tableau employee, and is graciously volunteering his time (this is not part of his job) to try and help you.  He pretty clearly states that the links he provided indicate a Web standard, and not a direct response to your question.

              1 of 1 people found this helpful
              • 4. Re: Maximum URL length At Action Time
                Brian Scott

                You are probably correct.  I have a support case open, and Patrick closed it and responded here.  My case was already escalated once to that level.  It is a little bit frustrating to have two layers of support give me an answer that:


                1) Is demonstrated as false by the most primitive Google search. 


                2) Do not appear to have understood my business case.  Though it does not appear here, I included a sample workbook in my support case that pretty clearly shows why the Javascript API and/or POST ideas aren't valid avenues to explore; my problem is going outbound from Tableau, not inbound, and yet, two times support suggested I look at the Javascript API.


                It might be one thing if I'd been told that the tool just won't support that at this time, but instead, I was told that it was impossible even though it isn't, and given references to alternatives that do not share any overlap with my problem.  I'm getting around to the fact that the existing build of Tableau cannot generate outbound GETS with long query strings, but perhaps a POST option should be considered for their next build.  I imagine there are plenty of people that would like to give their user the ability to select a bunch of data points and send that information to other services behind the firewall where the limitations imposed by specific browsers or Google Chart APIs are not of concern.


                I've got a *beautiful* visualization of data that will really help some people out, and I am going to have to go to them and tell them to only grab 150 points per transaction, remember which points they grabbed from the map and *don't* grab them again, then merge the results together after the fact, because the tools that I have can't go the last inch. 

                • 5. Re: Maximum URL length At Action Time
                  Russell Christopher

                  Hi Brian -


                  IE's character limit (in the "open" window) is indeed 2083 - The article Patrick referred you to appear to be the most recent documentation that Microsoft has on the subject. Is it old? Yep – but it is correct.


                  Patrick's reference to using POST instead of GET assumes your users will be leveraging Tableau Server to get "out" to somewhere else. If users are not consuming vizzes in the browser, then you can't leverage the JS API to POST. Most folks constructing "large-ish" query strings aren't doing so for users in Desktop/Reader - they do it in Server for larger communities of users, where the JS API is a viable alternative. Your scenario is an edge case.


                  From what I'm seeing, we cut off query strings somewhere slightly north of 2K characters - probably keeping in mind the least able browser (IE) in this regard (or the fact that until recently we used wininet for our http work) -- but that's guesswork on my part.


                  I'd suggest that you make a feature request in the ideas forum - That's where the product team goes to see what features they may want to think about based on how the larger community votes things up or down.





                  • 6. Re: Maximum URL length At Action Time
                    Jeremy Everett

                    Hi Russell,


                    The company I am working for is running into this same issue on Tableau v8.2.3 using IE v8 and Chrome v42.0.2311.90 m.  May I please ask if an example could be provided using the JS API to Post? The report is being consumed internally via a Tableau Dashboard.


                    Best regards,


                    • 7. Re: Maximum URL length At Action Time
                      Russell Christopher

                      Hi Jeremy! We have some good samples online, Google "Tableau JavaScript API Tutorial" and you should land on some good stuff. Have fun!