IP Library Granted Patent US 8,200,604
Granted Patent B2
US 8,200,604 · App. 11/933,827 · Granted Jun 12, 2012

Multi-platform business calculation rule language and execution environment

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,200,604
App. No.
11/933,827
Granted
Jun 12, 2012
Kind
B2
Abstract

Computer-readable storage media, computer-implemented methods, and systems are disclosed for a multi-platform calculation rule language and its environment. A calculation rule, presented in an expression language and specifying one or more functions, is received. The expression language, for a plurality of different platforms, allows each of a plurality of functions to be expressed using a common syntax. A selected platform is identified on which the calculation rule is to be executed. The calculation rule is resolved to the attributes of the data model in the selected platform to apply the calculation rule to the data model. The calculation rule is executed by performing the one or more functions specified in the calculation rule, and the results from executing the calculation rule are reported.

Claims (55)

1. A computer-readable storage medium storing instructions executable by a computing system to perform a plurality of functions, comprising:

receiving a calculation rule presented in a multi-platform expression language to be applied to a data model selected from different data models having different structures, the calculation rule being received by one or more of:

retrieving the calculation rule from a store of previously-created calculation rules; and

accepting user entry of the calculation rule;

processing the calculation rule for application to the data model, including:

responding to whether the calculation rule is data-driven, including:

when the calculation rule is data-driven, determining a condition specified by the calculation rule and performing an action specified by the calculation rule based on the condition; and

when the calculation rule is not data-driven, performing the action specified by the calculation rule;

identifying a database platform supporting the data model; wherein the database platform is selected from a group of platforms comprising: a structured query language (SQL) platform that accesses a SQL database in which dimensions and data models are represented as a plurality of tables and a multi-dimensional database platform that accesses a multi-dimensional database in which the dimensions and the data models are stored in a multi-dimensional structure;

preprocessing the calculation rule to adjust the calculation rule to operate based on a dimensionality of the data model; wherein preprocessing the calculation rule comprises determining when the calculation rule accesses more information than the data model provides and determining when to eliminate the calculation rule based on this determination;

upon identifying one or more variables included in the calculation rule, resolving the variables in terms of the data model; and

upon identifying one or more parameters included in the calculation rule, soliciting input for the parameters for use in applying the calculation rule to the data model by displaying a prompt to receive the parameters; and

executing the calculation rule.

2. The computer-readable storage medium of claim 1 , wherein the identifying of the selected platform comprises receiving a user input identifying the selected platform.

3. The computer-readable storage medium of claim 2 , wherein the identifying of the selected platform comprises automatically identifying the selected platform.

4. The computer-readable storage medium of claim 2 , further comprising evaluating data maintained in the data model to determine whether the data model maintains data referenced in a function specified in the calculation rule before executing the function.

5. The computer-readable storage medium of claim 2 , wherein the calculation rule includes an engine including a plurality of scripted rules configured to perform a transaction-based function.

6. A computer-implemented method, comprising:

receiving a calculation rule presented in an expression language and specifying one or more functions, the expression language allowing for each of a plurality of functions performable on a plurality of different platforms to be expressed using a common syntax; wherein the different platforms comprise: a structured query language (SQL) platform that accesses a SQL database in which dimensions and data models are represented as a plurality of tables and a multi-dimensional database platform that accesses a multi-dimensional database in which the dimensions and the data models are stored in a multi-dimensional structure;

identifying a selected platform on which the calculation rule is to be executed;

resolving the calculation rule to attributes of a data model in the selected platform to apply the calculation rule to the data model; wherein resolving the calculation rule comprises determining when the calculation rule accesses more information than the data model provides and determining when to eliminate the calculation rule based on this determination;

responding to whether the calculation rule is data-driven, including:

when the calculation rule is data-driven, determining a condition specified by the calculation rule and performing an action specified by the calculation rule based on the condition; and when the calculation rule is not data-driven, performing the action specified by the calculation rule;

executing the calculation rule by performing the one or more functions specified in the calculation rule; and

reporting the results from executing the calculation rule.

7. The computer-implemented method of claim 6 , wherein the expression language provides for the calculation rule to include one or more variables resolvable when the calculation rule is applied to the data model.

8. The computer-implemented method of claim 6 , wherein the expression language provides for the calculation rule to include one or more parameters solicited from a user when the calculation rule is applied to the data model.

9. The computer-implemented method of claim 6 wherein the identifying of the selected platform comprises receiving a user input identifying the selected platform.

10. The computer-implemented method of claim 6 , wherein the identifying of the selected platform comprises automatically identifying the selected platform.

11. The computer-implemented method of claim 6 , further comprising evaluating data maintained in the data model to determine whether the data model maintains data referenced in the one or more functions before executing the calculation rule.

12. The computer-implemented method of claim 6 , further comprising retrieving the calculation rule from a store of previously-created calculation rules.

13. The computer-implemented method of claim 12 , wherein the calculation rule includes an engine including a plurality of scripted calculation rules configured to perform a transaction-based function.

14. The computer-implemented method of claim 6 , further comprising creating the calculation rule, wherein the calculation rule is derived from one or more rule types that correspond with a form one or more data types used in creating the data model.

15. A system, comprising:

a processor and a computer-readable storage medium;

a rule interface using the processor that is configured to receive a calculation rule presented in a multi-platform expression language to be applied to a data model, the calculation rule being received by one or more of:

retrieving the calculation rule from a store of previously-created calculation rules; and

accepting user entry of the calculation rule; and

a run-time system configured to:

receive the calculation rule from the rule interface;

identify a database platform supporting the data model; wherein the database platform is selected from a group of platforms comprising: a structured query language (SQL) platform that accesses a SQL database in which dimensions and data models are represented as a plurality of tables and a multi-dimensional database platform that accesses a multi-dimensional database in which the dimensions and the data models are stored in a multi-dimensional structure;

identify whether the calculation rule includes one more unresolved terms; upon identifying the calculation rule includes one or more unresolved terms, resolving the unresolved terms;

adjust the calculation rule for execution on the data model; wherein adjusting the calculation rule comprises determining when the calculation rule accesses more information than the data model provides and determining when to eliminate the calculation rule based on this determination; and

identifying whether the calculation rule is data-driven, including: when the calculation rule is data-driven, determining a condition specified by the calculation rule and performing an action specified by the calculation rule based on the condition; and when the calculation rule is not data-driven, performing the action specified by the calculation rule.

16. The system of claim 15 , wherein the run-time system further comprises a preprocessor configured to adjust the calculation rule to operate based on a dimensionality of the data model.

17. The system of claim 15 , wherein the identifying of the database platform is performed one of:

by receiving a user input identifying the database platform; and

automatically identifying the database platform.

18. The system of claim 15 , wherein the one or more unresolved terms include:

a variable resolvable to the data model; and

a parameter to be solicited from a user.

19. The system of claim 15 , further comprising a type library, including:

one or more rule types from which the calculation rule is derived; and

one or more data types from which members of the data model are derived, variable resolvable to the data model,

wherein the rule types and the data types are configured to correspond to facilitate application of the calculation rule to the data model.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034542/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 14, 2008
From: GOETSCH, GORDON; HOBERECHT, STEVEN L.; LI, BAOMIN; SCHMIDT, KEVIN; SEBELSKY, SCOTT; YAN, PEIYUAN; YANG, MARK
To: MICROSOFT CORPORATION
Reel/Frame 020359/0080 →