Patent Publication Number: US-8533584-B2

Title: Context control

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
     This application claims the benefit of U.S. Provisional Application No. 61/013,896, filed Dec. 14, 2007, and titled “Context Control”, which is hereby incorporated by reference in its entirety. 
    
    
     TECHNICAL FIELD 
     This description relates to context control. 
     BACKGROUND 
     In enterprise systems, a user may be able to create and maintain many business objects across various applications, where the business objects may be linked with each other. In creating these linked business objects, the user may need to repeatedly input some of the same information within a business application and input some of the same information across multiple, separate applications. When the user has many business objects that need to be created and maintained, the process of creating the business objects may be a very time consuming and inefficient task. 
     Also, the user may only supposed to be working within a defined criteria when creating and maintaining the business objects. For example, the user&#39;s job requirements may dictate that the user should only be working on particular accounts or with particular customers. In large enterprise systems with many accounts, customers and possible variations, it may be difficult for the user to remain focused on his/her particular job responsibilities. 
     Consequently, it may be difficult or impossible for a user to create and manage the business objects in an optimal manner. For example, the user may mistakenly include incorrect parameters or attributes when creating business objects and when switching between multiple different applications within the enterprise system. As a result, the success of the user and of the underlying enterprise may suffer. 
     SUMMARY 
     Various implementations of a context control system with a context control interface are disclosed. According to one general aspect, a computer program product for handling context control information is disclosed. The computer program product is tangibly embodied on a computer-readable medium and includes executable code that, when executed, is configured to cause at least one data processing apparatus to provide a context control interface. The context control interface may include a context name field that is arranged and configured to identify a working context, one or more attribute name fields that are configured to identify one or more attributes that define the working context, and one or more attribute value fields that are arranged and configured to correspond to the attribute name fields and to define one or more values for the attribute name fields. The attribute name fields and the corresponding attribute value fields may be mapped to a first set of fields in a first application and may be mapped to second set of fields in a second application and the attributes and the values populate the first set of fields and the second set of fields such that the working context is persistent across the first application and the second application, where the first application differs from the second application. 
     According to another general aspect, a customer relationship management system includes a customer relationship manager server configured to provide a context control system for use by a user is disclosed. The context control system may include an attribute name manager that is arranged and configured to access attribute name information and to populate one or more attribute name fields with the attribute name information in a context control interface, an attribute value manager that is arranged and configured to access attribute value information and to populate one or more attribute value fields with the attribute value information in the context control interface, a view generator that is arranged and configured to display the context control interface, and a mapping manager that is arranged and configured to map the attribute name fields and the attribute value fields to a first set of fields in a first application and to a second set of fields in a second application, where the first application differs from the second application. 
     According to another general aspect, a customer relationship management system includes a customer relationship manager server configured to provide a context control system for use by a user. The context control system may include an attribute name manager that is arranged and configured to receive attribute name information from a first application and to populate one or more attribute name fields with the attribute name information in a context control interface, an attribute value manager that is arranged and configured to receive attribute value information from the first application and to populate one or more attribute value fields with the attribute value information in the context control interface, a view generator that is arranged and configured to display the context control interface, and a mapping manager that is arranged and configured to map the attribute name fields and the attribute value fields to a set of fields in a second application and to populate the set of fields with the attribute name information and the attribute value information, where the first application differs from the second application 
     The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features will be apparent from the description and drawings, and from the claims. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a block diagram of an example system for a context control system with context control interface of a customer relationship management (CRM) system. 
         FIG. 2  is a block diagram of an example system for the context control system with context control interface of  FIG. 1 , including a context control interface of  FIG. 1 . 
         FIG. 3  is an exemplary screenshot of the context control interface of  FIGS. 1 and 2 . 
         FIG. 4  is an exemplary screenshot of the context control interface of  FIGS. 1 and 2 . 
         FIG. 5  is an exemplary screenshot of an exemplary application using information from the context control system. 
         FIG. 6  is an exemplary screenshot of an exemplary application using information from the context control system. 
         FIG. 7  is a flowchart illustrating example operations of the system of  FIGS. 1 and 2 . 
     
    
    
     DETAILED DESCRIPTION 
       FIG. 1  is an exemplary block diagram of an example system  100  for a context control system of a customer relationship management (CRM) system. In the example of  FIG. 1 , the system  100  allows a user of the system to control the work environment such that the user works within the same working context across various different applications. The system  100  allows the user to control the work environment through a context control interface  102  of the CRM system. For example, the user may set attributes and attribute values in the context control interface  102  that may serve as default values in each of the different applications that may be utilized. The user may define a particular group of attributes and attribute values and save the defined group for later use. The context control interface  102  makes it easy for the user to define and save multiple different working contexts and makes it easy for the user to switch between the different working contexts. The user may find the context control interface  102  useful when working within the same working context as the user switches between applications. Once the information is in the context control interface  102 , the same information is applied to the different applications without the user having to manually enter the same information in each application. Consequently, the user may save time and realize greater efficiency and accuracy by using the context control system and interface. 
     The context control interface  102  may act as a filter to filter the information that is being displayed to a user. For example, only information that matches the attributes and/or attribute values may be displayed to the user. This filtering feature enables the user to focus on the particular context at hand. The filtering feature works across multiple applications. Thus, once the attributes and values are set in the context control interface  102 , the information displayed to the user will be in the context of those set attributes and values because only information that matches the set attributes and values will be eligible for display. Any other information may be filtered out from the view or from manipulation by the user due to the current context criteria. 
     Additionally, the system  100  may include customizing features that allow the context control system and the context control interface  102  to be configured for a particular user. For example, the context control system and the context control interface  102  may be configured for a particular user based on their job responsibilities, their job function, and/or their access level. For instance, a supervisor may need unlimited access such that their access within the context control system and the context control interface is not restricted. On the other hand, a more junior person may only need to work with a particular set of information, such that their access within the context control system and the context control interface may be more restricted or constrained than that of the supervisor. 
     Thus, the context control system and the context control interface  102  may allow the user to quickly and efficiently manage the different working contexts across multiple different applications, where the information and business objects across the various applications may be linked and/or related. For example, the system  100  may reduce the number of repeated data entries that the user may otherwise need to make. While system  100  is discussed throughout with respect to a CRM system, it should be apparent that the system  100 , especially including the context control system and the context control interface  102 , may be utilized in other types of systems. 
     As just referenced, the context control interface  102  may display information regarding, and organized with respect to, a working context across multiple applications being used by a user. For example, the context control interface  102  may display information for a selected context and/or may be used to set the attributes and attribute values for the selected context of a user  104 . In an example implementation, the context control interface  102  may be callable from a homepage that is personalized to the user  104 , or may be otherwise accessible using the system  100 . The context control interface  102  is discussed in greater detail below in association with  FIG. 2 , and in accordance with various example implementations. 
     The user  104  may represent, for example, a user of the context control interface  102  in various applications  105 . For example, the user  104  may be a marketing representative who may use the context control interface  102  to view or manage his or her marketing campaigns, including potential future campaigns. In other example implementations, the user  104  may be a key account manager who may use the context control interface  102  to view or manage the key customer accounts so that the user  104  may focus exclusively on these key accounts. 
     The context control interface  102  may be associated with, and/or provided by, a context control system  106 . The context control system  106  may be configured to define and manage various working context information and other information useful to the user  104 , in a way that is easily accessible by, and useful to, the user  104 . For example, the context control system  106 , perhaps in conjunction with other CRM components, may be used to coordinate the population of various fields in an application with the information from the context control interface  102 . The context control system  106  may be used to customize the system  100  for a particular user  104  such that the user  104  may be able to work in just specific working contexts. The context control system  106  also may be used to pull information that is first entered into an application  105  by the user  104  and to use that information to populate the context control interface  102  and to define a working context based on the information first entered into the application  105 . The context control system  106  may then use the newly defined working context to populate fields in a different application, thus enabling the user to continue to work in the same context as the first application in which the information was first entered without having to reenter the same information. 
     The context control system  106  may allow the user  104  to sort, filter, prioritize and/or categorize various working contexts using the context control interface  102 . For example, a key account manager may filter through the customer accounts to view just the customer accounts that have been designated as key accounts. The key account manager may use the context control system  106  to search information related to just the key accounts and/or to view upcoming marketing campaigns related to just the key accounts. Examples of the context control system  106  are discussed in greater detail below in association with  FIG. 2 . 
     The context control system  106  may be part of a customer relationship management (CRM) system, which may include an operational CRM  108 . The operational CRM  108  may be used, for example, to automate various business processes, or to otherwise provide automated support of various aspects of customer relationship management. For example, the operational CRM  108  may provide automated support for sales, marketing, and service for a business or businesses through sales process logic  110 , marketing process logic  112 , and service process logic  114 , respectively. 
     The operational CRM  108  also may include the various business applications  105 . For example, the various business applications may include a trade promotion management application, a funds management application, and a claims management application. Each of these applications  105  may include multiple different features and functionality, where many of the features within each of the applications  105  may use and take advantage of the uses of the context control system  106  and the context control interface  102 . The various applications  105  and some of their many features are discussed below in more detail with respect to  FIGS. 2 ,  5  and  6 . 
     In more specific examples, the sales process logic  110  may automate and/or provide information about sales and sales force management tasks. For example, sales process logic  110  may automate or provide information about predicting future sales, providing administrative sales support, or maintaining customer-specific information. 
     Somewhat similarly, the marketing process logic  112  may automate and/or provide information about marketing. For example, the marketing process logic  112  may automate or provide information about current marketing trends, or may support implementation of a current marketing plan. For example, the marketing process logic  112  may conduct surveys, send e-mails or other communications to customers regarding a current marketing plan, or coordinate with marketing service providers to implement a marketing plan therewith. Additionally, the marketing process logic  112  may work in conjunction with applications  105 , including a trade promotion management application. 
     The service process logic  114  may automate and/or provide information about services provided to customers as part of a sale or other interaction with the customers. For example, the service process logic  114  may automate and/or provide information about customer complaints or requests, or may provide technical or other support to customers, or may handle customer exchanges or refunds. 
     Thus, the operational CRM  108  provides support and assistance for identifying current or potential customers, planning trade promotions for customers, executing sales to the customers, and then providing assistance to the customers in support of the executed sales. In other words, the operational CRM  108  facilitates present and future interactions between an enterprise (including the user  104 ) and its customers. Consequently, although not specifically or separately illustrated in  FIG. 1 , the operational CRM  108  may include, or be associated with, collaborative CRM, which may provide and manage a number of different communication techniques (e.g., e-mail, telephone, or other interactions) between the sales or marketing representative or other user  104  and a given customer(s). Thus, such collaborative CRM facilitates interactions, or collaborations, between various associated entities (e.g., between sales representatives and customers, between service providers and customers, and/or between marketing professionals/campaigns and customers) 
     As appreciated from the above description, the operational CRM  108  thus may be used to establish, maintain, and grow customers over a lifetime of the enterprise. In this regard, the operational CRM  108  may be assisted by other CRM features, e.g., analytics  116 , ecommerce  118 , and access modes  120 . 
     The analytics  116 , for example, may analyze data gathered by the operational CRM  108  (or by components thereof), or relevant data that is otherwise available, in order to improve or enhance customer relationships. For example, the analytics  116  may analyze data gathered by the sales process logic  110  and provide this information to the user  104  (e.g., to identify new customers, increase profitability, or otherwise facilitate the job of the user  104 ). Similarly, the analytics  116  may analyze data associated with a marketing campaign of the marketing process logic  112 . The analytics  116  also may provide support to the service process logic  114 , e.g., by analyzing a success rate of a customer call center, or by tracking a number of returns of a sold product. 
     Ecommerce  118  may provide a way to manage a company&#39;s electronic commerce and/or internet interactions. For example, ecommerce  118  may manage the sales process logic  110  when customers purchase merchandise using a website of the enterprise, or using affiliate websites. 
     The access modes  120  may provide various views of CRM processes depending on which user may be trying to access the system. For example, the access mode  120  may enable one user unrestricted access to the various working contexts that may be accessible through the context control interface  102  when the user  104  is a supervisor, and the access mode  120  may also provide restricted access to the various working contexts such that a more junior person may have access only to particular working contexts based on the user&#39;s job function through the context control interface  102 . 
     The operational CRM  108 , including the analytics  116 , ecommerce  118 , and the access modes  120  may all run off of a CRM server  122 . The CRM server  122  may provide some or all of the customer relationship management (CRM) system referenced herein to other computing systems over a network. For example, the CRM server  122  may use CRM middleware  124  to provide CRM sales data from a data warehouse  126  to the operational CRM  108  for processing (e.g. by the sales processing logic  110  and/or the sales workbench system  106 ), and then to the device  128  for display to the user  104 . 
     The CRM middleware  124  may connect software components, devices and/or applications, including distributed applications and back-end or legacy applications. For example, the CRM middleware  124  may connect the CRM server  122  or operational CRM  108  to the data warehouse  126 . The CRM middleware  124  may also for example, allow the context control system  106  to interact with the data warehouse  126  through the operational CRM  108 . Thus, data entered into the context control interface  102  may be organized and stored in the data warehouse  126  using the context control system  106 . Similarly, information stored in the data warehouse  126  may be used to populate the context control interface  102  using the context control system  106 . The CRM middleware  124  may implement an appropriate messaging infrastructure, or other integration services or capabilities, as needed. 
     The data warehouse  126  may represent one or more of a database, memory or other storage device(s) containing information related to the CRM system. For example, the data warehouse  126  may contain customer account information, contact information, sales information, attribute information, customizing information, attribute value information that may be managed by the context control system  106  and manipulated and displayed in the context control interface  102  which may run on the device  128 . In another example implementation, the CRM information may be stored in multiple (types of) data warehouses  126 , which may communicate with the CRM server  122 . 
     The device  128  may be any device configured to display and/or interact with a CRM system. For example, the device  128  may be a personal digital assistant (PDA), mobile phone, laptop, desktop computer or other device capable of communicating with the CRM server  122  and allowing a user  104  to interact with the context control interface  102  and other interfaces associated with applications  105 . In another example embodiment, multiple devices  128  may communicate with the CRM server  122 . 
     The above description provides example implementations of a CRM system. It will be appreciated that many other features and functions may be included in such a CRM system than may be described here in detail. Further, the illustrated CRM system and system components may interact in any known or acceptable manner, e.g., using an underlying application platform. Thus, the various illustrated components may be combined, or may communicate with one another, in any acceptable or desired fashion. For example, the analytics  116 , or component(s) thereof, may be considered to be part of (components of) the operational CRM  108 , such as when the marketing process logic  112  includes analytics for analyzing a customer response to a previous marketing campaign. 
       FIG. 2  is a block diagram of an example system  200  for the context control system  106  of  FIG. 1 . The system  200  may include, or provide, the context control interface  102  operated by the user  104 . In the following description, the user  104  may also be referred to explicitly as a key account manager  104 , although it will be appreciated that other users, as referenced above, may use the context control interface  102  (e.g., a marketing associate). 
     The user  104 , as referenced above, may be a user of a trade promotion application  205   a , a search application  205   b , a funds management application  205   c , and/or a claims management application  205   d  who has multiple customer accounts for which to manage marketing promotions or to process and manage claims. The user  104  may use the context control interface  102  to set a working context that will apply to each of the different applications  205   a - 205   d . For example, the user  104  may use the context control interface  102  to set attributes and attribute values to work on a particular product promotion for a customer over a particular period of time. In an example implementation, the account manager  104  may have hundreds of customer accounts to manage. The context control interface  102  enables the account manager  104  to enter the attributes and attribute values one time in the context control interface  102  and then those attributes and values are automatically mapped to and populate one or more corresponding fields in the various applications  205   a - 205   d . Thus, the user  104  is able to work on the same customer product promotion for the particular period of time in each of the applications  205   a - 205   d . The user  104  remains in that particular working context even as the user switches focus from one of the applications  205   a - 205   d  to another of the applications  205   a - 205   d.    
     The context control interface  102  facilitates the user  104  creating and saving multiple different working contexts and easily switching between the different working contexts. Thus, for the user  104  who works on promotions for different products for different customers, the user can define and save a working context for each different trade promotion. When the user  104  works on a particular trade promotion, the user  104  simply selects the saved working context for that promotion from the context control interface  102  and the relevant information is populated into the appropriate fields in the different applications  205   a - 205   d  as the user navigates from application to application while working within the same specific working context. 
     In another example implementation, the user  104  may be a junior marketing associate or other sales-associated user who may use system  200  to create and manage customer-related trade promotions. In this example, the context control interface  102  may be customized for that particular junior marketing associate  104  such that the junior marketing associate  104  can only work within a defined set of one or more working contexts. This feature enables a supervisor or other manager to define constraints for the junior marketing associate  104  such that when the associate navigates from application to application they remain within the customized working contexts set by the supervisor or manager. 
     The context control interface  102  may be an interactive interface that enables a user  104  to create and define working contexts. The context control interface  102  also enables a user  104  to select a previously defined and/or saved working context. The context control interface  102  may be displayed in various forms including a short form and a pop-up window long form and the interface may exhibit various characteristics. For example, the context control interface  102  may be dragable on the display. The context control interface  102  also may be resizable and also can switch between a fixed position on the display and a flexible position that can be moved around by the user  104 . The context control interface  102  may display on top of the interfaces for the applications  205   a - 205   d  and when hovering on top of those interfaces it may have a translucent quality that enables the user  104  to see both the information in the context control interface  102  and any information on the application interface below the context control interface  102 . 
     The context control interface  102  may include multiple fields  202 . For example, the context control interface  102  may include a context name field  204 , one or more attribute name fields  206  and one or more attribute value fields  208 . 
     The context name field  204  may be configured to identify a working context. The context name field  204  may be defined by the user  104  when creating a new working context. The context name that is assigned by the user may be saved in the data warehouse  126  in the context data  216 . The context data  216  may be associated with the other fields that are populated by the user  104 . For example, the user  104  may assign a context name to a particular working context that is meaningful to the user  104  so that when the saved context name is later retrieved, then the user  104  will be reminded of the context by the context name. The context name field  204  may include a selector such as, for example, a drop down selector that provides a list of saved contexts in the context data  216 . 
     In one exemplary implementation, the context control interface  102  may be displayed as a bar placed in one of the tool bar areas for a window. For example, the context control interface  102  may be in a gray bar area at the top of a window and may show just the context name field  204  that identifies the current context name to the user  104 . In this implementation, a drop down menu next to the context name field  204  allows the user  104  to see and select from a list of other saved and/or predefined contexts. A selection of one of the contexts from the drop down menu may change the working context from the current context to the selected context and the selected context name will be displayed in the context name field  204 . A selection of an edit button in the gray bar area may expand the context control interface  102  to show the other fields and buttons. Alternatively, a selection of an edit button in the gray bar area may instantiate a pop-up window of a full context control interface  102  that displays the other fields and buttons, thus allowing the user  104  to make edits to the context and/or to define and save a new working context. 
     The attribute name fields  206  may be configured to identify one or more attributes that define the working context. Examples of attributes that may populate the attribute name fields  206  include planning customer, planning period, planning material, product, account, target group, account hierarchy node, trade promotion type, funds plan identifier, start date, and end date. The attribute name fields  206  are customizable and may be defined by the user  104 . The different attributes that are viewed in the attribute name fields  206  may be saved and stored in the data warehouse  126  in the attribute name data  218 . The attribute name fields  206  may each include a selector such as, for example, a drop down selector that provides a list of saved attribute names in the attribute name data  218 . 
     The attribute value fields  208  may be configured to correspond to the attribute name fields  206  and to define one or more values for the attribute name fields  206 . The attribute value fields  208  are customizable and may be defined by the user  104 . For example, the user  104  may simply type a desired value for the particular attribute value field  208 . The different values that are viewed in the attribute value fields  208  may be saved and stored in the data warehouse  126  in the attribute value data  220 . 
     The context control interface  102  also may include other selectors and/or buttons on the interface. For example, the context control interface  102  may include a save button  230 , a cancel button  246 , an addition button  244 , a minus button  242 , and a delete button  248 . 
     The save button  230  allows the user  104  to save a working context so that it may be selected for use at a later time. Selection of the save button  230  may save the displayed attributes and attribute values under the given context name in the context name field. If the particular context is already existing, the existing context may be overwritten with the attributes and values currently being displayed. Selection of the save button  230  also may close a pop-up window of the context control interface and revert the interface to a shortened form, which may just display the working context name in an area of the toolbar. 
     The cancel button  246  may close the context control interface  102  without saving any changes that may have been made to the attribute name fields  206  and/or the attribute value fields  208 . 
     The addition button  244  may be configured to allow the user  104  to add additional attribute name fields  206  and attribute value fields  208 . Whereas the minus button  242  may be configured to allow the user  104  to delete one or more attribute name fields  206  and attribute value fields  208 . 
     The delete button  248  may be configured to allow the user  104  to delete a working context that may not be needed anymore. If the delete button  248  is selected and the current working context is deleted, then the next saved working context in the list may become the active working context. 
     The user  104  may define a particular working context as narrow or as broad as may be desired. For example, the user may define a working context in a narrow manner by using many attribute name fields  206  and many attribute value fields  208 . The more attribute name fields  206  and attribute value fields  208  that are used, then the working context may be more narrowly defined. These selected attribute name fields  206  and corresponding attribute value fields  208  may then be mapped to specific fields in the applications  205   a - 205   d  and may populate those fields. Thus, results in the applications applying the working context may be more narrowly focused. Alternatively, for example, the user  104  may define a working context in a broad manner by using fewer attribute name fields  206  and attribute value fields  208 . The fewer attribute name fields  206  and attribute value fields  208  that are used, then the working context may be more broadly defined. Thus, results in the applications  205   a - 205   d  applying the working context may be more broadly focused and include a broader, more encompassing results list. 
     In an exemplary implementation, the context control interface  102  may interact with the context control system  106  to manage the fields  202  and various buttons on the context control interface  102 . The context control system  106  may interface with the data warehouse  126  and manage the information being communicated between the data warehouse  126  and the context control interface  102 . The context control system  106  also may manage the context control information that is being communicated to and from the various different applications  205   a - 205   d.    
     The CRM server  122 , or components thereof, may serve as a communication medium between different systems or devices. For example, the CRM server  122  may retrieve information from the data warehouse  126 , provide the information to the context control system  106  (which may be running on the CRM server  122 ), and associate the context control system  106  with the context control interface  102 . In an example embodiment, the CRM server  122  may include software and/or hardware configured to read information from the data warehouse  126  and provide the information to the context control system  106  and the context control interface  102 . Also, for example, the CRM server  122  may coordinate the information flow among the applications  205   a - 205   d , the context control system  106 , the context control interface  102  and the data warehouse  126 . 
     As described above, the data warehouse  126  may be a database, memory or other storage device containing information related to a CRM system. For example, as discussed above, the data warehouse  126  may include context data  216 , attribute name data  218 , attribute value data  220  and customizing data  222 , where some of the information may be managed by the context control system  106  and displayed in the context control interface  102  and the interfaces for the applications  205   a - 205   d.    
     The context data  216  may include data and information related to the list of defined and saved working contexts including the name of the working context. The context data  216  may store the context name from the context name field  204  and include the list of contexts when the drop down menu is selected by the user  104 . The context data  216  may include information needed to point to the other tables and data in the data warehouse such that when a context name is selected the appropriate data is used to populate the fields  202  in the context control interface  102 . 
     The attribute name data  218  may include information and data related to the attributes that are available for use by the user  104  to populate the attribute name fields  206 . The attribute value data  220  may include information and data related to the values that are used to populate the attribute value fields  208 . 
     The customizing data  222  may be data that is related to a particular business or company that is using the system  200 . For example, the customizing data  222  may include user profile information and user access control information to control access to working context information based on the user profile, the user&#39;s role, or by other criteria. The customizing data  222  may assign working context profiles to different business roles within an organization such that users with different working context profiles may have access to particular working contexts. The context control system  106  may manage the information in the customizing data  222  and use the customizing data  222  to control which working contexts the user  104  may utilize within the context control interface  102 . In one implementation, for example, the customizing data  222  may be used to determine which attributes from the attribute name manager  224  may be available to a particular user or group of users. 
     It will be appreciated that the illustrated structure of the data warehouse  126  is merely a non-limiting example, and that other data organization schemes are contemplated as well. For example, as appreciated from the discussion below, some or all of the context data  216 , the attribute name data  218  and/or the attribute value data  220  may be considered to be context data  216 , so that the attribute name data  218  and the attribute value data  220  need not be stored as separate elements. 
     In an exemplary implementation, the information stored in the data warehouse  126 , including the context data  216 , the attribute name data  218 , the attribute value data  220  and the customizing data  222 , may be managed and/or presented in the context control interface  102  by the context control system  106 . For example, the attribute name manager  224  may manage or access (e.g., read from and write to) the attribute name data  218 . 
     More specifically, the attribute name manager  224  may be configured to access attribute name information from the attribute name data  218  and to populate one or more attribute name fields  206  in the context control interface  102 . For example, the attribute name manager  224  may be configured to access the list of possible attributes for selection by the user and to display the list of possible attributes in a drop down menu for one of the attribute name fields  206 . 
     In another exemplary implementation, the attribute name manager  224  may be configured to receive attribute name information from one of the applications  205   a - 205   d  that the user  104  is working within and to populate one or more of the attribute name fields  206  with the attribute name information in the context control interface  102 . For example, a user may not be working in a defined working context. Instead, the user&#39;s actions within one of the applications  205   a - 205   d  may be used to dynamically create a working context. Thus, if the user is planning a trade promotion for Customer “A” and product “XYZ” for the year “2007”, then the attribute name fields of customer, product and period (or year) may be used by the attribute name manager  224  to populate the attribute name fields  206  in the context control interface  102 . Later, when the user switches to a different application, the same attribute name fields will be used in the different application. 
     The attribute value manager  226  may manage or access (e.g., read from and write to) the attribute value data  220 . More specifically, the attribute value manager  226  may be configured to access attribute value information from the attribute value data  220  and to populate one or more of the attribute value fields  208  in the context control interface  102 . 
     In another exemplary implementation, the attribute value manager  226  may be configured to receive attribute value information from one of the applications that the user  104  is working within and to populate one or more of the attribute value fields  208  with the attribute value information in the context control interface  102 . As discussed above with respect to the example for the attribute name manager  224 , the user&#39;s actions within one of the applications  205   a - 205   d  may be used to dynamically create a working context. Thus, the values given in the example above “A”, “XYZ” and “2007” may be used to populate the attribute value fields  208  corresponding to the attribute name fields  206 . The user  104  may then name the context and save the context to the appropriate data in the data warehouse  126  using the context control system  106 . 
     The context name manager  227  may be configured to define a working context that includes one or more attribute name fields  206  and one or more attribute value fields  208 . For example, the context name manager  227  may receive the input of the context name in the context name field  204  and then save the needed information for the defined working context in the context data  216 . 
     The mapping manager  232  may be configured to map the attribute name fields  206  and the attribute value fields  208  to sets of fields within the different applications  205   a - 205   d . In this manner, the working context and the information in the context control interface  102  may be used to automatically populate related fields in the applications  205   a - 205   d . This mapping of fields enables the working context to be persistent across the various different applications  205   a - 205   d . For example, the mapping manager may map the attribute name fields  206  and the attribute value fields  208  to a first set of fields for the trade promotion application  205   a  and to a second set of fields for the search application  205   b . Similarly, the mapping manager  232  may map the fields  202  to sets of fields in the funds management application  205   c  and to the claims management application  205   d.    
     In one exemplary implementation, the mapping manager  232  may be configured to push the attributes and the values from the context control interface  102  and/or the data warehouse  126  to the appropriate fields in the applications  205   a - 205   d . In other exemplary implementations, the applications  205   a - 205   d  may utilize the mapping manger  232  to pull the attributes and the values from the context control interface  102  and/or the data warehouse  126  to populate the appropriate corresponding fields in the applications  205   a - 205   d.    
     The view generator  240  may generate an interface for a customer relationship management (CRM) system. For example, the view generator  240  may generate the context control interface  102 , based in part on the information provided by the context control system  106 , including one or more of the attribute name manager  224 , the attribute value manager  226 , the context name manager  227 , and/or the mapping manager  232 . The view generator  240  also may enable the functionality of the context control interface  102  discussed above, for example, with respect to the interface placement within the display window, its transparent characteristics and its dragable and resizable features. 
     Referring to  FIG. 3 , an exemplary screen shot  300  of a context control interface  102  of  FIGS. 1 and 2  is illustrated. As described above, the context control interface includes a context name field  204 , attribute name fields  206   a - 206   d , and attribute value fields  208   a - 208   d . The context control interface also includes a save button  230 , a cancel button  246 , a delete button  248 , addition buttons  244  and minus buttons  242 . The interface also includes a field  350  in which the user  104  can type a name to call a particular working context and that may be saved in the context data  216 . 
     In the example screen shot  300 , the attribute name fields  206   a - 206   c  are populated with the attributes “Planning Customer”, “Planning Period” and “Planning Material”, respectively. However, the corresponding attribute value fields  208   a - 208   c  are blank. These values for the attribute value fields  208   a - 208   c  may be filled in by the user. 
     Referring also to  FIG. 4 , an exemplary screen shot  400  of the context control interface  102  of  FIGS. 1 and 2  is illustrated. In the example screen shot  400 , the attribute value fields  208   a - 208   c  have been filled in with the values “Pepsi”, “2007” and “Beverages”, respectively. The values in the attribute value fields  208   a - 208   c  correspond to the attribute name fields  206   a - 206   c . The “Save As” field  350  also has been filled in to define a name for this working context and the saved working context name is displayed in the context name field  204  as “Planning Pepsi”. 
     Referring to  FIGS. 5 and 6 , exemplary screen shots of a trade promotion management application  500  and a search application  600  are illustrated, respectively. The information that has been populated into the context control interface, as shown in  FIGS. 3 and 4 , is mapped to appropriate fields  506   a - 506   c  and  508   a - 508   c  in the trade promotion application  500  and to the fields  606   a - 606   c  and  608   a - 608   c  in the search application  600 . These fields in the trade promotion application  500  and the search application  600  are automatically populated without any manual input of the same information by the user. It should be noted that these applications may include other fields particular to the application that the user may enter information. 
       FIG. 7  is a flowchart  700  illustrating example operations of the system of  FIGS. 1 and 2 . More specifically,  FIG. 7  illustrates an operational flow  700  representing example operations related to providing and implementing the context control system  106 . 
     Flowchart  700  includes accessing attribute name information and populating one or more attribute name fields with the attribute name information in a context control interface ( 710 ). For example, the attribute name manager  224  may be configured to access the attribute name information from the attribute name data  218  and populate the attribute name fields  206  with the accessed attribute information ( 710 ). 
     Process  700  includes accessing attribute value information and populating one or more of the attribute value fields with the attribute value information in the context control interface ( 720 ). For example, the attribute value manager  226  may be configured to access the attribute value information from the attribute value data  220  and populate the attribute value fields  208  with the accessed value data ( 720 ). 
     The context control interface may be displayed ( 730 ). For example, the view generator  240  may display the context control interface  102  ( 730 ). Process  700  includes mapping the attribute name fields and the attribute value fields to a first set of fields in a first application and to a second set of fields in a second application, where the first application differs from the second application ( 740 ). For example, the mapping manager  232  may map the attribute name fields  206  and the attribute value fields  208  to a first set of fields  506   a - 506   c ,  508   a - 508   c  in a first application and to a second set of fields  606   a - 606   c ,  608   a - 608   c  in a second application. 
     Implementations of the various techniques described herein may be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. Implementations may be implemented as a computer program product, i.e., a computer program tangibly embodied in an information carrier, e.g., in a machine-readable storage device or in a propagated signal, for execution by, or to control the operation of, data processing apparatus, e.g., a programmable processor, a computer, or multiple computers. A computer program, such as the computer program(s) described above, can be written in any form of programming language, including compiled or interpreted languages, and can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network. 
     Method steps may be performed by one or more programmable processors executing a computer program to perform functions by operating on input data and generating output. Method steps also may be performed by, and an apparatus may be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit). 
     Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. Elements of a computer may include at least one processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer also may include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. Information carriers suitable for embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory may be supplemented by, or incorporated in special purpose logic circuitry. 
     To provide for interaction with a user, implementations may be implemented on a computer having a display device, e.g., a cathode ray tube (CRT) or liquid crystal display (LCD) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input. 
     Implementations may be implemented in a computing system that includes a back-end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front-end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation, or any combination of such back-end, middleware, or front-end components. Components may be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (LAN) and a wide area network (WAN), e.g., the Internet. 
     While certain features of the described implementations have been illustrated as described herein, many modifications, substitutions, changes and equivalents will now occur to those skilled in the art. It is, therefore, to be understood that the appended claims are intended to cover all such modifications and changes as fall within the true spirit of the embodiments.