LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

This VI is part of a LabVIEW class. No part of the class is executable at this time because one of the member VIs is missing. However I am not missing a vi

Solved!
Go to solution

I only have 1 vi and its not missing.  The 1 vi claims the owning library has blocked the execution of the VI.  The class has the error "This VI is part of a LabVIEW class. No part of the class is executable at this time because one of the member VIs is missing. Find the missing member VIs on disk and load them into memory or delete them from the class definition in the project tree."

 

But there is only 1 member vi!!??

 

I had lots of other vi's as part of this class but somehow this class got botched with this error.  I removed all vi from the directory and from the class definition and re made just the one assessor vi and still got the error message.

 

I have attached my ridiculously simple class.

 

I have other classes that work fine but somehow this one seems to have gotten botched.  I really need to understand what happened here and how to recover/avoid this error or I will not have the confidence to develop large applications using classes.

 

In other words...PLEASE HELP!

Message 1 of 15
(6,641 Views)
Solution
Accepted by James_G1

Your class contains two VIs. One VI is named Untitled 1 and the other is named Read Max level.vi.

 

 Maybe this could happen (not tested) in the following way. You created two VIs and saved one of them as Read Max level.vi. Then you saved the class. When closing the classyou have choosen not to save Untitled 1 and not to save the class.

 

How to repair it. Open the class file with any  text editor. Delete all lines between and including the following lines from the file:

 

    <Item Name="Untitled 1" Type="VI">
    </Item>

 

This will fix your class.

Waldemar

Using 7.1.1, 8.5.1, 8.6.1, 2009 on XP and RT
Don't forget to give Kudos to good answers and/or questions
Message 2 of 15
(6,623 Views)

waldemar.hersacher wrote:

Your class contains two VIs. One VI is named Untitled 1 and the other is named Read Max level.vi.

 

 Maybe this could happen (not tested) in the following way. You created two VIs and saved one of them as Read Max level.vi. Then you saved the class. When closing the classyou have choosen not to save Untitled 1 and not to save the class.

 

How to repair it. Open the class file with any  text editor. Delete all lines between and including the following lines from the file:

 

    <Item Name="Untitled 1" Type="VI">
    </Item>

 

This will fix your class.


 

Confirmed it fixes the bad class!

 

Much better explanation that I was dreaming up.

 

And I would have never (well it would have taken more time) been able to provide the method to fix!

 

I owe you about 9 more Kuods for the value in that reply!

 

Thank you!

 

Ben

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
0 Kudos
Message 3 of 15
(6,617 Views)
If all my problems will be solved so simple, I could be lucky all the day. :smileywink:
Waldemar

Using 7.1.1, 8.5.1, 8.6.1, 2009 on XP and RT
Don't forget to give Kudos to good answers and/or questions
Message 4 of 15
(6,611 Views)

I cannot tell you why.  Only what it is missing.

 

If you look in the Tree.lvclass file using something like Notepad, towards the bottom you will see some XML that looks like:

<Item Name="Untitled 1" Type="VI">
        <Property Name="NI.ClassItem.ConnectorPane" Type="Bin">#1#!!!!!!!)!"1!&amp;!!!-!%!!!@````]!!!!"!!%!!!$H!!!!#1!-1#%'=X2B&gt;(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&amp;!!!Q!!!!%!!AFF=H*P=C"P&gt;81!"!!!!#*!=!!?!!!/$&amp;2S:75O&lt;(:D&lt;'&amp;T=Q!!#&amp;2S:75A&lt;X6U!!!A1&amp;!!!Q!!!!%!!B.F=H*P=C"J&lt;C!I&lt;G]A:8*S&lt;X)J!#"!=!!?!!!/$&amp;2S:75O&lt;(:D&lt;'&amp;T=Q!!"V2S:75A;7Y!0!$Q!!Q!!Q!%!!1!"1!%!!1!"!!%!!9!"!!%!!=#!!"Y$1A!!!!!D1M!!!!!!!!!!!A!!!!!!*!!!!!!!1!)!!!!!!</Property>
        <Property Name="NI.ClassItem.ExecutionSystem" Type="Int">-1</Property>
        <Property Name="NI.ClassItem.Flags" Type="Int">0</Property>
        <Property Name="NI.ClassItem.IsStaticMethod" Type="Bool">false</Property>
        <Property Name="NI.ClassItem.MethodScope" Type="UInt">1</Property>
        <Property Name="NI.ClassItem.Priority" Type="Int">1</Property>
        <Property Name="NI.ClassItem.State" Type="Int">1342841344</Property>
    </Item>

Delete this block.  Make a backup of the file before you do that.  Start up LV and load the class again.

 

My guess is that something probably did not save properly when LV shut down.  I have a large OO project and have had more than one occasion where I have corrupted the project but could ot figure out why. 

 

Today I had a similar message which is why your post caught my eye.  In doing some troubleshooting I found that it no longer 'knew' where one of my files was but it never complained when it loaded the project.  I went back to the original project and tried to open that vi from the project.  That is when it told me that the vi was not in the expected location, do you want to correct it.  I said yes and all was better. 

 

Trying to open all of the VIs in the class might have worked, but this can be cumbersome to say the least in a large class.

 

Good luck,

 

Kurt

Message 5 of 15
(6,609 Views)

Thank you all for the help.  I did not know to look at the text to figure this out.  It does in fact fix it.

 

What I now don't understand is why the class viewer does not show a missing untitled vi.  If I create a method in a class and then delete the actual source vi, it shows it as missing.

0 Kudos
Message 6 of 15
(6,586 Views)

waldemar.hersacher wrote:

How to repair it. Open the class file with any  text editor. Delete all lines between and including the following lines from the file:

 

    <Item Name="Untitled 1" Type="VI">
    </Item>
 

 


Waldemar - Where did you pick up that trick? Excellent. Smiley Happy 

 

edit: You too KuGr, good job. Smiley Happy

Message Edited by Broken Arrow on 05-06-2010 03:25 PM
Richard






0 Kudos
Message 7 of 15
(6,577 Views)

A) I wager this class was created by recovering from a crash. The auto-back up of files is the only mechanism I know by which a class can be saved without a path to its member VIs. Every other path I know of will force you to save the member VI first. What I'm guessing happened is a crash or power failure occurred, and when you restarted LV, it asked which files you wanted to recover, and you chose to recover the library but not the untitled VI (which was, after all, junk) and thus you strayed into a use case that had never been intended to be possible -- a class saved which doesn't have a path to its member VI and that VI not already in memory.

 

B) I suspect that no "Missing" tag is shown in the project because the item has no path. Under all normal circumstances, items with no path are either part of the file (think a shared variable declared inside a library file) or are new items that are still in memory (untitled VIs). In either of those cases, it is impossible for the item to be missing. 

 

These are just guesses based on what I know of LabVIEW.

Message 8 of 15
(6,563 Views)

I noticed the mystery Untitled 1 does not have a URL listed.  On a hunch I removed the URL tag from the other method and suddenly it does not show up in the class viewer either.

 

So this now explains the how to fix, the why can't I see it, and a strong possibility for the how the heck did this happen.

 

Once again thank you all for the fast and accurate help.

0 Kudos
Message 9 of 15
(6,560 Views)
The crash is a strong possibility.  As the name "tree" may suggest, I was working with recursion and more than once crashed labview as a result of badly handled termination conditions.
0 Kudos
Message 10 of 15
(6,555 Views)