This invention relates generally to combined computer enabled processes in a business organization. More particularly, this invention relates to interacting with business process systems from within a business intelligence system.
Business Intelligence (BI) generally refers to software tools used to improve business enterprise decision-making. These tools are commonly applied to financial, human resource, marketing, sales, customer and supplier analyses. More specifically, these tools can include: reporting and analysis tools to present information, content delivery infrastructure systems for delivery and management of reports and analytics, data warehousing systems for cleansing and consolidating information from disparate sources, and data management systems, such as relational databases or On Line Analytic Processing (OLAP) systems used to collect, store, and manage raw data.
A subset of business intelligence tools are reporting tools. There are a number of commercially available products to produce reports from stored data. For instance, Business Objects Americas of San Jose, Calif., sells a number of widely used report generation products, including Crystal Reports™, Business Objects OLAP Intelligence™, Business Objects Web Intelligence™, and Business Objects Enterprise™. As used herein, the term report refers to information automatically retrieved (i.e., in response to computer executable instructions) from a data source (e.g., a database, a data warehouse, a plurality of reports, and the like), where the information is structured in accordance with a report schema that specifies the form in which the information should be presented. A non-report is an electronic document that is constructed without the automatic retrieval of information from a data source. Examples of non-report electronic documents include typical business application documents, such as a word processor document, a presentation document, and the like.
A report document specifies how to access data and format it. A report document where the content does not include external data, either saved within the report or accessed live, is a template document for a report rather than a report document. Unlike other non-report documents that may optionally import external data within a document, a report document by design is primarily a medium for accessing and formatting, transforming and/or presenting external data.
A report is specifically designed to facilitate working with external data sources. In addition to information regarding external data source connection drivers, the report may specify advanced filtering of data, information for combining data from different external data sources, information for updating join structures and relationships in report data, and instructions including logic to support a more complex internal data model (that may include additional constraints, relationships, and metadata).
In contrast to a spreadsheet type application, a report generation tool is generally not limited to a table structure but can support a range of structures, such as sections, cross-tables, synchronized tables, sub-reports, hybrid charts, and the like. A report design tool is designed primarily to support imported external data, whereas a spreadsheet application equally facilitates manually entered data and imported data. In both cases, a spreadsheet application applies a spatial logic that is based on the table cell layout within the spreadsheet in order to interpret data and perform calculations on the data. In contrast, a report design tool is not limited to logic that is based on the display of the data, but rather can interpret the data and perform calculations based on the original (or a redefined) data structure and meaning of the imported data. The report may also interpret the data and perform calculations based on pre-existing relationships between elements of imported data. Spreadsheets applications generally work within a looping calculation model, whereas report generation tools may support a range of calculation models. Although there may be an overlap in the function of a spreadsheet document and a report document, the applications used to generate these documents contain instructions with express different assumptions concerning the existence of an external data source and different logical approaches to interpreting and manipulating imported data.
Report-to-report navigation allows a link to be created from an element of a source report to another target report. A typical example is linking from a summary report to a detail report, where the summary context is used to “drill” on the detail.
A Business Process (BP) is a series of tasks and outcomes associated with a business activity. A BP is usually the result of a business process design or business process engineering activity. A BP can be implemented using specially designed software, the Business Process System (BPS) category of software. BPS software allows the business processes to be defined on, and be executed by, a computer. The BPS software will either use computer applications to perform business operations or will send messages to people requesting they perform certain tasks. In order to work effectively, a BPS often requires that the underlying software is constructed according to the principles of a service-oriented architecture. Thus, it is often difficult to make a suite of existing legacy systems fit with a BPS. However, a BP can be a combination of people and devices without the need for controlling software. A BP and a BPS are often outside of BI systems.
In view of the forgoing it would be desirable to create a BI tool that can provide an interface to a BP tool or system.
The invention includes a computer readable storage medium with computer executable instructions to receive an action type. A set of logic is associated with the action type. An action is defined based on the action type. The action includes a further set of logic that extends the set of logic associated with the action type. A mapping of data from a report to a target object is received in a business intelligence system. The mapping is included in the further set of logic. The action is associated with the report. The action is routed to a target system outside the business intelligence system.
The invention also includes a computer readable storage medium with executable instructions to receive an action invocation from a client application of a business intelligence system. Parameters associated with the action are validated. The action is processed according to a set of logic associated with the action. A call is made to a final target object, where the final target object is in a target system outside the business intelligence system,
The invention also includes a computer readable storage medium with executable instructions to receive a source object from a business intelligence system. An action type and a target object are specified within the business intelligence system. A mapping of a parameter to a field in the target object is received from a user. The action type, the target object, and the mapping of the parameter are sent to a target system outside the business intelligence system.
The invention is more fully appreciated in connection with the following detailed description taken in conjunction with the accompanying drawings, in which:
Like reference numerals refer to corresponding parts throughout the several views of the drawings.
The following terminology is used while disclosing embodiments of the invention:
A BI action is the invocation of a request from a source object in a BI system. The action can be processed by the BI system. The request can be of a predetermined type called a BI action type. A BI action can include logic, code or values. BI actions can be navigation actions and non-navigation actions. A navigation BI action navigates away from the source object upon invocation of the action. For a non-navigation action the BI action is invoked and completed, but the source object remains visible. Examples of actions include escalating a bug, approving a report, and adding a comment to a report element. A BI action can change data, start a workflow with the BI system or start a workflow with a BP system.
A BI action type is an operation involved in a BI context, such as, navigating to a URL, a custom action defined in a BI application or a BP application, and the like.
Context is a set of specialized metadata that is associated with BI tool or a work low, such as, a workflow in a BP tool. The metadata characterizes the environment and/or meaning of a BI action. Semantically, the metadata can perform many functions including: providing data context, user context, situational context, and describing the amount of trust placed in the source object. Metadata need not uniquely define the source objects, but it differentiates a source object from other objects.
Data context is an information framework associated with a data element. Data context may include report context (i.e., report type, report ID, title, report category, data lineage of a report part or element, data path context and the like).
User context is an information framework related to a user, such as, authentication details, credentials and identity: logon name, user group, domain, cluster, company, and the like.
Situational context is information about an object, such as, the element selected within a source object, the history of interactions with the source object, and the version of the data in the source object, the target object and the like.
Mapping is the routing of parameters through an action. For example, a mapping may be expressed as param1@TargetObject=field1@SourceObject. Alternatively, the routing can be defined by metadata in a semantic domain and is intelligible to the target object, e.g., param1@TargetObject=NAME and “NAME” is mapped to field1@SourceObject.
Semantic domain is the term for a level of abstraction based on a relational, OLAP, or other data source or a combination of more than one data sources or existing semantic domains. The semantic domain includes data model objects that describe the underlying data source and define dimensions, attributes and measures that can be applied to the underlying data source and data foundation metadata that describes a connection to, structure for, and aspects of the underlying data source. A semantic domain can be used as a level of abstraction to combine partial data sets from any number of original data sources. A semantic domain can be used to provide logical sets to which data can be associated so that data from a wide number of sources can be meaningfully aggregated. Metadata concerning the data, such as a value for data freshness, can also be associated with the data within the logic of a semantic domain. Semantic domain technology is disclosed in the following commonly-owned U.S. Pat. Nos. 5,555,403; 6,247,008; 6,578,027; and 7,181,435, which are incorporated herein by reference.
A source object is an element of a BI system that can create content that can be consumed by another element in the BI system or a BP system. Examples of elements include actions and alerts. Examples of reports include complete reports, sub-reports and report parts that include the combination of smaller parts or elements of the report. These elements include a number field, a text field, a cell, a column, a row, a graphic, chart or visualization, an analytic and the like. These reports and report parts can be presented in different presentation formats, such as, aggregations of reports (e.g., dashboards), stand alone report parts, and the like. These reports can be in HTML, XML, RePorT format (RPT) and other file formats. A source object can be associated with user context, data context and situational context. In an embodiment, the data context for a report element includes a data path context. The data path context can be defined in a number of ways including as a report part ID as described in the following, commonly owned patent application, which is incorporated by references herein: “Apparatus and Method for Defining Report Parts”, Ser. No. 11/558,861, filed Nov. 9, 2006.
A target object is an element that can consume content from a source object. The element can be inside of the BI system that includes the source object, such as, a report, report element or action. The element can be outside of the BI system. The target object can be a data source outside the BI system, BP application or another application outside the BI system. In the event the source object is also a target object, the final target object is often outside the BI system.
Embodiments of the present invention include techniques for combining business process management with BI systems to extend the domain of BI. This includes, but is not limited to, leveraging a BI system in all parts of an organization to facilitate operations and aid task completion (e.g., task driven BI and BI for task identification). Some embodiments of the present invention extend report-to-report navigation and combine it with context passing. Context (e.g., data context) is passed from the source to the target. This allows for a link between any kind of source object that can provide context to any target which can consume that context.
Also connected to the bus 106 is a memory 110. The memory 110 stores executable instructions to implement operations of the invention. In an embodiment, the memory 110 stores the following modules: a BI system module 112, a client module 114, a BI system API module 116, a BI application module 118, an action validation module 119, a rules module 120, a BP system module 122, a BP system API module 124 and a BP application module 126. In another embodiment, memory 110 stores only the non-optional modules: the BI system module 112, the client module 114, the action validation module 119 and the BP system module 122.
The BI system module 112 includes executable instructions to perform BI related functions, such as, generate, view or share reports, perform queries and analyses, and the like. The client module 114 includes executable instructions to interact with other components of the BI system module 112 and provide an interface for the user of the BI system. The client module 114 includes executable instructions to provide an interface to generate, view or share reports. The client module 114 also accepts queries, defines and invokes actions. In an embodiment, the client module supports a thick client. In another embodiment, the client module supports a thin client. The BI system API module 116 includes executable instructions to allow other tools and applications to access the BI system. The BI application module 118 includes executable instructions to perform a specific BI function and provide that function as a service. The action validation and processing module 119 includes executable instructions to validate and process actions and their associated parameters. The action validation and processing module 119 can route the action to the appropriate BI application or BP application.
The optional rules module 120 includes executable instructions for ensuring that actions taken by the user, or by executable code stored in computer memory 110, conform to a set of rules established for the BI system or the BP system. The BP system module 122 includes executable instructions to perform BP related functions, such as, define a task, assign a task, begin or continue a task and the like. The BP system API module 124 includes executable instructions to allow other tools and applications to access the BP system. This access includes specifying an interface for accepting actions, context and parameters from the BI system. The BP application module 126 includes executable instructions to perform specific BP functions and provide those functions as a service to the user or a piece of software.
The action definition module 128 includes executable instructions to allow users, system creators and administrators to define actions. These actions are defined for a particular BI system, BI system in combination with a BP system, BI application, plurality of BI applications, and the like. The user, system creator or administrator describes where, when and how an action can be invoked (e.g., source object). They specify the needed context of the action definition. They describe the target object. The vendor of an action definition module could supply kits that include prebuilt actions for a given combination of BI and BP systems.
In some embodiments, the actions are defined before or during association with a report element, i.e., at or before report design time. In an embodiment, the action definition module includes an action definition graphical user interface (GUI), such as, a report design tool, a palette of prebuilt actions, a wizard that guides the creation of actions, and the like. The executable instructions of action definition module 128 allow the user to select an action type and to specify how an action is processed. Users can add new actions types. The instructions allow the user to associate an action with a target object. In an embodiment, a user can add one or more actions to a report. In an embodiment, the action definition module 128 allows a user to select parameters from a semantic metadata layer that overlies a data source provided the action type can determine the context and parameters of the action from the metadata layer. That is, metadata is used to look up, match and map terms from the source and target objects.
The executable modules stored in memory 110 are exemplary. Additional standard modules such as an operating system module or a graphical user interface (GUI) module are included in some embodiments of the invention. It should be appreciated that the functions of the modules maybe combined. In addition, the functions of the modules need not be performed on a single machine. Instead, the functions may be distributed across a network, if desired. Indeed, the invention is commonly implemented in a client-server environment with various components being implemented at the client-side and/or the server-side. It is the functions of the invention that are significant, not where they are performed or the specific manner in which they are performed.
In an embodiment, the client devices 214-1, 214-2, and 214-3 are computers similar to those shown in
The BI system interface 216 provides an interface to a BI system 212. In an embodiment, the BI system includes an optional entry point 215 to which incoming requests from the clients are directed. The entry point defines the BI system, controlling access and letting the clients know what applications and services are available in the system. The BI system 212 includes one or more repositories and BI applications. The BI applications 218-1 and 218-2 are attached to a bus. The bus is coupled to a repository 221 (e.g., report repository) through an optional access controller 223. The controller controls access to a data source, e.g., database 250. Also coupled to the bus is a web services adapter 227, such that the BI system can make use of web services when communicating with the client applications.
The BI system module 112 defines the BI system 212, including the entry point 215, access controller 223 and repository 221. The BI application module defines the BI applications 218-1 and 218-2. The executable instructions in the action validation module 119 define an action validator 219. The action validator validates actions and routes the action to the appropriate BI application.
A first BI application 218-1 is coupled to a BP system interface (e.g., an API) 224 for a BP system. The BI application 218-1 executes instructions found in the BI application module 118 of
In an embodiment, the user's interaction with the BP system is initiated via an alert in a BI system. The system serves up a report to a user. The user receives the report while the system waits 408. The user in reviewing the report, a section of the report or a sub-report of the report elects to take action. The user takes action by invoking an action that is associated with the report 410. The action and associated context and parameters are processed 412. Optionally, depending on the action, the user is sent a preliminary action message 414. If the action is synchronous, a response may be sent to the user 416. Synchronous actions return a response to the action. Asynchronous actions are actions that do not give a timely response. In an embodiment, the BI system may treat synchronous actions as asynchronous actions for performance reasons. In an embodiment, the synchronous and asynchronous actions are combined.
In an embodiment, the user's interaction with the BI system is extended by including actions in a report, where the actions are processed in the BI system. The processing operations 408-412 are valid for this interaction. The action and associated context and parameters are processed within the BI system.
In a normal business process, such a report leads the purchasing agent to purchase, or considering the purchase of, products below target inventory levels. This purchasing can be done by including a purchasing action in the report. The user selects a region of the report, say the table 612 or a row of the table, e.g. “Dresses” 614.
As illustrated in
The GUI 800 includes the order interface of the supplier ordering system 802. Portions of the order are prepopulated with parameters from the report 601 and the action type. For example, the customer ID 804 is defined in the action type. The name of the purchaser 806 is extracted from the user context. The purchase reason 808 was mapped to the report title by the creator of the action. The name of the product to be ordered is placed in table 810. The amount is prepopulated by the action. However, in one embodiment, the purchaser can override this by typing in a different amount 812. The purchaser can place the order or cancel the order and return to the GUI 600 with the inventory report 601.
In an embodiment of the invention, invoking an action does not redirect the user to the interface of another application. In such an embodiment, the action is completed on the BP system, or other system remote from BI system, directly without a GUI interaction. An example of this is direct data write back to a data source from a report with automated refreshing of the report. This is illustrated in the inventory report of
The inventory ordering example of
Within the display 904 of the mobile device 900 is a GUI displaying a report 912. This exemplary report is triggered by an alert and shows the user the fact that customer “Baker” sales have dropped 10%. The user on the mobile device can take action in a number ways. Some of these actions 916 are included in the report and are mapped to the hot keys 906. The actions 916, in the illustrated example, include: retrieving the “customer profile”, retrieving the “customer sales history”, “forward the alert”, retrieving the “trust level details” and “more actions”.
As shown in
The examples described in conjunction with
Actions are associated with a source object for a particular BI system by executing instructions stored in the action definition module 128.
The action type contains logic, code and variables. This logic is used by the BI system to process the action. The logic can be used to determine how the action is processed, how two or more actions depend on each other, or how the action relates to other objects in the BI system. The code is used in the servicing of an action. For example, if the action includes writing to a specific data source then code is included in the action type. The action type also includes variables. The variable can serve a number of roles, including the ID or name of the action, default values to pass to target objects and values that can be consumed by the BI system, code in the action or logic in the action. In operation 1206 of work flow 1200 the logic, code and variables of the action are set. The logic, code and variables, once set, define an action.
The target object for the action is selected 1208. In an embodiment, there are multiple target objects. In an embodiment, the target objects are objects within the BI system, such as another report, report element or another action. In another embodiment, the target objects are outside of the BI system and include an API for BP systems, BP applications, data sources and the like. When the target object is outside of the BI system, the BI system can include an object representing the target object. The type of target object is predetermined by the action type. In an embodiment, the types of target objects that can be the target for an action are filtered out of a list of possible targets.
The input parameters needed to process the action are mapped to output parameters 1210. The target object has a series of fields which are completed with output parameters from the action. The output parameters from the action are created from the input parameters to the action. The input parameters come from the fields in the source object, the context of the source object, metadata value for the source object, user input or other variables.
In an embodiment, the parameters mapped from input to output of the action are put through one or more transforms. These transforms are defined by the action type creator or the action creator. These transforms are included in the logic of the action. In an embodiment, the mapping makes use of a semantic domain. If an action contains an input parameter that is based on a semantic domain and the source object is based on the same domain, automatic mapping of fields in the source object to fields in the target object can be achieved. This automated mapping can be altered by the action creator, for example, by inserting a transform into one or more mappings. In an embodiment, the user maps fields in the target object to fields in the source object, the output of field of a transform in the action, static or semi-static parameters of the BI system, a metadata value for the source object or a request to prompt the user who invokes the action for the parameter.
In one embodiment, the target system interprets the action message based on a message standard without the action providing explicit parameter mappings. An action's message is the data sent to the target system. The target system servicing the action decodes the message format. In such an embodiment, at design time it is not necessary to explicitly map fields. In an embodiment, more than one target system can consume the message from the source object.
The action is associated with the source object 1212. An example of a source object is a report. In an embodiment, the action is stored in the source object. In another embodiment, a reference to the action is stored in the source object while the action is stored elsewhere. Accordingly, the addition of actions to a report, where the source object for the action is the report or a report element, does not appreciably change the size of the report. An action once defined and stored can be reused. If the action is fully context aware, the input parameters need not be altered. However, in an embodiment it is necessary to alter the input parameters with action reuse.
Embodiments of the present invention allow for a many to many relationship between source objects, actions and target objects. Actions can be associated with more than one source object. In an embodiment, this is done by assigning more than one source action to the source object. An action can have more than one target object. A target object can be associated with one or more source objects.
The processing operations 1300 show how an alert can have one or more actions associated with it. A user, viewing an alert notification based on the alert, will be able to choose which of the one or more actions to perform. The context of an alert includes the data context of the alert. The data context is the parameters that were used to trigger the alert notification.
The BI system manages the actions. These actions are associated with source objects when the source objects are (re)designed. The relationship between objects in the BI systems and another system are shown in
In an embodiment, the BI system provides the functionality to list all the action types for the BI system. In an embodiment, the action types can be filtered by the BI application they are associated with. The system can return all the properties and relationships of the action types. In an embodiment, the system retrieves the properties and relationships of the action types by examining the metadata associated with the action types and actions. The system can receive the selection of an action type and display a list of actions of that type. The system will permit, subject to authentication, the addition, modification and deletion of action types. In an embodiment, an action can be copied to create a new action.
When introducing elements of embodiments of the invention, the articles “a”, “an”, “the” and “said” are intended to mean that there are one or more of the elements. The terms “comprising”, “including” and “having” are intended to be inclusive and to mean that there may be additional elements other than the listed elements.
An embodiment of the present invention relates to a computer storage product with a computer-readable medium having computer code thereon for performing various computer-implemented operations. The media and computer code may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well known and available to those having skill in the computer software arts. Examples of computer-readable media include, but are not limited to: magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROMs, DVDs and holographic devices; magneto-optical media; and hardware devices that are specially configured to store and execute program code, such as application-specific integrated circuits (“ASICs”), programmable logic devices (“PLDs”) and ROM and RAM devices. Examples of computer code include machine code, such as produced by a compiler, and files containing higher-level code that are executed by a computer using an interpreter. For example, an embodiment of the invention may be implemented using Java, C++, or other object-oriented programming language and development tools. Another embodiment of the invention may be implemented in hardwired circuitry in place of, or in combination with, machine-executable software instructions.
The foregoing description, for purposes of explanation, used specific nomenclature to provide a thorough understanding of the invention. However, it will be apparent to one skilled in the art that specific details are not required in order to practice the invention. Thus, the foregoing descriptions of specific embodiments of the invention are presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed; obviously, many modifications and variations are possible in view of the above teachings. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, they thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated. It is intended that the following claims and their equivalents define the scope of the invention.
This application claims benefit, under 35 U.S.C. § 119(e), to the following U.S. provisional patent applications, each of which is incorporated by reference in its entirety: Ser. No. 60/864,459, filed Nov. 3, 2006, entitled “Apparatus and Method for Creating Business Process Workflows within Business Intelligence Systems”; and Ser. No. 60/864,355, filed Nov. 3, 2006, entitled “Apparatus and Method for Mixing Business Intelligence and Business Process Workflow”. This application is related to the commonly owned and concurrently filed application entitled “Apparatus and Method for Mixing Business Intelligence and Business Process Workflows”, Ser. No. ______, filed Sep. 28, 2007.
Number | Date | Country | |
---|---|---|---|
60864359 | Nov 2006 | US | |
60864355 | Nov 2006 | US |