"Open VI Reference" Option "Prompt user to find missing subVIs"

I am using "Open VI Reference" to dynamically load a VI. For the "option" control of the "Open VI Reference" node, I pass "0x10" or "10" in hexadecimal, which supposedly "prompt user to find missing subVIs." Nevertheless, I don't get a prompt message dialog when I intentionally pass an invalid or missing VI path. Instead I just get an Error Code 7. What does this option "Prompt user..." suppose to do?

Make sure you set the properties on the integer input into the “options” control to the “Open VI Reference” to be a Hexadecimal format (right-click on the “options” control input, select Format and Precision…, then select Hexadecimal). Now, if you re-run your VI and wire in a VI with a missing subVI, the Open VI Reference will appear with a dialog that will prompt you to browse to the missing subVI. This is exactly the same message LabVIEW displays when it attempts to open a VI and cannot find its subVIs.
I’ve attached a simple example program to demonstrate. Enter the path to the “number extractor.vi” as the VI to open. You should see a dialog prompt appear asking for the “Search 1D Array – Complete.vi”.
Hope this helps!
Attachments:
openVIRefExample.zip ‏20 KB

Similar Messages

  • Open VI Reference asking save option

    Hello,
    I am opening a VI reference to analyze the state of the VI and closing it back and repeating this process for the bunch of VI's in a folder.
    While closing the VI reference, it is throwing save dialog box for the some of the VI's, after closing the dialog only  it is analyzing the next VI. To stop this behaviour I have set the  Open VI reference Option to 0x20, but still it is coming. Please Give me some way to prevent this.

    Are there any additional dialogs?
    My assumption is, that those VIs are deriving from older LV versions and are not masscompiled to the current version you are using. Therefore, if you open the VI, LV developement environment will automatically recompile them, which will change the VI. So when unloading the VI, the developement environment will ask you to save unsaved changes (recompilation) of the VI......
    Using the parameter 0x2 for opening the VI reference only effects the loading (supress the search dialog for subvis, do not mistake that with the "Browse for SubVI" dialog!), not closing the reference.
    hope this helps,
    Norbert
    CEO: What exactly is stopping us from doing this?
    Expert: Geometry
    Marketing Manager: Just ignore it.

  • Open VI Reference Cant find Control

    Unless...
    Starting from the beginning, I am running LV2009. I am opening a reference to a functional global VI running on a remote computer to get the value that is in its' front panel indicator. I have two problems. The first is that when I use a string containing the VI name, it will not find the VI. When I use the full path to the VI, the Open VI Reference works fine. Annoying, but doable, as I only have about six FG to read and they are all saved in the same folder.
    Second problem, and the real reason for the post: I can get all control values as a variants without trouble by using Ctrl Val. Get All Method. But when I try to name a control in the (Ctrl Val. Get) Method, I get an error saying control can't be found.
    SO, I used property nodes to get the label text and checked to see if any were equal to the name of the control I am trying to read. It came up negative. So I created a list of the labels off of the Label. Text property node, and there sits the name I just checked for. So I copy and paste this back into the constant that is wired to the Control Name input on the Ctrl. Val Get Invoke Node, and no error. What the ??? So then I delete the text that I pasted into the constant and retype and it still runs fine.
    I checked and rechecked enough to know that I was not typing the name in wrong, but now it works fine. I can close the VI and reopen it, works fine. Type in the name again. Still works fine. Any thoughts?
    Solved!
    Go to Solution.

    deskpilot wrote:
    Unless...
    Starting from the beginning, I am running LV2009. I am opening a reference to a functional global VI running on a remote computer to get the value that is in its' front panel indicator. I have two problems. The first is that when I use a string containing the VI name, it will not find the VI. When I use the full path to the VI, the Open VI Reference works fine. Annoying, but doable, as I only have about six FG to read and they are all saved in the same folder.
    Second problem, and the real reason for the post: I can get all control values as a variants without trouble by using Ctrl Val. Get All Method. But when I try to name a control in the (Ctrl Val. Get) Method, I get an error saying control can't be found.
    SO, I used property nodes to get the label text and checked to see if any were equal to the name of the control I am trying to read. It came up negative. So I created a list of the labels off of the Label. Text property node, and there sits the name I just checked for. So I copy and paste this back into the constant that is wired to the Control Name input on the Ctrl. Val Get Invoke Node, and no error. What the ??? So then I delete the text that I pasted into the constant and retype and it still runs fine.
    I checked and rechecked enough to know that I was not typing the name in wrong, but now it works fine. I can close the VI and reopen it, works fine. Type in the name again. Still works fine. Any thoughts?
    A trailing space in your original constant fits that problem description.
    May be helpful...
    If you know the data type of the data you are reading using the val prpererty node, you can use the "TO more specific" node to cast your refences to the proper type. After doing so your val will not be a variant and you can use the standard LV operators to work with the data.
    Ben
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

  • I am currently running a trial version of indesign. i am trying to make a cd booklet. when i open a new document and try to find 'compact disc' in the document presets, it isn't there. all i have for options are 'default and custom'. is it possible to ope

    i am currently running a trial version of indesign. i am trying to make a cd booklet. when i open a new document and try to find 'compact disc' in the document presets, it isn't there. all i have for options are 'default and custom'. is it possible to open the 'compact disc' preset from a trial version?

    Are you sure, Eugene? I have this option:

  • Script to check finding profile option at user level

    HI Friends,
    i want to find out
    script to check finding profile options at user level using sql in oracle apps 11i.
    Please suggest me.
    Thanks,
    DBA

    i want to find out
    script to check finding profile options at user level using sql in oracle apps 11i.Note: 470102.1 - How To Check If a Profile Option Is Set In Oracle Application
    Note: 201945.1 - How to list E-Business Suite Profile Option values for all levels using SQLPlus
    Note: 282382.1 - How to Search all of the Profile Options for a Specific Value
    Note: 367926.1 - How To Find All Users With A Particular Profile Option Set?
    Note: 282382.1 - How to Search all of the Profile Options for a Specific Value
    How To Set A System Profile Value Without Logging In To The Applications [ID 364503.1]
    How to Change Profile Option Value Without Forms [ID 943710.1]
    Thanks,
    Hussein

  • Creating Drop Down or Option selection for prompt user input.

    Hello,
    I wanted to know how can I create a drop down menu that has predefined values? I have the prompt user input vi. When it says enter voltage..i want the user should be able to select from a drop down menu values..also is it possible to have a predefined set of values from which a user can select...say 5 values are displayed and user selects one of them each time the vi is run...can this be realized..kindly help.
    Thanks.
    Ravi

    Hi Ravi,
    you can use a text ring  or a menu ring control located on the Ring and Enum on the control pallete.
    for a pre defined value you can edit that control to have what ever values you want from the user to input.
    You can change the menu option by right clicking on the ring control and choosing Edit items from the list and use the values you want.
    Regards,
    Nitin

  • New user here.  Trying to import iPhoto 9.4.2 libraries into Aperture 3.4.3 as referenced files. When accessing File Import Library, it finds the iPhoto library just fine, but then imports it as Master files. No option that I can find to leave the photos

    New user here.  Trying to import iPhoto 9.4.2 libraries into Aperture 3.4.3 as referenced files. When accessing File>Import>Library, it finds the iPhoto library just fine, but then imports it as Master files. No option that I can find to leave the photos in place on the file system.  All the literature says their should be an option to choose, but I never get that option.  What?

    All the literature says their should be an option to choose, but I never get that option.
    That has been true for the previous Aperture versions. Now Aperture simply treats the original image files exactly as they are in the imported library. Referenced images will stay referenced, managed will be imported as managed. But you can always relocate the imported managed images afterwards by using "File > Relocate".
    Regards
    Léonie

  • Whenever a prompt window opens, the first option is highlighted in blue. Tried restarting, but the problem persisted.

    Whenever a prompt window opens, the first option is highlighted in blue. Tried restarting, but the problem persisted. I don't recall doing anything unusual when the problem started.

    The fact that the cancel button (first option) is outlined in blue is what's bugging me. I've never seen this happen before. This happens with every single dialog/prompt window.

  • No VIs listed for VI option in "Configure Open FPGA Reference"

    I have a cRIO and I was using the Open FPGA Reference function to load a bitfile by specifying the VI name.  This was working fine.
    I have been compiling all day, and I just deleted a control and then changed a DMA FIFO datatype.  When loaded and ran calls to the FIFO returned an error.  So I tried refreshing the VI specification, but now when the dialog comes up, there are no VIs listed.
    No idea what's wrong here.
    Solved!
    Go to Solution.

    1) I commented out the FIFO when I compiled (forgot to switch it back on); so that's why the error occurred.  Whoops.
    2) I still don't know why I could not browse for the VI, but I was able to drag and drop.

  • What is the logic for the behavior of LV9 when opening vi references?

    I recently started using LV 9 and I can't figure out what the rationale is for the LV 9 behavior when opening references to vis. The way I understand it, LV9 looks up vis using the absolute path on the disk where they came from when opening references, even if they are in memory. If just a vi name is given, LV9 tacks on the path of the referring vi on disk when trying to open the reference. So, as far as I can see, either an application opening references to vis needs to specify absolute paths to the location on disk and be modified whenever a dynamically called vi's location on disk is changed, or a dynamically called vi has to be saved in the same directory as the vi doing the calling or in a rigid and inflexible directory structure.  
    Example:
    I am trying to use a 3rd party library whose vis open a reference to a vi that I create, the name of which is obtained from those in memory using a name pattern. The library vis get the name of the vi I created and try to open a reference to it. Previously this worked because LV looked in memory for "my.vi" when opening the reference but this fails with LV9 because it apparently looks for, e.g., "D:\VI\3rdparty.llb\my.vi", not "my.vi". So, as far as I can see, I have to save my.vi in 3rdparty.llb in order to use it. And, if I want to use 3rdparty.llb in another application, I have to save other vis to 3rdparty.llb or create a new copy elsewhere and save to that copy for the new application. A similar situation would occur if I passed the name of my vi to the 3rdparty.llb vis - either I would need to pass an absolute path and modify my application if I ever want to move my.vi, or save it in 3rdparty.llb.
    Another example:
    I have a large application built into an executable that calls up to ca. 60 vis  using references.  Previously I could just specify the path to the executable, and I could easily open references to my vis. Now  (if I try to use the LV 9 file structure), I can't figure out the paths I need to open references. Either I have to specify the absolute path to the original location in my development directories, or I have to store all my source vis in some particular directory structure. If I want to reuse my vis in other applications (which I do) things would get pretty complicated. Likewise if I want to optionally open references in other vis than my top level vi (which I do), it seems well nigh impossible.
    Basically I am struggling with the concept that an application remembers the directory structure where the source files were located, and/or depends on a particular directory structure of the source files to work. Maybe I'm missing some tricks that would make things easier, but someone will have to explain to me why these are good things. 

    I appreciate the responses and explanations. I've certainly learned
    some things. I have extensive experience using LV but over a fairly
    narrow set of
    applications so I'm certainly not aware of many of the possible
    techniques.  I clearly don't use LV in the same way as what appears to
    be the mainstream for LV programmers.
    I have some additional
    comments on the various responses:
    "But
    with VI libraries and LVOOP this had the problem that multiple VIs could
    end up with the same name..."
    I'm not clear what this means exactly. My first response would be
    that it doesn't seem like a good idea in general to use different
    portions of code with the same name in a single application. I'm
    surprised this is even possible.  I don't think LV will even let me
    build from a project in which it finds name conflicts for vis.  
    "In addition to what Rolf wrote, it should be
    pointed out that LV should NOT be looking for files if you built your
    app correctly. Each VI maintains a relative path to all VI it calls and
    it should know exactly where to find them (assuming they're there).
    I think this illustrates one thing I was talking about. The
    assumption appears to be that the organization of your source files is
    an essential ingredient in the application that is built, which is a
    foreign concept to me. My project file knows where all my vis are, the
    applications build correctly, and, using the 8.x and previous file
    structure for my exe, they work, and have for some time.  As far as I'm
    concerned the main point of using a project that identifies my source
    files is to be able to pull in code from different places - if I want to
    use a different version of one of my dynamically called subvis, from a
    different location, for example, I tell the project file to use the new
    version and rebuild.  In your scenario, as I understand it, I'm not sure
    why a project file in which you identify source files is even needed, 
    if LV already knows everything about the components of the application
    you're building.  As I mentioned, my primary application uses ca. 60
    dynamically called vis. Most of these control different subsystems of a
    large distributed hardware control and data acquisition system. All of
    these are used sometimes when the application is used, but pretty much
    never all of them at once - typically something like 10-30 of the
    user-interactive vis are run at once. There is some communication
    between them using globals, queues, and semaphores and such, but for the
    most part they are independent and I test them separately. Until the
    application is built and used, there is no need to run the entire
    application  including all subvis, and I never do it. When I build my
    application, the app builder finds all the vis I specify and constructs
    the exe file including all the vis I've told it about. Before LV 9 it
    never occurred to me that I might actually have to worry about being
    able to find vis inside the executable. 
    "However as tst has mentioned having an
    executable search for VIs is a VERY VERY bad idea as it can break your
    entire app if it happens to find the wrong VI at some point."
     I don't really follow this point at all. Where are these vis
    masquerading as the ones I want that will break my application? The only
    vis on the machines where my applications are used are there because I
    put them there inside the executables. I certainly would never use
    different vis with the same name in an application - as I said above, I
    don't even know if it is possible, and don't want to find out.  Search
    paths to find components like shared libraries are a common thing. It
    doesn 't seem like a stretch for the run-time environment to define a
    default search path like "somewhere in the exe file containing the
    application".
    I don't want to make a mountain out of a mole hill here, as I said
    before, I am happy as long as NI supports the 8.x file structure, but if
    nothing else I have definitely learned to appreciate how different
    executables built w/ labview are from executables  constructed in other
    systems. 

  • Best practice of coding optional prompts

    Post Author: maddyforums
    CA Forum: WebIntelligence Reporting
    I have a report that has 35 optional prompts for which I want to pass default values if the user doesnu2019t enter any values. This report was originally designed using BO 6.5 and has to be redesigned in WebI XI R2. The main concern of the data modeling team is:
    To avoid hard coding of the default values for these optional prompts as this kind of coding will result in messing up the code when a report has too many prompts and might cause performance issues. During scheduling they want to run some scripts to pass the default values to the prompts but the issue is when the report is manually refreshed. They want us to find out whether we can pass the default values to the prompts without hardcoding this logic in the universe/ report for the manual refresh.
    Ex:
    SELECT -
    FROM -
    WHERE  ( dbo.BDS_BDS_TEST_TABLE.PAID_DT <= case when ltrim(rtrim(@variable('To Date (MM/DD/CCYY) (Optional)'))) is null then dateadd(ss,-1, convert(datetime,convert(varchar, datepart(mm, getdate()))'/01/'convert(char(4), datepart(yy, getdate())),101)) 
    else convert(datetime, ltrim(rtrim(@variable('To Date (MM/DD/CCYY) (Optional)'))), 101) end )
    One of the team members has suggested the use of separate data providers for the prompt responses (A data provider that stores all the default prompt values) and uses the data provider functions to pass the values to the prompts. Please let me know whether this kind of approach works. What is the general coding approach for designing these kind of reports with lots of prompts? Please advice.

    Hi Ian,
    There will be some guidelines in the new documentation, which is currently not yet available.
    Here some very short tipps:
    - Use an assistance class for each component, which should hold the current data and where you can place central methods. Placing methods in external classes is better than putting them into the component controller, because there is less overhead and more functionality (e.g. optional parameters and exceptions).
    - Hold your current data in the assistance class and only put them into the context if needed (e.g. via supply functions).
    - Call your business logic from the assistance class during event handling. Then you have the opportunity to do navigation or not depending on the output of the business logic.
    - You could use any other class for this purpose, but the assistance class is easier, because it is instantiated by the framework and you can access it via wd_assist-> instead of wd_this->my_class-> .
    - Do not create a model component, because this is just overhead and no advantage. In earlier states of the WD project, we thought, a model component would be a good idea, but we changed our minds
    - Use context mapping, where it is needed, e.g. if you use the same context in different views.
    - It is quite well to call the assistance class from the views.
    - Be careful, if you store any references to component parts in your assistance class. Some references may change during runtime, especially those of context nodes placed in a deep hierarchy.
    Hope this helps, and more tipps will follow in the documentation or weblogs.
    Ciao,  Regina

  • Difference b/w Prompts,User POV,Grid POV & Pages

    Hi
    What is the difference between Prompts,User POV,Grid POV & Pages....When do we use them.
    Thnks

    Hi Ann
    Kelly is right the details are all in the documentation that should be easily available... My thoughts and experience of the different options are as follows and may help you:
    Pages: Provide multiple choices for one or more dimensions in a drop down list within the report. Be a bit careful with these, I've avoided them as in earlier versions reports with a lot of members in on the page drop down list took a long time to load. This may have improved with the more recent releases but I've not really used them for a while
    Prompts: Allow users to select member(s) for the report at run-time. Personally I'm not keen on these as it takes more user selections (clicks of the mouse) to actually get to your report each time, I prefer to use the POVs
    Grid POV: Similar to user POV but I've tended to use them where I want to use a fixed member from a dimension e.g. 'Actual' or 'YearTotal' but not show it in the report grid rows or columns (useful if you have several dimensions this can apply to)
    User POV: I find this the most useful for things that change regularly like Year, Location, Scenario, Version, particularly in combination with the Grid POV as mentioned above. The User POV is stored for each user and the last POV used is applied to the next report when opened
    Good luck with your report building, I'm sure you'll develop your own preferences as you get used to the options.
    Stuart Game
    www.analitica.co.uk

  • "Open Vi Reference" generates a Error 7

    Hello,
      I am getting "Error 7" from the "Open VI Reference" vi, the name of the vi is wired vi path input. The "Error 7" means that the vi cannot be found. So I went to "Tools ===> Options ===> Paths" and modified the Path so that Labview can find it. But for reasons I do not understand the vi I want to get a reference for cannot be found. So it leads me to beleive that the "Open vi Reference" does not use the path option to find a vi. Any ideas what is going on?
    Regards,
    Kaspar
    Solved!
    Go to Solution.

    Hello,
      Thanks for getting back to me. I have attached a file fo the screenshot of the Block diagram. The "Open Vi Reference" is in the upper left hand corner, which generates a error when I have updated the path options to point to where the file exists.
    Regards,
    Kaspar
    Attachments:
    vi_error.GIF ‏21 KB

  • Replacing null values in optional prompts and passing to stored proc

    Hi,
    I want to create a stored procedure with OPTIONAL prompts. When user does not pass a value for that parameter, I want to set the value for that parameter by selecting from a column in table then I WANT to use that paramvalue in sql within cursor of stored proc. How do I do that?
    In short, I want to do the following Here is the psuedocode:
    Create or replace procedure test (param IN varchar2 DEFAULT NULL)
    As
    var_param varchar(20);
    select param into var_param from dual;
    If param is null then select custid from table1 else var_param
    OPen ref_cursor for
    Select xyz from table2
    where fyy = var_para
    Can someone let me know the syntax on how to do this in stored proc?
    Regards,
    hena
    Edited by: 904385 on Dec 25, 2011 7:04 AM

    Hi,
    Merry Christmas, and welcome to the forum!
    Here's one way to do what you requested:
    CREATE OR REPLACE PROCEDURE     test
    (    param     IN     VARCHAR2     DEFAULT     NULL
    AS
        ref_cursor     SYS_REFCURSOR;
        var_param     VARCHAR2 (20)     := param;
    BEGIN
        IF  var_param  IS NULL
        THEN
         SELECT     custid
         INTO     var_param
         FROM     table1
    --     WHERE     ...     -- Unless table1 has only 1 row
        END IF;
        OPEN  ref_cursor
        FOR   SELECT  xyz
           FROM       table2
           WHERE       fyy     = var_param;
    END     test;Whatever you're trying to do, this is probably niot the simplest or most efficient way to do it.

  • Open purchase order list by user id

    Hi Experts,
    My job requirement is to pull a list of all open SRM purchase orders in backend ECC system by user id.
    In ME2N, I entered following information:
    -Scope of list=BEST
    -Selection parameters=WE101
    -Document type=ECPO (for SRM purchase orders).
    -In Dynamic Selection icon on top of the screen, under ‘Purchasing Document Header’ drop down list, I selected ‘Created by’ option. Then in a dynamic selection pop-up screen I entered the user id. Then I executed.
    However, upon executing, it still doesn’t give me the list of open PO’s by this user id.
    Whereas, another team member who sits offshore is able to find 2 open PO’s for same user.
    Please tell me what I’m doing wrong here. I need to fix this urgently.
    Many Thanks and kind regards,
    Faisal

    Hello Failsal
    It's difficult to know without a screenshot, please compare step by step ME2N execution with your team mate, it must return the exact same result.
    Other things should guarantee is that you can get those PO's in ME2N (i.e just put the PO's numbers as parameters). I don't know if there is a role restriction for this transaction.
    Try it with"created by" in blank
    Verify you dont have any other parameter selected.
    I hope you find solution
    Regards
    Pável

Maybe you are looking for