System.util.retarget in perspective

Is it possible to retarget or open a vision client/project from a perspective session?
I tried system.util.retarget script but looks like it isn’t available in perspective.

No, the scope for system.util.retarget() is limited to the “Client”. Scripting methods without a scope of “Gateway” may not be used in Perspective.

As for launching a Vision Client from a Perspective Session in general, no you can’t.

Will this be possible in future? Launching a vision client from perspective session and vice versa?
We would like to have a central location that can be used to navigate through all our Ignition projects

No, it won't be possible, because they are fundamentally different things. Vision runs on your computer directly, in its own Java runtime. Perspective runs inside a browser session. It's not possible to put Java inside the browser (the old way of doing this was applets, which are a security nightmare, which is why they were deprecated by all browser vendors, and eventually Oracle/Java directly). You could theoretically put a Perspective project inside of a Vision window using the Web Browser component, but...why? There's no urgency to switch to Perspective - keep using Vision as long as you want to, and introduce Perspective whenever you feel you're at the point it's worth it.

Some more background on the different technologies: https://inductiveautomation.com/blog/vision-perspective-which-module-is-best-for-your-next-project

1 Like

There certainly is no urgency to switch to Perspective.
I making a corporate dashboard where Ignition projects are logically organized and also provides a way to navigate across projects without have to launch each project individually by finding its launch link.
Moving forward we expect to do atleast some of our projects in Perspective because of its advantages over Vision for certain use cases.
To account for that I was hoping to make Perspective project (Since it is much more mobile capable) that acts as a central dashboard that can launch all our projects regardless of which module was used to build it.

One big problem is that the prior-to-8 way of launching Vision projects was often through JNLP links that were placed on the gateway homepage. JNLP is no longer supported in Java 9+, and since the gateway, designer, and Vision clients all run on Java 11, it simply won’t work in Ignition 8: https://www.oracle.com/technetwork/java/javase/9-deprecated-features-3745636.html

Right, I thought about putting links on the central dashboard, which though isnt the ideal solution, but gives us something to work with.
But like you mentioned, this wont work either after v8.
Any other way you think this can be done?

We have an internal ticket to look at some way to deliver JSON (ie, a Vision Client Launcher config) to a running application quickly, like through a deep link or protocol handler or something, but no idea when that might happen or whether it even will still happen. Unless something like that gets implemented, there’s really no good way to web-link directly to Vision clients, unfortunately.

There are any possibility to send a client from one perspective project to another? In mobile

You would have to re-login, but couldn’t you redirect to the other projects URL?

You would need to perform a URL navigation:

gateway_address = self.session.props.gateway.address
perspective_path = '/data/perspective/client'
page_url_from_other_project = '/MyOtherProject/somepath/destination'
destination = gateway_address + perspective_path + page_url_from_other_project
system.perspective.navigate(url=destination)
2 Likes

using this can we send params to a different project?

Of course - as long as the url is structued in such a way as your other project would expect the params.

Inline url:
example: /myPage/:paramOne/:paramTwo
usage: http(s)//<gateway_address>:<port>/data/perspective/client/<project_name>/myPage/1/2

Page Param Object:
example: /myOtherPage
usage: http(s)//<gateway_address>:<port>/data/perspective/client/<project_name>/myPage?paramOne=1&paramTwo=2