Configuring Dynamic Applications

From a lifecycle management perspective, CCF has two types of hosted applications: global hosted applications and session-scoped, or non-global, hosted applications. A global hosted application is started either when the agent desktop starts, or at the start of a workflow upon which the global hosted application is tagged as dependent. It is usually recycled when the agent desktop is terminated. A non-global hosted application is started either when the session starts or at the start of a workflow if the application is tagged as workflow dependent. It is usually recycled at the end of the session. CCF 2009 also supports dynamic hosted applications. These allow an agent to start or close a hosted application on demand, either by using the UI or programmatically in code. A dynamic application can be global or non-global.

Global dynamic applications are loaded at the first request and hidden thereafter, and they can be requested at anytime (such as during a global session, normal session, or workflow). Non-global dynamic applications can only be loaded after a session has started, and each session uses a different instance of the application.

If a dynamic application is part of a workflow and has not started when the workflow starts, then the workflow will start the application and the application will stop when the workflow is complete.

The integration of applications into CCF is managed by Microsoft Application Integration Framework (AIF). AIF puts the following constraints on actions that are performed by applications when they start up. (These constraints are not limited to dynamic applications, but apply to all hosted applications.)

  • For Web applications that are global, no initial default action runs.
  • For Web applications that are non-global, the default initial action runs once.
  • For Windows applications that are global, the default initial action runs once.
  • For Windows applications that are non-global, the default initial action runs once. Even if the action runs twice, there is only one instance of the application. The effect is the same as that of global applications.

Any hosted application can be made dynamic by checking the Application is dynamic check box in the initialization string build window.

To access the initialization string build window and make an application dynamic

  1. Open the Admin Console and expand the computer node.
  2. Open the Hosted Applications node.
  3. Double-click the hosted application that you want to make dynamic. This opens the Properties page.
  4. Click the Build button.
  5. In the General section of the Build window, select the Application is dynamic and the Show in toolbar dropdown and User can close the application dynamically check boxes. (See the explanation that follows this procedure.)
  6. Click OK. The application is now dynamic.
  7. Close the Properties window.

You can also configure an application to be dynamic by adding the following XML code to the application initialization string in the Application table. You can enter this code anywhere within the <initstring>....</initstring> tag set.

<dynamic>
  <show>true</show>
  <closed>false</closed>
</dynamic>

The <show> node indicates whether a dynamic application can be shown in the UI. If the application is shown in the UI, the agent can start it from an icon. When a request is made to the ApplicationHost to get the list of dynamic application names to display, only dynamic applications with the <show> node set to true will be returned. Setting the node to false allows you to start applications dynamically in code, but they will not show in the UI and cannot be started from there. Setting the <closed> node to true indicates that the dynamic application, once started, cannot be closed dynamically either from the UI or programmatically in code. The application is closed at the end of the session for session scoped, non-global applications and when the Agent Desktop application is terminated for global applications.

Troubleshooting a Hosted Control

If you encounter problems when you install and configure a hosted control, see the table below.

Problem

Cause

Solution

When Agent Desktop starts, you get the following error message: "An error has occurred while fetching the blank page URL. The application will use IE about: blank."

This error occurs when Agent Desktop is not able to reach the SQL server to query Options for the blank page URL.

It can be caused by the following:

Check the following:

When Agent Desktop starts, you get the following error message: "Error in Web service while fetching XSL URL. The Current Session pane will not refresh."

This error occurs when Agent Desktop is not able to reach the SQL server to query Options for the XSL URL.

It can be caused by the following:

Check the following:

When changing the session or application in Agent Desktop, you get the following error: "Error parsing XSL file.”

This error occurs when the XSL file is edited and is not well formed.

Open the XSL file in Internet Explorer to see if it is well formed.

If it is not, fix the errors.