Calling subvis dynamicall​y from within an exe (avoiding error 1003)

Hi,
I'm using an architecture where the main program (compiled to an exe) can be supplied with user-"plugins" that are collections of vis of specific types inside a specially named folder relative to the exe. They can be called from within the exe via "open vi reference" supplied by the corresponding strict vi types and the corresponding relative paths.
I want to avoid having to include any of the plugins in any way in the application builder, since users should be able to create own plugins that the application is totally unaware of during build.
In principle this approach works quite well, since these plugins are not extremely complex, but occasionally I get an error 1003 when loading a plugin.
I've read many old posts about this error in this particular situation, mostly using LV versions 7 or 8 (I'm using 2012). One suggestion was to build a source distribution for every plugin, including everything that is used from vi.lib, instr.lib, and user.lib. This indeed helped in my particular case - however, it bloats the plugin "distribution" (which consists originally only of a couple of user vis) extremely and makes user-side developement more complicated.
Now some plugins run nicely from within the exe without having to build a source distribution for them (they still use many vi.lib vis) while others don't and I have no clue why...
These plugins are wrappers for hardware drivers which allow controlling any hardware instrument from within the main application through a certain API. So, in a particular case, a plugin which produced error 1003 is using VISA serial functions (all inside ...\vi.lib\Instr\_visa.llb) and one without error doesn't (yet it uses many functions from ...\vi.lib\Utility\...).
I can fix the VISA-problem in a simple way by including (only) the used VISA-vis (and typedefs) inside the plugin's folder and explicitely link to them (i.e. replace the VISA-vis from vi.lib with the copied ones in the plugin's folder - I guess this is also what the source distribution does).
However, I'm confused why some plugins with linked vi.lib vis work while others produce an error 1003 unless those particular vis are explicitely distributed and linked with them...
Oh and just for completeness: All plugins work fine if called from within the developement system, the problem occurs only if called from within an exe.
Solved!
Go to Solution.

There are some VIs in vi.lib that call other VIs dynamically.  Sometimes you have to explicitly add these to the EXE or distribution.
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines

Similar Messages

  • How can I call a LabVIEW executable from within another LabVIEW executable?

    I have a customer requirement for two LabVIEW executables. Based on their current setup, they need to run executable "A" or "B", both of which are under independent revision control. I have created a third "selection" executable that allows the operator to choose between one of the two, but I am receiving errors when I attempt to call a LabVIEW executable from within a LabVIEW executable using either the "System exec" VI or the "Run Application" VI. If I call a non-LabVIEW executable (such as Windows Explorer) everything works fine.

    > I have a customer requirement for two LabVIEW executables. Based on
    > their current setup, they need to run executable "A" or "B", both of
    > which are under independent revision control. I have created a third
    > "selection" executable that allows the operator to choose between one
    > of the two, but I am receiving errors when I attempt to call a LabVIEW
    > executable from within a LabVIEW executable using either the "System
    > exec" VI or the "Run Application" VI. If I call a non-LabVIEW
    > executable (such as Windows Explorer) everything works fine.
    As with the other poster, I suspect a path problem. You might try the
    path out in a shell window, and if it works, copy the complete absolute
    path to LV to see if that works. LV is basically passing the comma
    nd to
    the OS and doesn't even know what is in it, so you should be able to get
    it to work.
    The other poster commented on subpanels, which is a good suggestion, but
    without going to LV7, an EXE can have open more than one VI. You can
    use the VI Server and the Run method to fire up another top-level VI.
    The decision is whether you want both to be in unique processes.
    Greg McKaskle

  • How to call a Oracle Form from within the APEX

    Hi,
    I have a requirment where need to call a oracle form from within the Oracle APEX application?
    I will appriciate if can someone help me out.
    Thanks

    Hi,
    are you working with Forms 6i or 10g?
    If you want to call a forms 10g page. Just use a button with javascript:
    - Target type: URL
    - URL Target: javascript:window.open ('http://<server>:<port>/forms/frmservlet?config=<conf>','Forms window');
    With Forms 6i you can open the directory where your forms file is inside (works just with IE):
    <script type="text/javascript">
    function fnc_window()  {w = open('C:\\FormsFiles', "winLov","scrollbars=yes,resizable=no,width=600,height=400");
    if (w.opener == null)
    w.opener = self;
    </script>Or execute the forms file with vbscript (IE only):
    <script language = "vbscript">
    sub fnc_forms()
    dim progName
    progName = "c:\FormsFiles\myForm.exe"
    set oShell = createobject("wscript.shell") 'create a shell
    '***use the line below to call your app, defined above with the "progName" variable:
    oShell.run(progName)
    end sub
    </script>

  • How to call a set method from within a constructor

    Hello,
    I want to be able to call a set method from within a Scanner, to be used as the argument to pass to the Scanner (from a source file). Here's what i tried:
    private void openFiles()
            input = new Scanner( setSource );              
        and here is the set method:
    public String setSource( String in )
            source = in;
            return source;
        }obviously there will be more code in this method but i'm trying to tackle one problem at a time. Thanks in advance..

    The "String in" declaration says: "Nobody may ever invoke setSource() without specifying a certain String. The content of the String is known at run-time only."
    In no place in your code you say the compiler: "I want the 'in' variable (actually, parameter) of method setSource() to contain the first arg which is passed to the application".
    This is exactly the same mechanism allowing you to write "new Scanner" with something inside the two parentheses.

  • Calling a concurrent request from within the trigger

    Oracle apps r12.
    Calling a concurrent request from within the trigger.
    Does it requre apps initilization.
    Thanks,
    Lavan

    Hi,
    Whether apps initialization needed or not will depend on followings
    1. Trigger is written on which table seeded or custom. In case of seeded tables, there is no need for apps initialization (although oracle does not recommend writing trigger on seeded tables).
    2. Triggering Table Update/Insert/Delete event processing is done from apps front end or Backend. In case of front end apps initialization is not required.
    Regards,
    Saurabh

  • Call a Web Service from within an e-Sourcing script

    Hi Guys
    I would like to know wether anyone has successfully been able to call a Web Service from within an
    e-Sourcing script? If you have, can you please share your experience and code?
    Thank You

    Hi Faaiez -
    As with any use of Web Services, however, you should carefully consider the security issues that may come up. How, for example, will the Web Service server validate that the Web Service client (E-Sourcing) is properly authenticated? Will password information be included in the web service call? You will find that it is very easy to make a web service call, but I would encourage you to carefully consider security before implementing a productive solution.
    Web service calls can be made using raw Java web service APIs from the open source Axis library which is included with E-Sourcing; this approach is slightly more difficult to code, but very dynamic. Web service calls can also be made using proxies. In one solution that I worked on, we generated java proxies for the web service, compiled those proxies into a Jar file, and included that jar file as a custom jar in E-Sourcing. Let me provide a few more details on each of these approaches.
    Using raw java web service APIs that are part of the Service and Call classes, I prototyped a web service call to Googles sample spell checker web service. Here is the code:
    import org.apache.axis.client.Call;
    import org.apache.axis.client.Service;
    import org.apache.axis.encoding.XMLType;
    import javax.xml.rpc.ParameterMode;
    import javax.xml.namespace.QName;
    String endpoint = "http://api.google.com/search/beta2";
    Service  service = new Service();       
    Call call = (Call) service.createCall();       
    call.setTargetEndpointAddress( new java.net.URL(endpoint) );       
    call.setOperationName( "doSpellingSuggestion" );       
    call.setOperationName(new QName("urn:GoogleSearch", "doSpellingSuggestion"));       
    call.addParameter("key", XMLType.XSD_STRING, ParameterMode.IN);       
    call.addParameter("phrase", XMLType.XSD_STRING, ParameterMode.IN);       
    call.setReturnType( XMLType.XSD_STRING );       
    String ret = (String) call.invoke( new Object[] { "googlekey", doc.getDocumentDescription()} );       
    doc.setDocumentDescription(ret);
    This block of code does a very simple thing...it calls the Google "doSpellingSuggestions" web service with two parameters: a key provided by Google, and a string for which the spelling suggestions should be generated. I used the current document description as my sample string for the web service and I put the results back into the document description - remember, this is just showing how you can call the web service, not doing anything really intelligent or useful from a business perspective
    There is nothing special to E-Sourcing about the above code...this is really just using the Axis java classes to call a web service.
    The second approach that can be used is to generate Java proxies for the web service calls. The open source Axis library includes a tool called "wsdl2java". Using the WSDL for the web service, you can generate Java proxies. Java classes will be generated by the tool; these Java classes will then need to be compiled and included in E-Sourcing as a custom jar. Once they are part of the E-Sourcing deployment, they can be called like any Java API. If you were to examine the generated code, you would notice that it looks a lot like the raw web service code shown above...the generated classes really just provide a simpler interface to the same functionality.
    You can see this information and other E-Sourcing information at my blog at: http://www.sunshinesys.com/
    Rob

  • Calling a Portal Service from within a Web Dynpro DC

    Hello,
    I am trying to call a Portal Service from within a Web Dynpro development component without sucess.
    Can anyone give me some hints on the necessary steps in order to accomplish this task?
    Thanks
    Diz

    Hi Diz,
    I tried doing the same thing by following the steps as mentioned by you. Just to re iterate,
    1. Created a DC "Portal Application Standalone" project by the name myservice.
    2. Created a portal service inside myservice by the ame AmitsService.
    3. Exposed IAmitsService.class in the public part.
    4 Build and deployed the DC on server and tested it through an abstract portal component and it worked FINE !!
    Now..
    5. Created anoter DC of type WebDynPro
    6. Added SAP_JTECHS -> epbc.prtapi._api as a "Used DC" with dependency build time and runtime
    7. Specified the sharing reference in the properties as PORTAL:sap.com/myservice
    8. Tried to reference the service using the following code..
    IAmitsService portalservice=(IAmitsService)WDPortalUtils.getServiceReference(IAmitsService.KEY);
    9.Build and deployed the DC.
    10. When I run the application I am getting the following error
    Processing HTTP request to servlet [dispatcher] finished with error.
    The error is: com.sap.engine.frame.core.load.SAPNoClassDefFoundError: com/sapportals/portal/prt/service/IService
    Exception id: [000D6008418B005C0000002C00000D200004163CE6719E1D]
    PLEASE ADVISE

  • Need help to call a simple function from within another function?

    I created a movieclip which has a function in its one and only frame.
    function testx() {
    x = x+2};
    This movieclip is in the main timeline (in its own layer).
    In another layer on the timeline I have created a single keyframe with a button instance called myBtn
    myBtn.onRelease = function() {
    var x
    x =2
    testx(2);
    trace (x);
    What I want to do is call the function in the movieclip frame from the button press function. However, I can't seem to reference it properly.
    Can anyone help me to basically call a simple function from within another function?

    Yes am using CS4.  Have saved it as CS3 now.  Ok the file is somewhat complicated and what I am testing is not what I ultimately want to do but if I can pass that variable I can figure it out.  In terms of describing the file I think the only parts of importance are what I put in my previous post (please let me know if there is something I should be telling you that I have missed).  I am 99.9% sure that I am using the correct instance name.
    Scene1 Layer3 Frame1 has the function call for the button.
    myBtn.onRelease = function() {
    var x
    x = 2
    testx(2);
    trace (x);
    Slideshow layer //Actions Frame1 has the function
    function testx(x) {
    x = x+2};
    thank you so much for helping me.

  • Calling a stored procedure from within a ViewObject

    Is it possible to make stored procedure call from within a BC4J ViewObject? Basically something like this:
    select * from table(f1(3)); where f1 is a table function. Using Oracle's pipelined table functions?
    If not, is it possible to call a stored procedure from Java and have the returned results be put back into a BC4J RowSet.
    In addition, is there a way to create a JDBC Resultset from a BC4J RowSet?
    We need to be able to dynamically create our SQL statements (the entire SQL, not just the where clause) but are required to have these sql statements generated/executed from within a pl/sql stored procedure in the database.

    Is it possible to make stored procedure call from within a BC4J ViewObject? Basically something like this:
    select * from table(f1(3)); where f1 is a table function. Using Oracle's pipelined table functions?
    Yes. Using our expert-mode query feature this is possible.
    is it possible to call a stored procedure from Java and have the returned results be put back into a BC4J RowSet.
    Yes. See this article about basing a view object on a REF CURSOR:
    http://radio.weblogs.com/0118231/2003/03/03.html
    In addition, is there a way to create a JDBC Resultset from a BC4J RowSet?
    No. Not directly. What's the business requirement here so I can understand better?
    We need to be able to dynamically create our SQL statements (the entire SQL, not just the where clause) but are required to have these sql statements generated/executed from within a pl/sql stored procedure in the database.
    REF CURSOR would work fine, or if it's just the statement that needs to be generated dynamically, you could fetch the text of the SQL statement from the stored procedure, then use createViewObjectFromQueryStmt(). Although this has runtime overhead involved with describing the query.
    The REF CURSOR based approach is probably best for this.

  • Call RFC enabled function from within VBA in BI 7.0

    Hello Experts,
    the problem that we have should be general, i have found some postings on this forum concerning it, but unfortunately no proper solutiont.
    I just want to have the possibility to call the rfc enabled function module from within the callback function in VBA after executing of some query.
    I have seen the suggestion to build a new RFC connection in VBA, but therefore you should hard-code all connection parameters (including user + password)
    in the VBA code, this solution is for us not acceptable due to the security reasons.
    Is there some way to use the existing connection of BEx Analyser in order to execute the function calls?
    This functionality was possible in 3.5 but not in 7.0 since many functions that were available in 3.5 are not supported now.
    Do you have experience/suggestions for this problem?
    Any help would be great.
    Thanks a lot,
    Kirill

    I've got the same problem. Did you find the solution?
    Thank you,

  • Can you call a function module from within a smartform?

    I was told that yu can not call a function module from a smartform - that does not make sense to me because you can do tons of ABAP within a smartform.
    Well - can you?
    Thanks.
    Scott

    Yes, you can call function modules.

  • Calling a Member Function from within a Cursor in a Procedure

    Hello Folks
    I'm a newbie to oracle and am in the process of learning 10G. My question is:
    I created a type called row_po and defined a member function getCost() which returns the total cost of the order with line items as nested table, which i intend to call from within a procedure. In the procedure my SELECT returns multiple records and hence I need to use a cursor. For each record I've got to display the order_no, qty and order_cost (qty and order_cost are part of a line items nested table). I'm able to get to the order_no and qty but don't know how to call the member function to get the order_cost. Here's my procedure:
    CREATE OR REPLACE PROCEDURE get_podet(part_num in number)
    AS
    CURSOR c2 is
    SELECT *
    FROM tab_po po, TABLE (po.LineItemList_nestab) L
    WHERE L.PartNo = part_num;
    BEGIN
    FOR crec in c2 LOOP
    DBMS_OUTPUT.PUT_LINE('ORDER NUMBER: ' || crec.PONo);
    DBMS_OUTPUT.PUT_LINE('LINE QTY: ' || crec.Qty);
    {color:#ff0000}*DBMS_OUTPUT.PUT_LINE('ORDER VALUE: ' || ''); -- order_cost which should be returned from the member function i've mentioned --*
    {color}END LOOP;
    EXCEPTION
    WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('Failed' || 'SQLCODE: ' || SQLCODE);
    DBMS_OUTPUT.PUT_LINE('SQL ERROR MESSAGE ' || SQLERRM);
    END;
    The line in red is where i want to call my function getCost() which is a member of tab_po po as mentioned in my SELECT.
    Any thoughts highly appreciated.
    Thanks and Regards

    One way would be to just run the query in a editor (sqlplus or toad) and see whats the column name.
    Before that can you show us the structure of the type.
    If you declare a table type without an object then the default column name is COLUMN_VALUE else the object filed name is taken.
    Example without object in table type.
    SQL> create or replace type tbl as table of integer
      2  /
    Type created.
    SQL> create or replace function fn return tbl
      2  as
      3     ltbl tbl;
      4  begin
      5     select level bulk collect into ltbl
      6       from dual
      7    connect by level <= 10;
      8
      9     return ltbl;
    10  end;
    11  /
    Function created.
    SQL> select * from table(fn)
      2  /
    COLUMN_VALUE
               1
               2
               3
               4
               5
               6
               7
               8
               9
              10
    10 rows selected.
    Example with object in table type.
    SQL> create or replace type obj as object(no integer)
      2  /
    Type created.
    SQL> create or replace type tbl as table of obj
      2  /
    Type created.
    SQL> edit
    Wrote file afiedt.buf
      1  create or replace function fn return tbl
      2  as
      3     ltbl tbl;
      4  begin
      5     select obj(level) bulk collect into ltbl
      6       from dual
      7    connect by level <= 10;
      8     return ltbl;
      9* end;
    10  /
    Function created.
    SQL> select * from table(fn)
      2  /
            NO
             1
             2
             3
             4
             5
             6
             7
             8
             9
            10
    10 rows selected.Edited by: Karthick_Arp on Jan 13, 2009 5:00 AM

  • Can u call a BIP Report from within Oracle Forms?

    Hi,
    We want to use BIP as a reports solution for a Forms 10g Application. Currently we use oracle Reports. I would be very grateful if anybody can show us how to do the following as I could not find it in any documentation. Of course, I get the feeling that these cannot be done, but I want to double-check.
    (1.) How to call a BIP report with a input parameters from within an Oracle 10g Menu? i.e. when the user clicks on the menu item, BIP should be started and it should run the report within the BIP.
    -- So we also need a way to pass parameters to the BIP
    -- Also BIP has a different username/password also
    Is this possible or NOT POSSIBLE( i.e. U have to ask the user to login to BIP and then run the report)?
    Thanks & Regards,
    CS

    Hi,
    Have a look in this document to get an idea how to do:
    http://www.oracle.com/technology/products/xml-publisher/docs/Forms_BIP_v22.pdf
    Regards
    Rainer

  • Calling User Preference event from within portlet

    Not sure if anybody else has looked at this but we are in the process of rolling out a new G6 Portal and on a number of portlets want to take advantage of the ability to turn off the portlet header. However in doing so you loose access to the inbuilt support for providing access to the User Preference, if one has been defined as part of the portlet definition. This is relevant on a number of portelts that we want to migrate to the new G6 portal.
    So rather than try and re-invent this from scratch using a different 'link' in the portlet itself we were wondering if you can 'call' the inbuilt user preference functionality from within the portlet code. i.e. When a user clicks on the link within the portlet it performs exactly the same action and interaction within the portal as if they clicked on the User Preference icon in the portlet header.
    We have had a look around to see if this is possible but not come up with anything yet so thought we would seek comments from this forum.
    Many thanks in advance,
    Ross Ellard
    Devonport Management Ltd

    Hey Ross,
    I just realized I have to do the same thing on a very limited scale (3-5 portlets).
    SO I just wrote a little bit of (shoddy) code to show community preferences based on group membership.
    It works for me, but I get the feeling your looking for something like communityactionsdata geared toward portlets, which unfortunately I dont think exists. If you put it in as an enhancement request then support will contact you to discuss your options.
    Here is the code that I'm using for now:
    <pt:standard.choose>
    <pt:standard.when pt:test="stringToACLGroup('group=1,755,760;').isMember($currentuser)">
    <immg border="0" src="htttp://localhost/imageserver/plumtree/portal/public/img/action_portlet_edit.gif">
    </pt:standard.when>
    </pt:standard.choose>
    The only problem is that the preferences submit button refreshes the popup to the portal. So I might need to tweak that a hair so it just closes the popup.
    edited to prevent the forum from trying to use the code I provided
    Message was edited by:
    geoffgarcia

  • Calling a java application from within another class

    I have written a working java application that accepts command line parameters through public static void main(String[] args) {} method.
    I'm using webMethods and I need to call myapplication from within a java class created in webMethods.
    I know I have to extend my application class within the webMethods class but I do not understand how to pass the parameters.
    What would the syntax look like?
    Thanks in advance!

    why do you want to call the second class by its main method ??
    Why not have another static method with a meaningfull name and well defined parameters ?
    main is used by the jvm as an entry point in your app. it is not really meant for two java applications to communicate with each other but main and the code is not really readable.
    Have a look at his sample
    double myBalance = Account.getBalance(myAccountId);
    here Account is a class with a static method getBalance which return the balance of the account id you passed.
    and now see this one, here Account has a main method which is implemented to call getBalance.
    String[] args = new String[1];
    args[0] = myAccountId;
    Account.main(args);
    the problem with the code above is
    main doesn't return anything so calling it does do much good. two the code is highly unreadable because no one know what does the main do... unlike the sample before this one where the function name getBalance clearly told what is the function doing without any additional comments.
    hope this helps.... let me know if you need any additional help.
    regards,
    Abhishek.

Maybe you are looking for

  • Mac keeps crashing and I see this report,can anybody help me?

    Interval Since Last Panic Report:  643482 sec Panics Since Last Report:          1 Anonymous UUID:                    580B87A0-8FAA-4070-8C97-FF1261C02818 Tue Jun 14 13:53:47 2011 panic(cpu 1 caller 0x001AB0FE): Kernel trap at 0x0017f403, type 14=pag

  • Can i call a function module of SAP?

    Hi, i have a question... Can i call a function module of SAP... I need print a document from a device, can i call the function module of SAP in order that me it prints it? Thanks,

  • Mac getting unusable after 10.9 instal

    I installed 10.9 Mavericks two weeks ago.  Now Safari, mail, system preferences, and who knows what else are not opening - the top menu bar greys out and nothing happens. now wi-fi and bluetooth are dropping out constantly. Any ideas what is going on

  • Index out of bound?

    I dont understand what im doing wrong. :( everytime i try to delete an entry from the iterator it gives me the index out of bound msg. what im i doing wrong? app code:                      ConsoleIO.out.print("Which employee to delete? Enter Payroll

  • Results row shown only at the bottom and not at each value level

    Dear Experts I have a report based on a multiprovider consisting infosets and a cube. There are several row characteristics shown. 1 of these were set to show results row. But the results row is not shown at each value level but at across all its cha