The topics of context sensitivity and in-application performance support with UPK don't get enough attention. Many people I run into aren't aware of the capabilities built into UPK (and ODPN). There's a lot to talk about! I'll try to break it up into logical parts. Here's the groundwork.
UPK provides several options for providing context-sensitive help out of the box.
- Help Menu Integration for supported applications
- SmartHelp for supported web applications
- Application-provided context
- Hardcoded context
UPK can provide context-sensitive help for nearly any application. However, the necessary level of control over the application and the complexity of the solution can vary. Understanding these options will allow you to choose the best solution. You may even learn how to add context-sensitive help to applications which you thought could not support it!
Let’s define what context and context-sensitive help are, and examine how UPK implements them. In general, context is the environment in and the activity which a worker is performing. Context-sensitive help is exactly the information the worker needs to accomplish the activity in the environment. From the UPK perspective, the environment is one or more applications and the worker is the user. The activity is often a transaction or some other step in a business process.
In UPK, context is a set of values computed or passed from the application at the time of help launch that has some relationship to the activity the user is performing. The player package is the UPK output that supports context-sensitivity. It does this in two ways. First, it supports context by filtering the content outline and showing only applicable topics—that is, topics which contain the context passed from the application. Second, when an applicable topic is viewed, the topic advances to the first frame which matches the context passed from the application.
Ideally, context values are unique for every application and activity the user performs. But in practice, it may not be necessary or even desirable to have such detailed context information. We use the term granularity to describe the difference between the number of application states and the uniqueness of context values. The correct granularity for context depends on the number of different activities the user performs and the number of topics covering those activities.
In the next installments, I'll dig into the different methods of providing context-sensitive help with UPK. I promise more pictures and fewer words. ;)