Po pierwsze: Za zamknięciem referencji wewnątrz Case'a przemawia prosta logika: Po co ciągnąć przez cały diagram niepotrzebne druty?! Niepotrzebna referencja zamykana jest zaraz po uruchomieniu podprogramu, natomiast przed jego uruchomieniem jest sprawdzane czy podprogram już przypadkiem nie hula. Proste.
A po drugie to sprawa tej ścieżki.
powinieneś zamiast funkcji Build Path użyć funkcję Strip Path [zwróci ona scieżkę C: i osobno string zawierający nazwę problem.vi] a potem dopiero stosować funkcję Build Path , korzystając w podobny sposób jak na diagramie.
To jest poprawne podejście.
Ale tu jest taka mała ciekawostka, która chyba jest źródłem nieporozumień. Jeśli Strip Path nie ma, czyli do Open VI Reference dochodzi np. ścieżka
C:problem.viaa.vi, a podprogram aa.vi jest "ręcznie" otwarty (choć nie działający) to uruchomi się poprawnie. Natomiast po zamknięciu jego panelu wyskakuje błąd "File not found". Dziwne.
PS. Na obrazku rozwiązanie.