Determine LVOOP class name? - of a child class...

Hi,
I have a number of modules (classes) that inherit from a base class called "Module".  I have these all in an array of type "Module", I would like to log some information from each of these modules, but I need to distinguish between each module.
Is there a way to determine the class name from the data wire?
I can use varient to flattened string, but I was just wondering if there was a built in property node/function for this?
Thanks,
Jonathan
Examples Attached:
Message Edited by malkier on 03-20-2009 12:39 PM
LV 8.2/8.5/8.6 - WinXP
Solved!
Go to Solution.
Attachments:
Use_Module_BD.png ‏4 KB
Modname_BD.png ‏4 KB
ArrayResults_FP.png ‏3 KB

malkier,
There is no build in function that does exactly what you are looking for, but you can use the 'Get LV Class Path' VI to return the *.lvclass path of a given object.  Using this path, you can either parse out the name, or you can use VI server to get the name of the class, as shown in the attached image.
 Chris M
Attachments:
GetClassName.png ‏4 KB

Similar Messages

  • Nested Subpanels for LVOOP Class Hierarchy

    Hi,
    I am trying to figure out a way to create a configuration window for a class object using a subpanel. The problem is that I have LVOOP class hierarchy of 3 levels, and thus I want to use nested subpanels, one subpanel for each inheritance.
    For example, 
    A.lvclass (abstract class)
    Private Data Members
     String A
    Configuration Window VI ( Within a FP there is a String A control and a subpanel for its child class)
    B.lvclass (abstract class) (child of A.lvclass)
    Private Data Members
    Boolean A
    Boolean B
    Configuration Window VI (Within the FP there is a Boolean A control and a Boolean B control, plus a subpanel for its child class)
    C1.lvclass (concrete class) (child of B.lvclass)
    Private Data Members
    File Path A
    Configuration Window VI (Within the FP there is a File Path A control)
    C2.lvclass (concrete class) (child of B.lvclass)
    Private Data Members
    Boolean C
    Configuration Window VI (Within the FP there is a Boolean C control)
    What I am trying to accomplish is to create configuration windows for C1 and C2. For each configration window, there are sections for class A and class B, and for the class itself. However, I do not want to recreate the same section (for A and B) over and over again each time new children (siblings of C1) are introduced. To avoid this duplicate task, I think using nested supanes makes sense. But I don't know the best way to do it. Any advice is appreciated
    Thank you
    TailOfGon
    Certified LabVIEW Architect 2013

    See these two threads and be sure to read them thoroughly and follow the links:
    http://forums.ni.com/t5/LabVIEW/An-experiment-in-c​reating-compositable-user-interfaces-for/m-p/12623​...
    http://forums.ni.com/t5/LabVIEW/A-more-successful-​experiment-in-creating-compositable-user/m-p/12768​...
    Try to take over the world!

  • How to determine one class is a dynamic one or not?

    hello,i got a simple question,like the title says.
    how to determine one class is a dynamic one or not?
    finally,i got an indirect solution.
    package {
    public dynamic class MyClass extends MySuperClass
    public function MyClass()
    super();
    this.isDynamic=true;
    this is a simple dynamic class,i defined a varible
    directly,it is ok with dynamic class though i didn't declare it.
    then in another class(parent class of this dynamic
    class),where i try to determine the instance of this dynamic class
    is a dynamic one or not.
    i will use one function "checkIsDynamic" to check that
    varible is exsit or not.then it will help me to determine what i
    want know.
    protected function checkIsDynamic():Boolean
    try{this["isDynamic"]}
    catch(er)
    return false;
    return true;
    if another child class of MySuperClass didn't defined this
    property,i can affirm it is not a dynamic class,or vice versa
    this function also can be expanded to another one:
    protected function checkProperty(prop:String):Boolean
    try{this[prop]}
    catch(er)
    return false;
    return true;
    it is an useful solution,defined in parent class,and to check
    the property is exist or not in child class.

    try adding a property to a class instance.

  • Lots of problems building a large executable with LVOOP classes

    I have a large project that makes significant use of LVOOP.  It is essentially a test executive that sequences lots of different types of tests in a configurable way.  I used to use a ton of variants in and out of these tests so they could be used interchangably in the archetecture of my application, but when LVOOP came out I rewrote my test executive to us an LVOOP class called "GTSTest".  Then I have about 10 sub-classes that inherit from the "Test" class.  Each of those sub classes are the actual specific tests.  Here is a shot of the project:
    You can see I am creating a main class called "GTSTest" and that gives me polymorphism of any specific kind of test like "Torque Center.lvclass" and "AutoLinearize.lvclass".  It works fantastic in the development environment.
    My problem now is I can't build anything with any of the LVOOP stuff into an executable.  I originally added all the classes as dynamic vi's because some of them pop up their front panels.  An application engineer suggested taking them out of the dynamic vi's section, but that didn't make any difference.  Here is the error I am getting:
    TestExec Build error:
    Visit the Request Support page at ni.com/ask to learn more about resolving this problem. Use the following information as a reference:
    Error 13 occurred at Invoke Node in ABAPI Dist read linkages.vi->ABAPI Dist Cmp Settings to Disk Hier.vi->ABAPI Get Settings From File2.vi->EBEP_Invoke_Build_Engine.vi->EBUIP_Build​_Invoke.vi->EBUIP_Build_Rule_Editor.vi->EBUIP_Crea​teNewWizard_Invoke.vi->EBUIP_CreateNewWizard_Invok​e.vi.ProxyCaller
    Possible reason(s):
    LabVIEW:  File is not a resource file.
    =========================
    NI-488:  Sharable board exclusively owned.
    Method Name: Linker:Read Info From File
    O:\Software\MfgTest\Galvo Test Station (GTS)\Classes\Tests\Auto-Linearize\AutoLinearize.l​vclass\AutoLinearize.ctl
    Autolinearize.ctl is the alphebetical first class's private data definition.  So what's going on?  I made all the classes dynamic and it gives me the error.  I made none of the classes dynamic and it gives me the error.  But actually I know I'm going to need at least some methods of all the classes dynamic because a couple of the methods get subpanelled in the program so I need the front panels.
    I've searched everywhere and I see no documentation at all about how to build LVOOP into an executable.  But clearly you need to do something special for this to work.  Can anyone help me? 
    -Devin
    I got 99 problems but 8.6 ain't one.

    OK I figured out what is going on.
    RULES FOR CREATING EXE’S WITH LVOOP
    1.      Do not put any lvclass or any “dynamic vi” of any lvclass in the “Dynamic vi’s and Support Files” section of the source files tab in the build window.  Yes I know they are called “dynamic vi’s” in the LVOOP structure and one would assume you may need the front panels etc., but somehow they get loaded in automatically and if you explicitly include them as dynamic vi’s I think they conflict with themselves somehow.  If you do this you will get the following error:
    Error 13 occurred at Invoke Node in ABAPI Dist read linkages.vi->ABAPI Dist Cmp Settings to Disk Hier.vi->ABAPI Get Settings From File2.vi->EBEP_Invoke_Build_Engine.vi->EBUIP_Build​_Invoke.vi->EBUIP_Build_Rule_Editor.vi->EBUIP_Crea​teNewWizard_Invoke.vi->EBUIP_CreateNewWizard_Invok​e.vi.ProxyCaller
    Possible reason(s):
    LabVIEW:  File is not a resource file.
    =========================
    NI-488:  Sharable board exclusively owned.
    Method Name: Linker:Read Info From File
    O:\Software\MfgTest\Galvo Test Station (GTS)\Classes\Tests\Auto-Linearize\AutoLinearize.l​vclass\AutoLinearize.ctl
    In this case “Autolinearize.ctl” is the first class definition in the build.
    2.      In the additional Exclusions section, you cannot use the “Remove as much as possible” option.  This disconnects typedef definitions, and I think it is misinterpreting lvclasses and trying to disconnect the class definitions, which breaks the application.  Of course, you don’t get any reasonable error message when this happens.  It will give you an error 1502 as shown below:
    An error occurred while building the following file:
    O:\Software\MfgTest\Galvo Test Station (GTS)\GTSExecutionMenu.vi
    The VI became broken during the build process. Open the Build Specification and enable debugging to include the front panel and block diagrams.
    Visit the Request Support page at ni.com/ask to learn more about resolving this problem. Use the following information as a reference:
    Error 1502 occurred at ABAPI Dist Chg and Save VIs.vi -> ABAPI Dist Build LLB Image.vi -> ABAPI Copy Files and Apply Settings.vi -> EBEP_Invoke_Build_Engine.vi -> EBUIP_Build_Invoke.vi -> EBUIP_Build_Rule_Editor.vi -> EBUIP_Item_OnDoProperties.vi -> EBUIP_Item_OnDoProperties.vi.ProxyCaller
    Possible reason(s):
    LabVIEW:  Cannot save a bad VI without its block diagram.
    “GTSExecutionMenu.vi” was my highest level vi that included any lvclass wires.  Maybe that’s why it returned its name.  Anyway what is really happening is some screw up where it breaks any vi containing any lvclass.  If you enable debugging the application will work, but then if you connect to it from the development environment it will suddenly break and you can trace down and see the broken class vi’s.  To fix this, the “Remove unreferenced project library members” option worked for me to keep the LVOOP intact.  Of course it blows up your exe a lot bigger because you are now including every variation of every polymorphic vi instead of just the ones you are using.  You shouldn’t have to do this.  There is a bug in the “Remove as much as possible” option which removes LVOOP definitions that aren’t possible to remove without breaking things.  I hope this helps for the next guy that tries to use LVOOP.
    -Devin
    I got 99 problems but 8.6 ain't one.

  • Lvoop class icon color

    I'm confused, and think I must be missing a (simple?) detail somewhere.
    I am trying to update the icons of all members of a lvoop class to a different color. Specifically, a shade of blue (in RGB = 0 - 96 - 128). However, I get a different shade of blue (in RGB = 0 - 102 - 153). I wonder the reason for this?
    I've attached my example and below are the steps I followed.
    Cheers,
    Chris
    Create new class and name ClassIconColor.lvclass
    Right-click the class and Select New...VI and name the added VI ClassMember.vi
    save all to disk
    open ClassMember.vi and edit the icon
    observed that NI_Library layer is green (R-G-B = 0-255-0) with black border (R-G-B = 0-0-0)
    close VI
    Open the class properties page and select Edit Icon...
    observed that VI Icon layer is green (R-G-B = 0-255-0) with black border (R-G-B = 0-0-0)
    Add a blue (R-G-B = 0-96-128) stripe to the banner
    Click Okay to return to the class properties page
    Click Okay on the class properties page and asked to apply icon changes to member VIs
    Click yes
    open ClassMember.vi and edit the icon
    observed that the blue (R-G-B = 0-102-153) stripe to the banner has slightly different color, (R-G-B = 0-96-128) to (R-G-B = 0-102-153)

    Cbl-Amo,
    It is strange that the icon editor changes colors on you.  I was able to reproduce the color swap following your steps and while I do not know exactly why this is happening, I have a good idea.
    Something strange is that even though the Icon Editor allows for 24-bit colors, the LabVIEW Block Diagram only uses 8-bit color.
    http://zone.ni.com/reference/en-XX/help/371361L-01/lvdialog/icon_editor/
    My best guess is that you selected the color 0-96-128 in the Icon Editor, the closest you can get in the LabVIEW Block Diagram is 0-102-153.  This is not a definitive test, but I took your class and VI which told me that they had different color stripes and dropped them both in a new VI.  I took a snip of that and when I looked at it in paint, I noticed both stripes were the color 0-102-153.  It's pretty silly that the Editor allows you to choose from a 24-bit color palette but that is what I think is happening.

  • How to determine if class was compiled with debugging information?

    How may I determine if class was compiled with debugging information? Aside from actually executing the class in a debugger.

    As known, when compiling "javac -g ..." the class
    files contain debugging information.
    my Naive question is WHAT is this information?
    could you please add any links to articles about this
    debugging information?http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html#22856
    http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html#5956

  • Change LVOOP Class Icon Color on All Members

    I have a LVOOP class hierarchy (LV2009) composed of several classes that when created I used the default randomly selected color for each class.  For each class I have developed several member elements (VIs, Ctls, etc), and now I have decided on a color scheme I would like to adopt.  Changing the color on the template icon from the class properties will allow me to propagate those changes to the class member VI icons but it does not seem to have an impact on the class control icons on each of the member VI front panels.  The class data member control has the cube with the original color.  I like the idea of keeping the standard cube glyph, but changing the cube color and shading pixel by pixel is not appealing.
    Is there an easy way to change the color scheme of an entire class that will update the color on the VI member Icons, the data member control and all instances of the control?
    Is there an easy way to change the color of the standard cube glyph that is used by default on data member controls?
    Is the cube glyph in a glyph library somewhere?

    Justin_P wrote:
    There is not a way to associate the color of the cube glyph (class data member control icon) with the color of the class template.  If I had just a couple classes I would just change them manually.  If I had a whole lot of classes, I would probably draw the cube in another program (that would do the shading automatically) and turn the image into a glyph that you could use in the icon editor.
    I have attached a psd file (inside the zip) that will allow you to shade any color cube for this glyph creation.  Simply change the color in the "Color" layer and the shading will apply automatically.  Please note, you will need to flatten all the layers before you can copy and paste this into labview.
    Attachments:
    lv_class_object_icon_layered.zip ‏7 KB

  • Plant Determination for Third Party Material as Child Item in Sales Order

    Hi All,
    We have an issue with the Plant Determination for Third Party Material as Child Item in a Sales Order.
    Even when a Delivering Plant is maintained for the child item which is a Third Party Material, the plant of the Parent Item is only populated as the Default plant in the Sales Order
    Can someone explain the reason behiind this determination.
    P.S.- For all non -Third PartyChild Items (with non-Third Party Item Catefory & Material Type), the Plant is population correctly as per Delivering plant in Material Master.
    TIA.
    Regards,
    Sridhar

    Hi,
    Thanks everyone for the feedback.I agree with Samir Danish.It is a standard functionality of SAP which does not allow free goods for BOM material.
    However, can someone suggest work around to deal with this issue.I mean if any one has been doing any work around for this issue then please let me know.It s becoming critical for me.
    Regards,
    BM

  • A problem determining the JNDI Name of a local EJB with WL 8.1

    Hi,
    I created a very simple local EJB and deployed it with Weblogic8.1. When I test
    it in the Weblogic server admin page, I got the following message:
    "The EJB MyLocal has not been tested successfully. There was a problem determining
    the JNDI Name of the given bean."
    Can anyone help figure out the problem?
    Thanks
    Henry

    Does the ejb have a target server specified?
    Does the Ejb have a Jndi binding as specified in the <local-jndi-name></local-jndi-name>
    element of weblogic-ejb-jar.xml?
    thanks,
    Deepak
    "Henry" <[email protected]> wrote:
    >
    >
    Hi,
    I created a very simple local EJB and deployed it with Weblogic8.1. When
    I test
    it in the Weblogic server admin page, I got the following message:
    "The EJB MyLocal has not been tested successfully. There was a problem
    determining
    the JNDI Name of the given bean."
    Can anyone help figure out the problem?
    Thanks
    Henry

  • Why can not I see the name of a child process?

    Hi,
    I implemented a program for my project.
    My program has two processes. One is a parent process. Another is a child process.
    The parent process forks its child process. The child process is executed by execl() system call.
    The program code implemented is followed.
    === abbreviation ===
    switch(itmr_forkid = fork()) {
    case 0:
    RCode = execl("./itmr", "itmr", (char *) 0);
    exit(0);
    break;
    === abbreviation ===
    I executed the program. And then I pressed "ps -ef" on command line.
    [stp1ggsn1][user/shlim] ps -ef
    UID PID PPID C STIME TTY TIME      CMD
    root 29402 29376 38 Mar 06 pts/0 11376:36 ibgfb
    root 29403 29402 0 Mar 06 pts/0 0:15
    However, why can not I see itmr process name for the child process?
    When I executed the program for the parent process and the program for the child process respectively, I can see itmr process name for the child process.
    I tried to look for the cause. But I could not find out the answer.
    Please, give me your answer. Thank you for your answer in advance.

    Hi,
    I am sorry that I loaded my question two times by mistake.

  • How can IC WebClient determine the host name for free seating?

    Hi,
    I want to determine the host name at CRM application server by ICI interface for free seating scenario.
    There is a TCODE CRMM_IC_GFS to set 'Host Name Identification Applet'.  But when I check on it, all buttions in IC Webclient disappeared. I followed the note 812399 to change Java security configuration, but the synptom still exist. Do anybody now how to? Thanks!
    BR,
    Hao

    To run a public VPN server, you need to do the following:
    1. Give the gateway either a static external address or a dynamic DNS name. The latter must be a DNS record on a public DNS registrar, not on the server itself. Also in the latter case, you must run a background process to keep the DNS record up to date when your IP address changes.
    2. Give the VPN server a static address on the local network.
    3. Forward external UDP ports 500, 1701, and 4500 (for L2TP) and TCP port 1723 (for PPTP) to the corresponding ports on the VPN server.
    4. Configure any firewall in use to pass this traffic.

  • How to determine the Cluster name ?

    Grid version : 11.2.0.3 on Solaris 10
    When we start installing Grid Infrastructure, we specify a Cluster Name.
    Question1.
    How can I determine the cluster name of a 11.2 RAC Cluster ? We maintain a DB inventory. For each cluster , we want to specify the Cluster name.Hence we require the cluster name .
    Question2.
    The cluster name is of no functional importance. Right ? I don't remember using Cluster Name in any commands (srvctl, crsctl,...)

    To determine the cluster name,[oracle@iron1 ~]$ olsnodes -c
    ironcluster
    [oracle@iron1 ~]$I wouldn't say it has much technical significance, though it is used as a default in a few other names.
    John Watson
    Oracle Certified Master DBA
    http://skillbuilders.com

  • Determining the BFile name

    I was going through Steve Muench's book titled: "Building Oracle XML applications" and i was trying to refer to the file claim77804.xml in the xml directory which i created. I followed the book and i typed in the following code and the error came up:
    SQL> SELECT DBMS_LOB.getLenght ( BFileName ('XMLFILES', 'claim77804.xml
    2 AS length
    3 FROM dual;
    SELECT DBMS_LOB.getLenght ( BFileName ('XMLFILES', 'claim77804.xml'))
    ERROR at line 1:
    ORA-00904: invalid column name
    I was working on CLOBs and i created the basic CLOB table:
    CREATE TABLE xml_documents (
    docname VARCHAR2(200) PRIMARY KEY,
    xmldoc CLOB,
    timestamp DATE
    This worked fine but when i tried adding a database trigger, the following happened:
    SQL> CREATE TRIGGER xml_documents_timestamp
    2 BEFORE INSERT OR UPDATE ON xml_documents
    3 FOR EACH ROW
    4 BEGIN
    5 :new.timestamp := SYSDATE;
    6 END;
    7
    8
    9
    10
    The numbers just keep coming. I have installed the PL/SQL XDK which includes the XMldom and XMLParser etc.
    Thanks for your cooperation

    Is it using a local interface and NOT a remote interface? I found that local interfaces
    were not found even though they appear in the list of EJB jndi names.
    Matthew Summers <[email protected]> wrote:
    I'm using JBuilder9's EJB Designer to create CMP Entity Beans. After
    successful deployment to WLS8.1, I use the mydomain> EJB Deployments>
    myEJB>Testing>Test This EJB tool, I get the following error:
    "The EJB myEJB has not been tested successfully. There was a problem
    determining the JNDI Name of the given bean."
    I didn't have this issue when I was running WLS7.1. I'm not doing
    anything differently in JBuilder9 than when I was running WLS7.1.
    Any Ideas? Help? Please?

  • Error when determining the PSA name

    I am on BW3.5, trying to load a delta that has been loading for 2+ years with no problems.  The load today is getting the error message:  "RSAODS 132 Error when determining the PSA name"
    I've looked in OSS Notes and there is nothing with this error message.  This is CCA Actual data that loads to PSA > ODS > Cube.  The PSA load is red and the entry in the ODS is also red.  Thanks

    Hello Keith,
    Not sure just check following, might help.
    This might be because of insufficent authorization ( did you changed anything on authorization company wide decision?)
    Or this might be brcause of insufficent tablespace or something?
    Sarhan.

  • How to determine main program name?

    Hello Forums,
    I am working on a customer exit that is called by a function module and I would like to have a condition in my include that states
    if program_name =   SAPLV56K .
    do logic in here.
    Endif.
    is it possible to determine the program name?
    thanks

    Hi,
    Do following step,
    1 declare global Variable of type sy-repid. eg data g_repid like sy-repid.
    2 assign program name to variable at Initialization stmt.
         INITIALIZATION
         g_repid = sy-repid.
    3 Use this variable.
    other wise use sy-cprog.
    Difference between sy-repid and sy-cprog
    Sy-repid --- It contains the name of current program.
    Sy-cprog---Contains the name of calling program.
    Thanks & Regards,
    ShreeMohan

Maybe you are looking for