Simple use of subpanels?

I've almost given up on finding a simple way to use subpanels.  What I want is very simple--to have the FPs of a few VIs on tabs within a single main FP in order to reduce the clutter.  But what I'm finding is that apparently I'm not supposed to use the VI icons and their connector panes on the BD if I use subpanels.  The necessary overhead is fairly intimidating:
1. This entire thread
2. Message 18 of this thread
3. This entire thread (brace yourself)
I tried in a simple example (attached) to just use the connector panes, but I'm guessing it's incorrect (at least theoretically), because nobody seems to do it.  Moreover, if I try the same thing with my real VIs, the entire thing hangs when I press buttons in VIs that are not running.  Should I abandon this approach or can it work?
Am I missing something, or is it really non-trivial to use subpanels?  It would be a shame if such a simple need can only be met with advanced concepts. 
Thanks!
Attachments:
main VI.vi ‏8 KB
subVI 1.vi ‏22 KB
subVI 2.vi ‏22 KB

Hi Bracker,
I've not used Sub Panels before, but I just had a play around with building an application reference and wiring that into the Sub Panel and this seems to produce a working Sub Panel. My VI will work if you reference an application within the same folder directory. Is this what you wanted?
Please download the attached VI to see the implementation (The snippet above is a little unclear). Hope this helps.
Alex Thomas, University of Manchester School of EEE LabVIEW Ambassador (CLAD)
Attachments:
Subpanel.vi ‏8 KB

Similar Messages

  • BUG in SelectBooleanCheckBox component binding Simple Use Case

    I have a table called Customer have four fields. Id, Name, Gender, Regular.
    The sample data is
    --- 23, Mark, M, Y
    --- 26, Fiona, F, N
    I want to show an updatable form to the end user for the same using ADF. The UI components for Name, Gender are OutputText and Regular is SelectBooleanCheckbox (Y is checked and N is unchecked)
    I do the following steps
    a) Create an Entity Object
    b) Create a View Object and add YesNoLOVaccessor to the View object as per this post for SelectBooleanCheckBox
    http://theo.vanarem.nl/2010/07/07/adf-checkbox-representing-a-yes-or-no-value/
    c) Test the same using Business component tester, the model for Customer query shows up with Regular as a checkbox. Browsing through the data gives correct data for checkbox in BC tester.All good till this stage
    d) Next I drag the Customer Viewobject instance in the data control to the JSPX page and add as ADF form including navigation controls. I use the Next control to browse
    First record shows up as 23, Mark, M, Y and then click next to go to next record it shows up as 26, Fiona, F, Y instead of 26, Fiona, F, N
    Oracle please confirm if this is a bug or I am missing something here
    Thanks
    Edited by: user5108636 on Jan 10, 2011 4:43 PM
    Edited by: user5108636 on Jan 10, 2011 4:45 PM
    Edited by: user5108636 on Jan 10, 2011 4:46 PM
    Edited by: user5108636 on Jan 10, 2011 4:46 PM

    Thanks I resolved it now, I am not complaining but the lack of use cases on internet for simple things does make things difficult and frustrating. I modified the ViewRowImpl java file to convert the 'Y' value as true and 'N' value as false as below.
    public String getCheck() {
    //return (String)getAttributeInternal(CHECK);
    String value = (String)getAttributeInternal(CHECK);
    String returnValue = null;
    if ("Y".equals(value))
    returnValue = "true";
    else
    returnValue = "false";
    return returnValue;
    public void setCheck(String value) {
    //setAttributeInternal(CHECK, value);
    String dbValue = null;
    if ("true".equals(value))
    dbValue = "Y";
    else
    dbValue = "N";
    setAttributeInternal(CHECK, dbValue);
    However as per best practice can I have a helper method to do the conversion. I use this checkbox code for around eighty checkboxes. What's the best practice.
    Thanks

  • Simple use of variables in query

    Hi,
    i've just started using PL/SQL and as a long time user of TSQL the syntax is a bit confusing for me. I'm trying to test a simple query - using a variable to select some rows from a table. Lest assume that we have a table with data from different days and we want to view data from specific day.
    I could use:
    SELECT * FROM TABLE
    where TRADE_DATE = '2010-10-23'
    but what i would like to do is to pass the date value as a variable, in TSQL i'd just write:
    declare @trade_date datetime
    set @trade_date = '2010-10-23'
    SELECT * FROM TABLE
    where TRADE_DATE = @trade_date
    Could someone help me and write the last query using PL/SQL syntax?
    Also - it there some kind of a tutorial for people like me? comparison of simple queries written in both languages? tried to google it but didn't have luck.

    There are a couple of differences besides variable syntax. The variable would look like this in PL/SQL:
    declare
        v_trade_date date := DATE '2010-10-23';
    begin
        select * into ?????  -- see below
        from   table
        where  trade_date = v_trade_date;
    end;However the next difference is that PL/SQL does not implicitly return result sets to the client application, so you either have to select <b>into</b> a PL/SQL variable, or process the values in a loop, or explicitly return a ref cursor (or just do the processing in SQL statements within the procedure, without returning anything). I don't know much about T-SQL but I have the impression that in Oracle there is a stronger distinction between SQL (the interpreted query language) and PL/SQL (the compiled programming language) than the equivalents in SQL Server. Saubhik's example above is not PL/SQL (which you asked about) but plain SQL.
    Using the example of SQL*Plus, you might use a ref cursor like this:
    var r refcursor;
    declare
        v_trade_date date := DATE '2010-10-23';
    begin
        open :r for
        select *
        from   test_table
        where  trade_date = v_trade_date;
    end;
    print :ror
    var r refcursor;
    create or replace procedure p (p_out_results out sys_refcursor)
    as
        v_trade_date date := DATE '2010-10-23';
    begin
        open p_out_results for
        select *
        from   test_table
        where  trade_date = v_trade_date;
    end p;
    set autoprint on
    exec p(:r)Edited by: William Robertson on Oct 24, 2010 5:31 PM

  • Simple use of iCal

    I have 3 questions. I assume you want 3 separate posts. For reference, the other 2 subjects are: "Can't add eventl" and "Color coding etc."
    In searching for answers it appears most of the questions regard synch and communication of iCal between multiple devices. The possibilities seem to be quite complex. Is there a better calendar to use for basic, one computer, simple calendar use? All I want to do is keep track of appointments and print a page to post on the fridge.
    Sorry to be so ancient sounding but there are still a few of us living in the 20th century.
    Thanks
    Geoff

    Most users of iCal have no problems. If you are not syncing or communicating with other devices you won't have those problems. Stick with iCal.
    AK

  • Reading something simple using 60870.5

    I'm new to IEC 60870.5.  I need to read data using this protocol.
    I have the IP Address of the machine that has access to the data.  I guess that is called the Master (?). I was given a document with a bunch of "104 Addresses".  I'm guessing those are "IOA"s (?). The same document I mentioned has a couple of other numbers that seem to apply to several of the "104 Addresses".  They are labeled "Nr." and "Number".  I'm guessing those are "ASDUs" (?).  Unfortunately I don't have much access to the folks who actually put that doc together.
    One of those 104 Addresses is for a measurement labeled "AC voltage". I believe the value is simply a DBL. To read it I built a VI (snippet attached), except I don't know what to insert where the Question Mark is.  Can someone suggest what goes there?  I tried using the "Read Parameter.vi" function but that generated error -355269 stating "NI-Industrial Communications for IEC 60870-5:  This type of points does not have parameters."
    I tried following the examples, but I got confused. Probably just me!
    Thanks in advance for any help!

    Hi AkashSharma,
    Indeed the VI examples are a much better starter than making it on your own when you are not very familiar with the protocol.
    There is no "Read Sing Point".
    The NI IEC 60870-5 toolkit only has the controlled station part of functions. A controlled station (or server, slave) writes data to the Controlling station (or client, master). The controlling station gives commands to the controlled station, and monitors for points on them.
    Check out the Commands VI palette, and you'd find Read Command.vi.
    The Single means point type. Check out the VI context help and detailed help for a list of point type definitions.

  • Simple Use Bean ,,,..

    Hi ....
    Okay ...my web page actually got 2 radio button and 2 use bean .
    Each radio button got it own " on click "so when i click on first radio ,i want to invoke the first use bean and second radio button to invoke the second button .
    Is that anyway i can do it ..please reply.

    In order to achieve this you have to submit the form that includes your radio button to the same page.
    samepage.jsp
    <%
    if(btn1.equals("btn name"){
    //first use bean tag}
    else{
    //second use bean tag}
    %>
    <form method="post" action="samepage.jsp" name="radioTest">
    <input type="radio" name="radio1" onclick="document.radioTest.submit()">
    <input type="radio" name="radio2" onclick="document.radioTest.submit()">
    </form>

  • SImple use crashes GB.

    Sorry if this seems dumb, but I don't work in GB often...it's usually Digital Performer.
    Tried to record two tracks simultaneously, last night; audio track from my MOTU 896 and an internal sound track from GB. Fatar controller, with Kurzweil sound module outputs going into the 896, and the MIDI out from the setup, going into a MOTU MIDI/USB converter, into the MDD G4, and recording an internal sound ('Aquatic Sunbeam', if you're interested). I could record, but when I'd RTZ to try and play back, I get the beach ball. Every single time.
    Did the usual permission routine. I have almost 2G RAM in the machine. OS 10.3.9 (no, I'm not going to go to Tiger on this machine...I have too much stuff on it that's Panther-oriented, and it runs really smoothly, current topic notwithstanding.)
    Not ever having tried this before--I usually only record one track at a time, and I'm good with it--I'm wondering if there's a setting somewhere that I've overlooked or munged up, somehow?

    Most users of iCal have no problems. If you are not syncing or communicating with other devices you won't have those problems. Stick with iCal.
    AK

  • HH4 - most simple use of 5GHz wireless / Sonos net...

    I've got a Sonos audio device and have set up its network - https://sonos.custhelp.com/app/answers/detail/a_id/126/kw/mesh
    With the 5GHz setting too, that means in terms of networks on my devices I see:
    [Home network name] - the 2.4GHz variant
    [Home network name]5 - the 5GHz variant
    [Sonos]
    [BTWifi] (or sometimes [BTFON] I think)
    From what I can gather, there's no way of stopping the last come up as a network to connect to (unless someone here can advise differently), but what is the optimal way to get my devices connecting? 
    My main machine is a Mac, and I'm also connecting a PS3, a couple of Windows 8 machines and a couple of Android phones.
    To further compound things, I have a TP Link Repeater TL-WA901ND as the signal at the back of the house is really poor (HH4 is at the front).
    What I *want* to get to is a set up where my allowed devices (obviously) will connect to the strongest and most appropriate connection point, rather than me having to specifically select them (in my office, for example, we have extenders all over the place and I don't need to change selection as I walk around). As I have to do this manually, I must be making some daft error - can anyone give me any pointers?
    Thanks in advance!

    Hi there. Sorry for delay in replying - my whole connection went down (unrelated) and the Openreach engineer has just been out to fix it!
    I've been looking at this thread regarding extenders too - http://community.bt.com/t5/Other-BB-Queries/TP-Link-WA701ND-Universal-Repeater-and-HH/m-p/742770/hig...
    It seems like in that instance the gateway IP was set to 0.0.0.0.
    My current set up on the TL-WA901 is:
    Universal repeater
    Static IP (on the same subnet) of 192.168.2.10 (HH is 192.168.2.1)
    Subnet mask - 255.255.255.0
    Gateway 192.168.2.1
    Channel 6 (same as HH, which is fixed on that channel)
    Channel width 20MHz
    DHCP off
    MAC of AP is correct
    Security is in WPA-PSK/ WPA2-PSK mode
    Version - auto
    Encryption - auto
    PSK password - same as on my HH
    And I have an ethernet cable connected that is also connected to the HH.
    Have I missed something out or made a mistake? The gateway, for example?
    Thanks!

  • Using a VI explicity and as a subpanel in the same code?

    I realize this message is somewhat long, so skip to the bold portion if you are faint of heart.
    I am attempting to use a Subpanel (for the first time) to simplify
    maintenance and compiling of my application.  A subpanel should
    allow me to only have to build one executable that behaves in different
    ways, rather than building separate executables which is what I have
    done in the past.  This is time consuming and
    prone to error, so I was really hoping subpanels would be the easy
    answer.  I have read nearly all posts pertaining to subpanels, but
    I still can't get my head completely around the concept.
    I have a VI that I want to display/run normally when the application is
    configured in non-emulation mode (via config file), but I want to
    display the same VI as a subpanel of another "wrapper" VI if the
    application is configured in emulation mode.  The "wrapper" VI
    simply contains boolean buttons that simulate physical buttons on a
    real device.  The VI will not be used in both ways at the same
    time, just whichever mode it is configured for.
    My attempt at this has been to create a case structure in which the
    FALSE case calls the SubVI directly (placed statically on the block
    diagram), and the TRUE case calls a different VI (the wrapper) that has
    a subpanel containing the SubVI.  It doesn't seem to be a problem
    getting the SubVI to display in the subpanel, but the RunVI invoke
    method on SubVI fails with "Error 1000: The VI is not in a state
    compatible with this operation."  I suspect this is due to the
    fact that the VI is loaded in memory already (from the static
    placement) somehow.  But as long as the VI isn't running before I
    invoke the RunVI method (which it won't be), why won't it work?
    What is the best way to accomplish what I need?  I know there are
    a few things I can try (such as making it re-entrant or making all
    calls to SubVI dynamic), but they all seem to have their own downfalls.
    Thank you in advance,
    Phish ><>

    I agree that reentrancy isn't the best answer.  And in my case, it
    isn't an answer at all since keypresses aren't dealt with.
    In my WrapperVI, I was passing the SubVI name as a string to the Open
    VI Reference.  Since, at the time, I had the SubVI statically
    placed in the MainVI, it was loaded into memory already.
    So I guess you are right:  I will not be able to do it that way
    and I'll need to open the reference with a path at both points in code
    (where I call the SubVI directly, and where I call it in the
    WrapperVI).  That is where the "unclean" code is going to come
    in.  I'll have to use two comepletely different, non-correlating
    paths depending on whether I'm running the code in the development
    system or in the run-time engine.  I do have a VI that I use to
    properly determine the path to the top-level VI whether it be in an
    LLB/EXE or not, but that won't keep me from having to use some
    hard-coded paths.  I hate hard-coded paths.
    I'll try it out and experiment some.  Thank you for your help so far.

  • Need simple mute button using Checkbox

    Hi, this is probably very simple (using MX04).
    I've got an instance of a Checkbox called soundFXButton.
    Simple sound effects are triggered in various frames, I want to
    check the state of soundFXButton before playing each sound as
    follows:
    if {not{soundFXButton.selected}} {
    soundFX = new Sound();
    soundFX.attachSound("ANGELS_F.WAV");
    soundFX.start();
    When I publish I get the following:
    **Error** Scene=Scene 1, layer=ActionScript, frame=1:Line 1:
    '(' expected
    Anyone see what I'm missing? I new to AS syntax. Do I really
    need to create a listerner handler for something this
    simple?

    Never mind, I got it ... () not {}, duhhh.... ;-)

  • Any way to show a subvi's frontpanel within its parent with out the cumbersome "subpanel"?

    I'm writing an application, where several loops are running in parallel (e. g. read sensor data, receive UDP packets, send UDP packets, wait for input). Except for some configuration data, the loops are completely independent from each other (occasional communication is done via queues). Each of the loops will run indefinitely until told to stop by commands to a queue and is in its own subVI (otherwise the main blockdiagramm just containing the overall state machine would start to grow outside the screen, which is even worse than having to scroll in a text based language). Each of the subVIs also shows some information (status, sensor data, graphs, debugging).
    So the big question is: how can I show all these subVIs information in a single window?
    Using the "subpanel"-container is pretty much out of question. It adds almost as much clutter to the blockdiagram than the loops would do themselves (with "create vi reference", "insert vi", "run vi", "remove vi"; and that for every parallel subVI) and makes the code harder to maintain. Even worse, Labview is no longer able to tell me if one of the subVIs is currently broken (e. g. because there was a change in a typedef that requires changes in a subVI) until I run the complete program (or open each of the subVIs individually). Getting parameters into and out of the VIs isn't easy either that way (no more simple terminals).
    I thought about making the subVIs' appearance titlebar-/menu-/borderless and floating and hardcoding a pixel position for all of them. But I can't really control what resolution the PCs running this program will have. So I fear they will be all over the place with no possibility for the user to move them around. This would also mean the main windows would always have to stick to the top left, which in itself would annoy users.
    I remember having this problem already. My solution at this time was to make a copy of every frontpanelobject of the subVIs on the main VI (thereby cluttering the blockdiagram with heaps of unconnected terminals), creating a reference to that object, bundling them all together and writing it in a global variable. Then every subVI would pick out the references it needed and change the value with the value property node. Globals and changing the value per reference both being pretty bad Labview practice, it was still more manageable than dynamic calls to subVIs (which the subpanels comes to, although it shouldn't be needed). What making this approach not very practical this time, is, that some of the subVIs (and what they show) may be developed by other developers. This would mean for every frontpanel object they add/change/remove a reference needs to be added/changed/removed. While the reference list will be it's own cluster typedef, still all other subVIs will have to be updated, too.
    Maybe I missed something. But is there really no simple option like "show frontpanel when loaded at this position within parent frontpanel"? Would make things soo much easier and way easier to maintain.

    mikeporter wrote:
    I'm sorry I'm not aware of any "cumbersome" subpanels - unless of course you don't know what you're doing. There is this wonderful invention called a "subVI" that can be used to organize and simplify your code, or are they too "cumbersome" as well? You should really learn a bit about what you are pontificating over before you start running off at the mouth.
    Mike...
    I didn't want to step on your toes. No need to get personal.
    Subpanels make some additional code necessary that hasn't got to do anything with the actual program. And I AM using subIVs as I wrote in my first post, which is exactly the root of the problem.
    Nevertheless I now solved it in a way that comes close to what I wanted. I don't know if some of you meant your suggestions to be understood that way (at least I didn't ). The subVIs will now "insert" themselves (via invoke node) into a subpanel on the main vi, which they are given a reference of at call. This adds minimal aditional code, especially on the main VI which I want to keep as clean as possible. By clustering the panel reference into the parameters the subVIs are already given (not used in the example I attached below), there isn't even a change on the terminals of the subVIs.
    I got to check now if this works well with event structures within the subVIs or if it can create the same problems like multiple event structures within a single VI.
    So no global variables anymore and no writing values by property node. I don't know if this just wasn't possible in previous Labview versions I had a try at that (I guess it was 8.6 and/or 2009) or I just didn't come up with the idea back then.
    And if the text wasn't that helpful, here are two screens:
    Parent VI:
    SubVI:
    Attachments:
    main.png ‏2 KB
    subvi.png ‏5 KB

  • Debugging with Subpanels

    I am building an application that uses two subpanel controls in its front panel. The main purpose of these is according to the logic of The LabVIEW Style Book: simply to reduce the complexity of the Main VI's block diagram, to keep it at least somewhat readable and manageable.
    The program runs fine, but is beastly to debug for several reasons:
    1. There seems to be no way whatsoever to use debugging tools on a VI running inside a subpanel. At least, LabVIEW has resisted every effort on my part to open the block diagram of a VI running in this matter. Am I right? Or is there some way to do it anyway.
    2. Is there some way, through the use of clones or whatever, to allow a subpanel to operate even if its VI is already open in the editor?
    3. If my program crashes or I have to use the abort button, the VIs running in the subpanels do not stop! And next time I run, I will see the message, "LabVIEW: The VI is not in a state compatible with this operation. Method name:  Run VI." This gets really tedious and annoying. I wonder, is there a way, as my program starts a second time, to have it hunt down and kill any previously open or running instances of those VIs?
    Dear designers of LabVIEW, if you're listening: subpanels are great idea for program cleanliness and organization. But the need to use VI Server to set them up is terrible! Too much machinery required, and too hard to debug. Please, could we have a simpler, cleaner mechanism for the case of subpanels that only ever run one VI?
    Ken

    Hello,
    In regards to:
    1) I have found that putting breakpoints in the subpanel code will make the block diagram appear separate from the instance of the subpanel
    2) This I have not been able to do, which is why the above workaround was used
    3) You can use Application.All Vis in Memory property node to find those VIs, recursively get the references to them and them use the Abort Method upon them. We've built an "Abort all runing Vis'" program that we just keep on the desktop for this purpose (again only for Abort cases). I have also created a LV2 stop global that I can call on program start, which would stop all Vi's into which it is incorporated. A little extra work, but it helps a lot.
    -Mello
    Data Science Automation
    CTA, CLA, CPI
    SHAZAM!

  • CR Server 2008 / Using openDocument interface with a no-logon wrapper

    Hi, all!
    I had a problem with the openDocument.jsp interface and a no-logon wrapper which took me quite a while to figure out. I'm now posting these results here in the hopes that someone else will find them useful. Of course, if anyone has input how to improve the solution, it's also welcome!
    The system on which this was developed and tested was a vanilla Crystal Reports Server 2008 installation on Tomcat / MySQL / Windows Server 2003.
    The problem was that calls to openDocument interface left sessions open and this quickly led to the situation where all the concurrent access licenses (CALs) were used. It seemed nondeterministic when a session was released; it could have been minutes or hours.
    The solution: write a HTTP session timeout listener which logoffs the CRS-backend session. (The code below has still some dubug output enabled.)
    package fi.niscayah.util;
    import com.crystaldecisions.sdk.framework.IEnterpriseSession;
    import javax.servlet.http.*;
    import java.util.Date;
    import java.util.Enumeration;
    import java.text.SimpleDateFormat;
    public class KillSession implements HttpSessionListener
        public void sessionCreated(HttpSessionEvent event)
            debug("sessionCreated()", event);
        public void sessionDestroyed(HttpSessionEvent event)
            HttpSession session = event.getSession();
            try {
                java.util.Enumeration name = session.getAttributeNames();
                while (name.hasMoreElements()) {
                    String attributeName = (String)name.nextElement();
                    Object attribute = session.getAttribute(attributeName);
                    if((attribute != null) && (attribute instanceof IEnterpriseSession)) {
                        debug("  attribute : " + attributeName);
                        debug("  type      : " + attribute.getClass().getName());
                        IEnterpriseSession ies = (IEnterpriseSession)attribute;
                        ies.logoff();
                debug("sessionDestroyed()", event);
            } catch (Exception ex) {
                debug("sessionDestroyed() exception");
        private void debug(String msg)
            SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
            String timestamp = sdf.format(new Date());
            System.err.println("[KillSession] [" + timestamp + "] " + msg);
        private void debug(String msg, HttpSessionEvent event)
            HttpSession session = event.getSession();
            String id = session.getId();
            String context = session.getServletContext().getServletContextName();
            debug("[" + context + "] [" + id + "] " + msg);
    (If you want to test the above code, create a .jar package out of it and put it in webapps/OpenDocument/WEB-INF/lib.)
    Next we need to register our listener. I noticed that the openDocument-webapp's web.xml-file already contained a listener definition that claimed to expire enterprise sessions on HTTP timeout. I never saw such results; I tested it by registering my own listener, which only outputted debug information, and then when ever a session timeout happened, I checked the amount of licenses in use via the CMC - it never dropped predictably.
    So, comment out the SessionCleanupListener and add KillSession.
    <!-- SK: Added own listener. -->
    <listener>
        <listener-class>fi.niscayah.util.KillSession</listener-class>
    </listener>
    <!-- SK: Commented out. -->
    <!-- SessionCleanupListener is used to expire the EnterpriseSession when the web session is timeout -->   
    <!-- <listener>
        <listener-class>com.businessobjects.sdk.ceutils.SessionCleanupListener</listener-class>
    </listener> -->
    After the above, change the HTTP session timeout to something more suitable. If you're creating really big reports, one minute might be too little. Also notice, that the value is an approximation. The timeout event might happen just as one minute has passed, but usually it takes more.
    <session-config>
        <session-timeout>1</session-timeout>
    </session-config>
    Now we're good to go and test the openDocument interface. The result should be that every time a HTTP session timeouts, an enterprise session (which was initialized via the openDocument call) is logged off.
    Next the no-logon wrapper.
    I found a lot of examples for logging in automatically, but every one of them exhibited a strange behavior (at least when used in conjunction with the openDocument interface) where the session count was increased by two. A lot of head scratching later, the solution below was devised.
    <%@ page language="java"
        import = "com.crystaldecisions.sdk.framework.CrystalEnterprise,
                  com.crystaldecisions.sdk.framework.IEnterpriseSession,
                  com.crystaldecisions.sdk.framework.ISessionMgr,
                  com.crystaldecisions.sdk.exception.SDKException"
    %>
    <%
    ISessionMgr sessionManager = CrystalEnterprise.getSessionMgr();
    IEnterpriseSession entSession = sessionManager.logon("Guest", "", "<server>:6400", "secEnterprise");
    String entToken = entSession.getLogonTokenMgr().createWCAToken("", 1, 1);
    // So that this can be logged off when the session timeouts
    HttpSession httpSession = request.getSession();
    httpSession.setAttribute("nologon_SESSION", entSession);
    String query = request.getQueryString();        
    String redirectURL = "http://<server>:8080/OpenDocument/opendoc/openDocument.jsp?" +
        query + "&token=" + entToken;
    response.sendRedirect(redirectURL);
    %>
    You can put the above .jsp-file where you like, but I dropped it in webapps/openDocument, since it's no use by itself.
    The use of nologon.jsp is simple: use it as you would openDocument.jsp.
    And there you have it. A word of warning though, if you're not sure what you're doing, I wouldn't recommend trying these things out. And you certainly shouldn't deploy these on a production environment.
    As said before, any input is welcome!

    I'll comment on the BusinessObjects Enterprise logon tokens that you may generate via the Enterprise SDK.
    DefaultToken - this is used for failover - i.e., if the original EnterpriseSession object is destroyed without having logoff() method invoked, the failover can be used to re-connect to Enterprise without redo-ing authentication.  This token is immediately invalidated with EnterpriseSession.logoff().
    CreateLogonToken - token represents an EnterpriseSession independent of the original EnterpriseSession that generates it.  So you should generated the CreateLogonToken and log off the EnterpriseSession before using the token, or you'll have two licenses being used.
    CreateWCAToken - the Web Component Adapter token - this token is tied to the EnterpriseSession used to create it.  If this EnterpriseSession is invalidated, the WCA token can no longer be used.  Since this is essentially re-use of the original EnterpriseSession, license count is not increased with its use.
    So in your application, you're generating the WCA Token, and using the Session Listener to explicitly log off the originating EnterpriseSession.  The SessionCleanupListener is for cleaning up sessions created within InfoView on Web Application Server Session timeout.
    Sincerely,
    Ted Ueda

  • Is it too much to ask MS for a simple ad-hoc query tool for end users?

    Hello
    This is a general MS BI topic and not specific to Power Query, but I couldn't find a more suitable general forum for it.
    This posting is the result of the frustration I have with MS BI stack, whereby a simple ad-hoc drag and drop query tool to get the data in a table format (preferably from a relational
    data source) is missing, something that other big vendors have, such as SAP Business Objects Universe and the associated tools. The deprecated SSRS Report model and SMDL was the closest MS ever got to this functionality (although that had some limitations
    too), which unfortunately is dead now in favour of all sort of "Power" tools that basically can’t deliver the same functionality.
    The requirement is pretty simple: provide users with a tool that they can drag and drop fields from different entities in a data model without having to worry about entity relationships and
    apply necessary filters and get the data out in Excel or CSV, no fancy (or even simple) aggregation or formatting is required, and users should only see the rows they are authorized to see, i.e. row level security (RLS) of data.
    Let’s see what we have at our disposal from MS BI:
    From the modeling perspective, we have relational models in the database that support RLS with views, but obviously cannot maintain PK-FK relationships in the database model between views. Other
    models are .Net Entity Data model Framework model exposed as OData, and SSAS tabular, SSAS PowerPivot, SSAS multidimensional, which you can find a good comparison of their features here:
    http://www.sqlchick.com/entries/2012/3/4/decisions-powerpivot-ssas-tabular -or-ssas-multidimensional-m.html
    From the tools perspective we have:
    Power Query on top of a relational database (SQL Server): Can connect to relational databases easily, generated queries are optimal, detects relationships with entities, but only when entities
    are tables and have PK-FK relationships enforced in the database. So can’t detect relationships with views and hence can’t enforce RLS, so this is not an option unless users keep joining entities, which is not a desirable option either.
    Power Query on top of an OData: Works well except that queries generated for multiple entity expansion are terrible (look here for more details:
    http://social.technet.microsoft.com/Forums/en-US/7a8b8e52-d3a9-42af-bc52-9d5459c00529/odata-multilevel-expand-query-issue?forum=powerquery). In addition all filtering and projections are done at client side, so even if you want 1 row out of 1 million, all
    rows are brought over to Excel before filtered. Overall this results in unacceptable performance even for small sized data.
    Power Query on top of a tabular model: Doesn’t support that type of data source yet (http://social.technet.microsoft.com/Forums/en-US/ebcccb5e-7058-4046-917d-3d7fcf60cbdc/tabular-model-as-data-source-for-power-query?forum=powerquery).
    Even if it did, tabular models don’t support Many-to-Many relationships out of the box and not sure if there are plans to support tabular models in Direct Query mode in Power Query to take care of RLS.
    Excel on top of tabular models or multidimensional models: The tabular model should not be in Direct Query mode and you only get to use PivotTable to query the model. PivotTables are not famous
    for generating optimal MDX queries, so performance is not going to be acceptable if you are dealing with large dimensions, especially large junk and degenerate dimensions. You can use drilltrough to get details of a measure, but you have to specify the columns
    for a drilltrough action upfront, no flexibility for users to select what they want to see.
    PowerPivot on top of relational databases: The query designer cannot detect relationships between views, so users have to perform manual joins, not an option.
    PowerPivot on top of a multidimensional or tabular model: The query designer doesn’t generate optimal MDX queries by drag and drop. Especially there doesn’t seem to be a way to add related
    attributes of a dimension attribute to the query without cross joins which results in poor performance on large dimensions. Other issues found here
    http://sqlblog.com/blogs/marco_russo/archive/2010/08/24/using-ssas-2005-2008-as-powerpivot-data-source-query-designer.aspx. In addition the result set has ugly column names and issues with data types, such as interpreting numeric data types as Text, and
    there’s no straight forward way of getting the data from PowerPivot directly to Excel. The user either has to do a copy/paste (which doesn’t work on large datasets) or create a pivot table, bring the measure, and drillthrough the measure to get the details
    in table format.
    PowerPivot with OData: Treats every entity as a separate table to import, not suitable for our use case.
    Report Builder and SSRS on top of relational, multidimensional or tabular model: Given the query designer is the same as PowerPivot, it has similar issues. In addition, there are 4 more steps
    from designing a query to generating an Excel or CSV output, not an option.
    PowerView: Works against tabular and multidimensional models, but there’s no way of exporting data to Excel sheet. Besides the add-in is not available for Excel 2010.
    Good old MS-Access: Link to tables and views through ODBC, create relationships between entities and give each user a copy of that Access database to create their queries, and deal with the
    nightmares of updates to the model and distribution of new models to the users! Did I mention Access as an option?
    So there you go, 10 options, none of which can deal with a seemingly simple use case sufficiently. At the moment, the best among them appears to be option 6 against a heavily optimized OLAP
    cube, and perhaps #3 when/if Power Query support for tabular models in direct query mode arrives. Perhaps I am missing something very obvious, and would like someone to enlighten me here.
    Thanks
    MR

    Hi, as far as I can infer, that term means it's not loading any resources until needed, opposite of this...
    -bind_at_load
                     Sets a bit in the mach header of the resulting binary which tells dyld to bind all symbols                when the binary is loaded, rather than lazily.
    https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/ man1/ld.1.html
    Load resources lazily.
    You should never load a resource file until it is actually needed. Prefetching resource files may seem like a way to save time, but this practice actually slows down your app right away. In addition, if you end up not using the resource, loading it wastes memory for no good purpose.
    http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneos programmingguide/PerformanceTuning/PerformanceTuning.html
    And, higher OS versionsare even worse with Bonjour/mDNSResponder, but might see this...
    http://support.apple.com/kb/ht3789

  • Creating A File Resource Using Tomcat JNDI

    Hi guys,
    My problem is that I am creating a web service and I cannot get to a properties file without creating an absolute reference to that file. If I was creating a servlet I would simple use getServletContext() method to get a relative reference to it. However since it is an axis web service i have to deploy my applications in the WEB-INF/services directory, and because it does not interact with the axis servlet I cannot use getServletContext(). So i thought I could create a JNDI file resource reference in the tomcatHome/conf/context.xml file, similar to how I created a JNDI connection pool. The resouce definition looks like this;
    <Resource name="resource/dialogueEngineConfig" auth="Container"
                      type="java.io.File"
                      url="file:/Applications/apache-tomcat-5.5.1/webapps/axis2/META-INF/DialogueEngine.properties">
    </Resource>now I tried to access the resource in my code like this;
    // Obtain our environment naming
    Context envCtx = (Context) new InitialContext().lookup("java:comp/env");
    // Look up our file
    File  f = (File) envCtx.lookup("resource/dialogueEngineConfig");However I get a NamingException; 'Cannot create resource instance'
    I don't understand why I cant create a file resource in JNDI, it seems like a simple enough thing to do. Am I doing something wrong or missing something? Any help would be greatly appreciated.
    Thanks

    Hello xalien,
    I have the same problem. I need to access external xml config file via JNDI from my servlet, running on Tomcat 5.0.28. Have you manage to define an URL resource? If so, please provide an example how to do it. Many thanx.

Maybe you are looking for

  • Mail and AOL

    I have an older iMac on my home network connected via Airport to my main Macbook Pro. The older is running 10.4.11 with Mail 2.1.1. My trouble is getting an AOL email address to work in Mail on the older iMAC. Mail will not connect. I have previously

  • "Get Started" URL is rejected and XE database does not appear to start

    Hi, Brand new to Oracle, so I apologize for my ignorance. Have spent 3 days trying to launch the Get Started URL that Oracle puts on my desktop, or connect with Rapid SQL. I've spent all day today trolling these forums and am unable to resolve this i

  • Download fails

    Hi, Just reporting a problem with a downloading link. I'm trying to download JDeveloper 10g (10.1.2.1) from http://www.oracle.com/technology/software/products/jdev/htdocs/soft10g.html (jdev1012.zip (254 MB) - for Windows) The download starts fine but

  • Email server password reset

    I have Verizon Email on my phone, ipad, web-based (yahoo/verizon.net) and outlook iook.com.  At one time all were working but I think I reset a password and then only a few worked.  I have tried new password on all, changed back to the old password o

  • Intel AMT and Intel Small Business Advantage

    I am trying to enable Intel AMT.  When I run the ACU Wizard, I receive the following message: How can I disable/uninstall SBA? If it is not possible to disable/uninstall SBA, how do I enable Intel AMT using SBA? Many thanks.