An environment is the collective state of an agent’s current working context. An environment monitoring interface is defined for integrating applications with environment management. Use environment monitoring to coordinate changes to the global environment objects.

The environment contains many global objects that are exposed to the agent though the UI and shared by all the applications. The current ticket and customer are examples of global environment objects. Global object changes can be triggered by the agent through UI gestures or programmatically by an application. When the object is changed, the global object is replaced with a different object of the same type.

The framework provides access to two global objects: Current Ticket and Current Customer. These two objects are always available and shared by all the applications using the framework. They are also represented in the UI’s global context area.

Applications can expose their own global objects to the environment monitoring system. The Environment Management API and configuration enables an application to participate in changes to the exposed global environment objects by either requesting a change to a global object (including global objects that are not managed directly by the application) or by being notified of a global object change.

When the global environment is exposed by requesting a change to a global object, the API provides the ability to request that any global object be changed. For example, any application running in the framework can request that the active ticket be changed to a new ticket or another existing ticket.

When the global environment is exposed by being notified of a global object change, whenever a change is initiated, the application is notified and has a chance to attach dependent change details to the change request. This model allows an application to be aware of any changes taking place that may affect its own state. This takes place in a three step process.

  1. Identifying environment changes before they are applied.

    All changes to the environment objects, including any dependent changes, are first detected and summarized in a collection of change detail objects. An application participates in this process by monitoring for new change details and creating new change detail objects. Once all the details are collected about a change, the next, optional step is to generate warning messages related to the pending change.

    For example, ApplicationY may have an object with dependencies on the active customer profile. Therefore, whenever the active customer is changed, ApplicationY may also want to change its object accordingly. In this case, ApplicationY would monitor for change details specific to the current customer and, when necessary, add a change detail for its own object.

  2. Generating warning messages.

    Warning messages are optional and are relative to a change initiated by an agent through a UI gesture. Applications that are participating in environment changes are polled to produce warning messages relative to the pending change. The agent must then respond to the warnings before the change can be applied. At this point in the process, the agent has the option of canceling or continuing with the change.

    For example, ApplicationY may want to warn the agent that continuing with the change will adversely affect its dependent object. In this case, ApplicationY would contribute a warning relative to its dependent object, when necessary.

  3. Applying the change.

    The final step is to apply the change to the environment based on the aforementioned detail objects. Each application is responsible for changing the environment objects under its direct control. For example, the Service framework is responsible for applying a change to the current active ticket and customer, while an application only applies changes to its own objects.

    For example, when ApplicationY is told to apply the change, it would scan for a change detail specific to its own object and apply it accordingly. (There would be another change detail for the active customer but ApplicationY would ignore it because it is not responsible for that environment object.)

 
loading table of contents...