OpenDocuments.ViewDocument Method fails if document is an InfoPath Filler form (xsn)

Hi,
I have a custom webpart with links to different documents.
When the link is clicked I run the following JavaScript to open the document in the users client application:
function ViewDoc(docpath) {
NewDocumentButton = new ActiveXObject("SharePoint.OpenDocuments.3");
if (!NewDocumentButton.ViewDocument(docpath)) {
alert('Opening document failed.\n' + docpath);
This is working for Word files and Excel files but not if the document is an xsn file.
Any ideas why it don't work with InfoPath forms and have a solution?
Environment is SharePoint Server Standard.

Hi,
According to your post, my understanding is that you had an issue about opening the xsn file.
To open the InfoPath form, we should use the SharePoint.OpenXMLDocuments
method.
You can refer to the following code snippets, it worked well in my environment.
function openDoc(){
var NewDocumentButton = new ActiveXObject("SharePoint.OpenXMLDocuments");
var docpath="http://sp/LIbA/Form.xsn";
if (!NewDocumentButton.EditDocument2(window , docpath , "InfoPath.Document")) {
alert('Opening document failed.\n' + docpath);
Thanks,
Jason
Forum Support
Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact
[email protected]
Jason Guo
TechNet Community Support

Similar Messages

  • The servlet weblogic.servlet.AsyncInitServlet init method failed

    I installed WLS 9.2.2 recently with my app being on 8.1.5 for a long time.
    I chose to create a new domain instead of upgrading my existing one.
    I use the eclipse 3.2.2 with the WL plugin.
    When I start the server and login to the console not using eclipse it works fine.
    Trying to start the server and login to the console gives a internal server error.
    Any idea what could be wrong? I bolded the parts where I have looked into.
    Here is the console output:
    <Nov 19, 2008 3:13:02 PM CST> <Notice> <WebLogicServer> <BEA-000395> <Following extensions directory contents added to the end of the classpath:
    C:\bea92\weblogic92\platform\lib\p13n\p13n-schemas.jar;C:\bea92\weblogic92\platform\lib\p13n\p13n_common.jar;*C:\bea92\weblogic92\platform\lib\p13n\p13n_system.jar*;C:\bea92\weblogic92\platform\lib\wlp\netuix_common.jar;C:\bea92\weblogic92\platform\lib\wlp\netuix_schemas.jar;C:\bea92\weblogic92\platform\lib\wlp\netuix_system.jar;C:\bea92\weblogic92\platform\lib\wlp\wsrp-common.jar>
    <Nov 19, 2008 3:13:03 PM CST> <Info> <WebLogicServer> <BEA-000377> <Starting WebLogic Server with Java HotSpot(TM) Client VM Version 1.5.0_10-b03 from Sun Microsystems Inc.>
    <Nov 19, 2008 3:13:05 PM CST> <Info> <Management> <BEA-141107> <Version: WebLogic Server 9.2 MP2 Mon Jun 25 01:32:01 EDT 2007 952826 >
    <Nov 19, 2008 3:13:10 PM CST> <Info> <WebLogicServer> <BEA-000215> <Loaded License : C:\bea92\license.bea>
    <Nov 19, 2008 3:13:10 PM CST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to STARTING>
    <Nov 19, 2008 3:13:10 PM CST> <Info> <WorkManager> <BEA-002900> <Initializing self-tuning thread pool>
    <Nov 19, 2008 3:13:11 PM CST> <Notice> <Log Management> <BEA-170019> <The server log file C:\bea92\user_projects\domains\domain\servers\AdminServer\logs\AdminServer.log is opened. All server side log events will be written to this file.>
    <Nov 19, 2008 3:13:15 PM CST> <Notice> <Security> <BEA-090082> <Security initializing using security realm myrealm.>
    <Nov 19, 2008 3:13:22 PM CST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to STANDBY>
    <Nov 19, 2008 3:13:22 PM CST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to STARTING>
    <Nov 19, 2008 3:13:30 PM CST> <Error> <HTTP> <BEA-101359> <The servlet weblogic.servlet.AsyncInitServlet init method failed while it was run in the background. The exception was: java.lang.NoClassDefFoundError: com/bea/p13n/management/ApplicationFilePoller$Handler.
    java.lang.NoClassDefFoundError: com/bea/p13n/management/ApplicationFilePoller$Handler
         at java.lang.ClassLoader.defineClass1(Native Method)
         at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
         at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
         at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
         at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
         Truncated. see log file for complete stacktrace
    >
    <Nov 19, 2008 3:13:37 PM CST> <Notice> <Log Management> <BEA-170027> <The server initialized the domain log broadcaster successfully. Log messages will now be broadcasted to the domain log.>
    <Nov 19, 2008 3:13:37 PM CST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to ADMIN>
    <Nov 19, 2008 3:13:37 PM CST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RESUMING>
    <Nov 19, 2008 3:13:39 PM CST> <Notice> <Server> <BEA-002613> <Channel "Default" is now listening on 127.0.0.1:7005 for protocols iiop, t3, ldap, http.>
    <Nov 19, 2008 3:13:39 PM CST> <Notice> <WebLogicServer> <BEA-000331> <Started WebLogic Admin Server "AdminServer" for domain "domain" running in Development Mode>
    <Nov 19, 2008 3:13:40 PM CST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RUNNING>
    <Nov 19, 2008 3:13:40 PM CST> <Notice> <WebLogicServer> <BEA-000360> <Server started in RUNNING mode>
    <Nov 19, 2008 3:22:04 PM CST> <Error> <HTTP> <BEA-101020> <[weblogic.servlet.internal.WebAppServletContext@d6c6a0 - appName: 'consoleapp', name: 'console', context-path: '/console'] Servlet failed with Exception
    java.lang.NullPointerException
         at weblogic.servlet.AsyncInitServlet.service(AsyncInitServlet.java:124)
         at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
         at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
         Truncated. see log file for complete stacktrace
    Edited by: user5384782 on Nov 19, 2008 1:42 PM
    Edited by: user5384782 on Nov 19, 2008 3:59 PM

    Thanks for your replies adrian and david.
    The only thing I see different is that eclipse has different arguments when calling the jvm at the top.
    startWebLogic.cmd:
    C:\bea92\JDK150~1\bin\java -client -Xms256m -Xmx512m -XX:CompileThreshold=8000
    -XX:PermSize=48m -XX:MaxPermSize=128m -Xverify:none -da -Dplatform.home=C:\b
    ea92\WEBLOG~1 -Dwls.home=C:\bea92\WEBLOG~1\server -Dwli.home=C:\bea92\WEBLOG~1\i
    ntegration -Dweblogic.management.discover=true -Dwlw.iterativeDev= -Dwlw.testC
    onsole= -Dwlw.logErrorsToConsole= -Dweblogic.ext.dirs=C:\bea92\patch_weblogic922
    \profiles\default\sysext_manifest_classpath -Dweblogic.Name=AdminServer -Djava.s
    ecurity.policy=C:\bea92\WEBLOG~1\server\lib\weblogic.policy weblogic.Server
    eclipse:
    -hotspot -Xms32m -Xmx200m -Dweblogic.ProductionModeEnabled=
    Eclipse may be calling the cmd I dont know.
    I will try upgrading my eclipse like adrian said, but in the meantime I appreciate any further advice/tips.

  • Dwr method fails

    when i execute my application in the eclipse ide it works fine but when it comes to browser dwr method fails to execute an im getting the following error
    [Error]
    Mar 15, 2011 6:29:19 PM org.directwebremoting.util.CommonsLoggingOutput info
    INFO: Exec: FeeManagementSystemDWR.getCollegeList()
    Mar 15, 2011 6:29:19 PM org.directwebremoting.util.CommonsLoggingOutput warn
    WARNING: Method execution failed:
    java.lang.NumberFormatException: null
         at java.lang.Integer.parseInt(Integer.java:415)
         at java.lang.Integer.<init>(Integer.java:620)
         at com.mf.cms.fms.services.fmsservices.FeeManagementSystemDWR.getCollegeList(FeeManagementSystemDWR.java:23)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at org.directwebremoting.impl.ExecuteAjaxFilter.doFilter(ExecuteAjaxFilter.java:34)
         at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.java:428)
         at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:431)
         at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:283)
         at org.directwebremoting.servlet.PlainCallHandler.handle(PlainCallHandler.java:52)
         at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:101)
         at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:146)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
         at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
         at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
         at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
         at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
         at java.lang.Thread.run(Thread.java:595)
    Mar 15, 2011 6:29:19 PM org.directwebremoting.util.CommonsLoggingOutput warn
    WARNING: --Erroring: batchId[0] message[java.lang.NumberFormatException: null]
    [Error]
    Please help me out in that aspect
    it's urgent ...........
    Thanks in advance
    Thimmappa Narala

    844526 wrote:
    when i execute my application in the eclipse ide it works fine You are running in an 'environment'. That does not only consist of your code but also includes other things such as but not limited to configuration files, environment variables etc.
    but when it comes to browser dwr method fails to execute an im getting the following error The 'environment' is different.
    Please help me out in that aspect Most likely reason is that there is a configuration source (a file or value in a file), which exists in the IDE and doesn't exist when you run it outside the IDE.

  • ERROR - the ProtectKeyWithTPMAndPIN Method failed with the exit code: 8031005B

    Hello
    I am using the EnableBitlocker.vbs script to automatically assign the TPM and start the encryption. I am running it from an elevated command prompt. Here is are the arguments I am running with
    cscript EnableBitLocker.vbs /on:tp
    /l:c:\bitlockerlog.log /promptuser /ro:"MBAM" on
    All is well and it prompts the user for a PIN but then it fails.
    Here is the full log file. I haven't been able to find any info on the error code in the subject.
    Script processing started  02/07/2014       14:43:27
    Proper number of command line arguments passed to the script
    ---------------Executing with the following arguments------------------
    Enable parameters: tp
    Logging location: c:\bitlockerlog.log
    Create recovery key: No recovery key use specified
    Encryption method: 3
    Create SMS status MIF's: No SMS status MIF's will be created
    Reset TPM ownership: 1
    User prompting: 1
    Connection succeeded to MicrosoftTPM
    Successfully retrieved a TPM instance from the Win32_TPM provider class
    TPM found in the following state:
    Enabled - True
    Activated - True
    Owned - True
    Connection succeeded to MicrosoftVolumeEncryption
    TPM is in a ready state to enable BitLocker.
    Change TPM owner password specified on the command line.
    Random TPM owner password is: ;&K:)BU65|c7_v2n
    Completed converting old owner password to owner authorization:  0
    Completed converting owner password to owner authorization:  0
    Starting to change owner authorization process on the TPM
    ERROR - Failed to change owner authorization on the TPM with the following exit code:  80280001
    Successfully connected to WMI StdRegProv
    Checking if Group Policy encryption method is set...
    Found EncryptionMethod with value: 4
    Found EncryptionMethod policy registry key ignoring any /em options on command line
    Found ActiveDirectoryBackup with value: 1
    Found RequireActiveDirectoryBackup with value: 1
    Determined client Group Policy configured to require AD escrow of recovery password
    EncryptableVolumes count is: 1
    The EncryptableVolume(s) found: \\?\Volume{ad6db324-01dd-11e4-8272-806e6f6e6963}\
    EncryptableVolume used for encryption is: C:
    The volume has a protection status of: 0
    BitLocker Protection is Off
    Get conversion status is: 0
    The volume has a status of fully decrypted
    The following user is logged on: MGMT\80151318-sys
    Attempting to enable BitLocker TPM + Pin
    ERROR - the ProtectKeyWithTPMAndPIN Method failed with the exit code:  8031005B
    Script ended  02/07/2014       14:43:51
    Any and all help would be appreciated. This has worked before on a different laptop.
    Thanks

    Hi,
    This error indicates that the group policy isn't set correctly, when configure the group policy at teh server side, you should notice that only one of the additional authentication can be required at start up , otherwise a policy occurs, the notice can be
    found just like below:
    and after test, the error indeed occurs, just like the screen below:
    So, I suggest to check the group policy for bitlocker settings, you can only choose one start up authentication method.
    Regards
    Wade Liu
    TechNet Community Support

  • Looking for a good method or APP to have client sign a form in a text box

    I am looking for a good method or App to take an existing form/Document and have a client sign, date etc.  I will want to create the text boxes in a stationary location.  Possibly to also take a picture to add to form.
    Has anyone used any apps to accomplish this?
    Apps I have tried.
    Signnow
    Sign PDF
    Sign Easy
    Sign Easy is about the best except the signatures (text boxes, dates, etc) are free floating and confuse people where to add them on form each time.  Clients have no clue how to use it.
    Any suggestions would be helpful.  I may be over complicating this also, as there could just be a PDF app that I utilize.
    Thanks,
    Jim

    Maybe more than you need...
    PDF readers
    PDF Expert – the PDF handling app for the iPad. "It allows you to markup documents with highlights and handwriting, insert text and stamps, sign and even merge PDFs."
    https://itunes.apple.com/us/app/pdf-expert-5-fill-forms-annotate/id743974925?mt= 8
    iAnnotate – turns your tablet into a world-class productivity tool for reading, marking up, and sharing PDFs, Word documents, PowerPoint files, and images.  Has a secure document edition designed for corporations.
    http://www.branchfire.com/iannotate/

  • What do exactly mean by 'document is lost' while filling setup table

    Hi ,
    In various threads its mentioned that, while extraction of logistics data .. say sales billing document, the document is 'lost', if its posted/changed while filling setup table . Hence we need to have system downtime while filling setup table.  So my questions are as follows :
    1)What exactly do u mean by 'Document is Lost'?  (I mean the document entries,will always be there in application tables ).
    2)Suppose we have DSO in "Over Write" mode at first level (after datasource). Will we need system downtime for filling setup table?  (I read n some forum that overwrite mode DSO at first level eliminates the need for system downtime)
    Please let me know your opinion on above questions
    Regards
    Mohit
    Edited by: Mohit Gupte on Jan 23, 2010 9:12 AM

    Hi Mohit,
    1) If document created/changed during filling of setup tables, it will not be available in corresponding extract queue and therefore not be available for delta update. Right?
      Sorry ,the answer is 'No' , because if you make any changes at the time of filling the set-up table, then those changes will be captured either in the set-up table or in the extraction queue and hence you will not miss any documents.Condition is ,you have to use 'Queued delta' .If you use 'Direct delta' then you miss the documents becasue of 'no' extraction queue .
    All documents are permanently stored in your application tables(VBRK,VBRP etc) always , but at the time of filling the set-up tables these documents will be collected from the application tables and will be moved to set-up table and then the changes will be stored in the extraction queue. At the time of set-up table running,new/changed documents will be stored either in the set-up table or in the extraction queue .So if you follow the correct loading method,you will not miss any documents.
    2)However these documents (changed/created during setup run) will be stored in application tables (VBRP & VBRK, in case of sales billing). Hence we can always retrieve consolidated list of such documents , by querying 'CREATED ON'/'CHANGED ON' fields of base tables. Then we can upload these consolidated records, via Full Repair Requests , to BI data targets. So documents are not permanently lost.
    Yes. Antyime later you can retrieve the records even if you missed at the time of loading.
    Hope it clears your doubts.
    Thanks.

  • How do I get a PDF document put into an attachment form that I can drag to an e-mail.  Usually I get an icon showing an spiral note book which then becomes an attachment when I drag it to the e-mail, but occasionally it stays in PDF and prints out on the

    How do I get a PDF document put into an attachment form that I can drag to an e-mail.  Usually I get an icon showing an spiral note book which then becomes an attachment when I drag it to the e-mail, but occasionally it stays in PDF and prints out on the e-mail.  What have I done differently?

    Thanks again for the detailed instructions Srini!
    And I really hate to be a pest . . . but . . .
    Using your example and not modifying it, I get the e-mail form filled out correctly and the pdf attached, however, I'm not prompted to sign it.
    Any more clues?

  • How do I convert a pdf file to a word document so I can fill out a form

    hhow do I covert a pdf file into a word document so I can fill out a form

    If you are using Adobe Acrobat Pro all you have to do is open up your document and at the top left click on File and then click on Save as Other and then click on the first option Microsoft Word.

  • How to convert a word document to a fillable pdf form

    hello -
    how to I convert a word document into a fillable pdf form?

    Hi carolynm68845256
    Please browse this link for detailed instructions regarding your issue: Acrobat Help | Creating and distributing PDF forms
    Let me know if you face any challenges or if you have any other query.
    Regards,
    Rahul

  • How can I attach a document to the answering email form?

    How can I attach a document to the answering email form?

    Hi;
    I am not sure what you mean by the answering email form, can you describe a bit more what you are looking to do?  Do you mean the "Email Receipt" that you can set up so the form filler receives an email after submitting their form?
    Thanks,
    Josh

  • Populate sharepoint2013 document library coloumns using infopath2013 form

    Hi
    Is it possible to populate sharepoint2013 document library columns using Infopath2013 forms?
    A form created in info path is published to the document library.
    As default when you create a new form from the library - fill it and then you can save the form and are presented with pop-up-box where you type inn the filename. This data (Filename) is stored under the library  column "Name" for the form-file.
    However it would be terrific if the user also had to input data in the other columns . These columns are required* in the library.
    Im a total newb at infopath, any help would be much appreciated!
    And showing how would be very nice too!
    brgs
    bjorn

    By mapping fields on the infopath form to the sharepoint list/library (column type basic text), I could populate the metadata columns as i wanted.

  • Technical Document (Exact Procedures) To Migrate Forms/Reports 9i to 10g

    Hi;
    Where can i find the Technical Document (Exact Procedures) To Migrate Forms/Reports 9i to 10g?

    This seems to be a common point of confusion. The "FMw Upgrade Assistant" is a utility which helps you to upgrade the entire Application Server installation to a newer version (e.g. 11.1.x). This has nothing to do with your Forms (fmb, mmb, pll, etc) or Reports (rep, rdf, etc) applications. Generally speaking, I would say that using the UA is not necessary and likely should not be used in most cases. Cases where it should be used might include a situation where your previous version has been significantly customized and you don't know how or don't want to make the same customization in the new environment manually. Whether you are talking about a new product (Oracle or not) or even a new OS, generally your best bet is to start with a clean, new installation. Attempting to upgrade an existing version always comes with problems. Just one man's opinion ;-)
    As for your Forms application(s), there is a Forms Migration Assistant (FMA), explained in the Forms Upgrade Guide:
    http://docs.oracle.com/cd/E24269_01/doc.11120/e24478/toc.htm
    That said, just like using UA, it is always better to take the extra time and not rely on such tools if they can be avoided. In most cases, the FMA will not be needed. This is especially true if your application is coming from version 10. For older versions, using FMA might be beneficial.
    So, to the point, in order to move a Forms application (fmb, mmb, pll) from version 10 to 11 is as simply as recompiling your modules using the v11 compiler. That's it ;-)

  • Inserting/Embedding PDF documents to an SAP Adobe Form

    Hi all,
    We have a requirement to insert/embed an external PDF documents to an SAP Adobe Form.
    Please provide pointers in this regard.
    Thanks,
    Sandhya

    Tim, a change like this is really simple.
    Formcalc and javascript are pretty similar - when I started developing AIF a year ago, I knew nothing about either of them... not that I know a whole lot now...
    The Help in Livecycle designer is actually quite helpful when it comes to scripting. Also, there's a google group you can join where you can email questions for help.
    You would just call the form like you normall do. The code is placed INSIDE your form "under" your field. There is a script editor built in to Adobe - Click Pallettes -> Script Editor to see it.
    there are many events on which to place code - you will need to find an event that triggers early - such as Form:Ready etc...
    Here's an example I have with 2 radiobuttons and a text box. If my 'yes' radiobutton is chosen, I make my input box visible
    if ( yes.rawValue eq "1" ) then
    data.Page2.grp2.func.rb.ifyes.presence  = "visible"
    endif
    Same concept if my 'No' button is chosen
    if ( no.rawValue eq "2" ) then
    data.Page2.grp2.func.rb.ifyes.presence  = "hidden"
    endif
    Both of these scripts are in the "click" event of the radiobutton.
    Lastly, here's a link to a great resource on Scripting
    http://www.adobe.com/devnet/livecycle/articles/lc_designer_scripting_basics/lc_designer_scripting_basics.pdf
    Scripting, on a moderate to small scale, will make your life a bit easier. Don't try to do too much, otherwise you'll find AIF may be the wrong tool for what you're trying to do.

  • HT2534 i have a half-filled form for my apple id account & in it there is no option as NONE for credit card payment method. Now when i try to create a new account it asks me for a different email/apple id as my actual id already exists???

    i have a half-filled form for my apple id account & in it there is no option as NONE for credit card payment method. Now when i try to create a new account it asks me for a different email/apple id as my actual id already exists???

    If you want to use the email address that you used on the first account then you will need to remove it from that first account before you can do so e.g. via the Store > View Account menu option on your computer's or via http://appleid.apple.com - you can create a new email address via http://gmail.com or http://hotmail.com to replace it with.

  • I received a link to fill out a document on this site through email. However, when I click the link, it just directs me to my FormsCentral homepage and there are no documents for me to fill out. How do I find this document or stop myself from just being r

    I received a link to fill out a document on this site through email. However, when I click the link, it just directs me to my FormsCentral homepage and there are no documents for me to fill out. How do I find this document or stop myself from just being redirected to my homepage?

    Greetings,
    I've never seen this issue, and I handle many iPads, of all versions. WiFi issues are generally local to the WiFi router - they are not all of the same quality, range, immunity to interference, etc. You have distance, building construction, and the biggie - interference.
    At home, I use Apple routers, and have no issues with any of my WiFi enabled devices, computers, mobile devices, etc - even the lowly PeeCees. I have locations where I have Juniper Networks, as well as Aruba, and a few Netgears - all of them work as they should.
    The cheaper routers, Linksys, D-Link, Seimens home units, and many other no name devices have caused issues of various kinds, and even connectivity.
    I have no idea what Starbucks uses, but I always have a good connection, and I go there nearly every morning and get some work done, as well as play.
    You could try changing channels, 2.4 to 5 Gigs, changing locations of the router. I have had to do all of these at one time or another over the many years that I have been a Network Engineer.
    Good Luck - Cheers,
    M.

Maybe you are looking for