External Hosted Application Open outside of the IAD

Aug 12, 2010 at 4:18 PM

I have a external hosted application im my IAD.

 

But when i start IAD and create de first session de application open outsa from IAD, but in the configuration is set to open inside.

I noticed that when opened a second session the application open correctly. Why this happening?

 

Sep 27, 2010 at 6:10 AM

Hi,

I’ve also experienced this problem. We originally saw exactly the same issue when running a demonstration application using the older CCF software. I’ve also seen it (although seemingly to a lesser extent) using CCA.

Although I can’t be sure it seems to be related to the performance of the host machine or maybe even the CRM server. If either of these are running slow (possibly for external reasons), then the problem is more likely to occur. At least that’s my initial diagnosis.

I’ve played with the “Main Window Acquisition Timeout” setting within the UII Settings. I’m not convinced that this improves things, it appears this timeout is just added to the startup time, and at the end of timeout, there’s a check to see if the applications are started.

Does anyone have more experience here? Is this “Main Window Acquisition Timeout” setting the right one to better avoid this problem? (Putting aside resolving underlying server performance, if that really is related).

Thanks

Michael.

Sep 27, 2010 at 12:22 PM

Hi!

Sometimes in the same machine, the application  is opened inside IAD and after minutes or days  not opening again. it´s instable.

I´m testing this property and result it´s the same, did not opened inside IAD.

Michael, your application it´s developed by .net or not? My application is a progress application(http://web.progress.com/en/index.html)

Wiht .NET applications work´s normally.

Sep 27, 2010 at 3:41 PM

The initial work with external applications is usually trial and error to sort out what works and what doesn’t. Lots of things factor into the window acquisition process.

For External applications,
By Default, UII is trying to grab the main window handle from the process you have told it to invoke. Based on your description, the most likely culprit is that your application launches a splash screen which then goes away after it launches the main program, which means that the process’s “Main Window” is null.

There are a few different things you can do to get around that, the first thing to try is to set the Main Window Acquisition time out value to something longer than your splash screen hangs around and populate the Caption and/or FindWindow Class name with the name or class of your actual parent window you want to host.

What will happen is that UII will search for the window class or caption name up to the time you specify in the Window Acquisition time out value. Once window is found it will immediately return.
So if you set the Window Acquisition time out to 30 seconds, and UII finds it in 5, it will connect and host the window in 5 seconds, whereas If it doesn’t find the window, it will wait the full 30 seconds for it to appear before giving up looking for it.

MattB - MSFT

Sep 27, 2010 at 7:41 PM

Hi matt!

I did some tests with the parameter: "window acquisition timeout".

I figured out that idependent that  put 30s or 5min  the IAD will wait this
time and after this will open the application. My external application is opened in less than 10s if nothing  is setting in the "window acquisition timeout".

My application don´t have a splash screen, but it work like a container  that load a programs and, when is loaded the only thing that changed it´s the caption.

Sep 27, 2010 at 8:59 PM
Edited Sep 27, 2010 at 9:22 PM

Yes. That would happen if you only set the Window Acquisition timeout and not anything else.
That would be because the default behavior is to look at the MainWindow Handle for the process, and its apprently being nulled.

Using a tool like Spy++ find the main window of your application (after the splash screen), then look at the “class” tab in the properties of the window.. Put that class name into the Window Class field in CRM. It should find the window as soon as that window appears in the UI.

MattB - MSFT

Sep 28, 2010 at 10:52 AM

Matt,i had used the class property in the external application but still open outside.

 

I´ll prepare a video to show to you.