I am trying to run a Java Swing desktop application embedded in USD and have come up against a few issues.
The application has this behaviour
1. Loads up a modal login dialogue
2. If successful login, that dialog is closed and the main application frame is shown
3. The frame acts like a MDI application, but can launch modal and non-modal wizards for some processes.
Current Situation
1. I can get the initial login dialog to show in a tab. But once I login then main frame then pops outside of USD.
2. I can fudge the login as part of testing, the main frame now shows up inside a USD tab. But now any wizard I launch runs outside USD.
So I can only capture or acquisition the first window. How do I get all the others? Why doesn't USD capture all windows and dialogs for a process?
Any options or settings I should be looking at? Anyone had a similar situation with a Java or win32 application like this?
*This post is locked for comments
Well, I don't blame USD for that. The way USD works is, it starts all the application well ahead of your replacement parameters populated. That could be one good reason why they don't allow replacement params in hosted control config. But I blv, you must be using some adapter for your application. You can give a shot by overriding default action, where you have access to all replacement params. I haven't tried it, but I think that's a good place to start your thought process.
Let me see If I can play with default action and will try to post a blog.
So no variable arguments what so ever to an external application via command line? It seems very short sighted!
No, AFAIK it is not possible to use Replacement parameters in Hosted control's configuration except for the Display name.
Thank you for the reply. In my experience it seems USD only picks up the first visible frame.
So looking at some other options.
Was going to ask is it possible to use replacement parameters in Hosted Controls?
For example, a CCA Hosted Application, type External Hosted Control you have both an External URI field and a argument field.
I have tried using [[$Settings.CLIENT_ID]], after setting a user setting but it does not seem to work. Is there anything I can use in these fields to supply variables?
Not exactly the same, but I did faced good amount of issues with Java based applications. However, One thing we should remember here is... there is Nothing that USD can do over here. It is your Java application behavior to open popup windows. It is looking like an MDI form, but are you sure it is following the same Windows application MDI style :)?
The best way I will deal with this kind of applicaitons is, Keeping it totally out side of USD. Normally majority of the call centers works with dual monitors. Keeping this application outside in second monitor (where USD is not loaded) and load it as a global application will help both to agents and to developers.
I know this is not what you want to hear, but this is my experience with Java application for a client. all the very best.
Stay up to date on forum activity by subscribing. You can also customize your in-app and email Notification settings across all subscriptions.
André Arnaud de Cal... 291,240 Super User 2024 Season 2
Martin Dráb 230,149 Most Valuable Professional
nmaenpaa 101,156