If the dynamic VI is simply being run using the RunVI method, it can't find out what is calling it because techincally nothing is calling it. If you check its state you will find that it's running as a top level VI. Hence, the dynamic VI can't find out on its own who is calling it so the "caller" has to tell it. One way to do this is to create a VI reference on the dynamic VI's front panel called CallerVIRef - or something similar. Then in the calling VI after you open a reference to the dynamic VI
and before you run it use the
Set Control Value method to pass the caller's VI reference to the CallerVIRef control on the dynamic VI. Now run the dynamic VI and it will have the reference it needs.
Mike...
PS: If you are running the dynamic VI using the Call by Reference node the
VI is being linked to the caller and the call chain will work as it
always does.