# US 12,216,646 B2 · Data retreival framework and use thereof

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,216,646 B2
- Document ID: US12216646B2
- Status: Granted
- Kind: B2
- Application number: 18/212,454
- Filed: 2023-06-21
- Published: 2024-12-26
- Granted: 2025-02-04
- Earliest claimed: 2023-06-21
- Assignees: Sap SE
- Applicants: Sap SE
- Inventors: Stefan Kraus; Dimitrij Raev; Waldemar Isajkin; Joerg Franke; Marco Pesarese
- Web page: https://patentgrep.com/patent/US12216646B2

## CPC

- G06F 16/2425: {Iterative querying; Query formulation based on the results of a preceding query}
- G06F 16/2423: {Interactive query statement specification based on a database schema}
- G06F 16/248: Presentation of query results
- G06F 16/283: {Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Techniques and solutions are provided for processing query requests from a software application, such as one having a user interface model, using an analytical data protocol that accesses an analytic query. Often, user interface models access data using transactional data protocols, which can limit analytical actions that can be performed through a user interface, particularly actions altering data presented or a data format as compared with pre-defined analytical objects. A query request associated with a user interface query model is received and converted to be executable using at least one analytical query model object. The request, in an analytical protocol, is submitted to a virtual data model. The query request in the analytical protocol is converted to be used with an analytic query defined in the virtual data model. The converted query request is executed against a data store and query results are returned to a user interface layer.

## Claims

### Claim 1

A computing system comprising:
at least one hardware processor;
at least one memory coupled to the at least one hardware processor; and
one or more computer-readable storage media storing computer-executable instructions that, when executed, cause the computing system to perform operations comprising:
receiving user input providing a query request requesting execution of a query associated with a user interface query model;
converting the query request to be executable using at least one analytical query model object;
submitting the query request in an analytical protocol to a virtual data model;
converting the query request to be used with an analytic query defined in the virtual data model;
executing the query request using the analytic query against a data store; and
returning query execution results to a user interface layer associated with the user interface query model in response to the executing the query request.

### Claim 2 (depends on 1)

The computing system of claim 1, wherein the query is a first query, the operations further comprising:
through the user interface layer, submitting a second query to one or more objects in the virtual data model, the second query being in a transactional data protocol.

### Claim 3 (depends on 1)

The computing system of claim 1, wherein returning query execution results comprises:
receiving the query execution results in an analytical result container; and
converting the query execution results in the analytical result container for storage in a result model object in the user interface layer.

### Claim 4 (depends on 1)

The computing system of claim 1, wherein the at least one analytical query model object is defined at least in part with respect to the analytic query.

### Claim 5 (depends on 4)

The computing system of claim 4, wherein the analytic query is used with a cube object defined in the virtual data model.

### Claim 6 (depends on 1)

The computing system of claim 1, wherein the at least one analytical query model object is located in an exposure layer, and the exposure layer comprises a data analyzer, the operations further comprising:
receiving user input requesting a pivot operation on at least a portion of the query execution results;
transforming the at least a portion of the query execution results according to the pivot operation; and
sending updated data produced as output of the transforming to the user interface layer.

### Claim 7 (depends on 1)

The computing system of claim 1, the operations further comprising:
storing variable values associated with one or more variables associated with the user interface layer; and
prior to submitting the query request in the analytical protocol to a virtual data model, assigning at least one variable value of the variable values to an operation defined in the query request.

### Claim 8 (depends on 7)

The computing system of claim 7, wherein at least one variable value of the variable values is a default variable value, the operations further comprising:
receiving user input altering the default variable value; and
retrieving supplemental query results from the data store using the altered default variable value.

### Claim 9 (depends on 1)

The computing system of claim 1, wherein the at least one analytical query model object includes attributes defined in one or more objects of the virtual data model.

### Claim 10 (depends on 9)

The computing system of claim 9, wherein the at least one analytical query model object assigns at least one attribute of the attributes as a row format attribute and at least another attribute of the attributes as a column format attribute.

### Claim 11 (depends on 10)

The computing system of claim 10, wherein an assignment of the at least one attribute to row format or column format is a default assignment, the operations further comprising:
receiving user input requesting a change in the assignment of the at least one attribute or the at least another attribute
transforming data for the at least one attribute or the at least another attribute according to the change; and
providing updated data for the at least one attribute or the at least another attribute to be displayed in a graphical user interface of the user interface layer.

### Claim 12 (depends on 9)

The computing system of claim 9, wherein the user interface layer is associated with a model object definition that specifies at least a portion of the attributes as default attributes to be used be presented in a user interface display.

### Claim 13 (depends on 12)

The computing system of claim 12, the operations further comprising:
receiving user input selecting at least one attribute of the attributes that is not a default attribute to be included in a user interface display; and
retrieving supplemental query results from the data store for the at least one attribute of the attributes that is not a default attribute using the at least one analytic query model object and the analytic query.

### Claim 14 (depends on 9)

The computing system of claim 9, wherein the user interface layer is associated with a model object definition that specifies at least one attribute of the attributes as a default filter, and provides a default value for the default filter.

### Claim 15 (depends on 14)

The computing system of claim 14, the operations further comprising:
receiving user input removing a default filter or changing a value of a default filter to a value different than the default value; and
retrieving supplemental query results from the data store for the at least one attribute of the attributes based on removing the default filter or using the value different than the default value.

### Claim 16 (depends on 9)

The computing system of claim 9, wherein the user interface layer is associated with a model object definition that specifies a default aggregation level for at least one attribute of the attributes.

### Claim 17 (depends on 16)

The computing system of claim 16, the operations further comprising:
receiving through the user interface layer user input selecting an aggregation level for the at least one attribute that differs from the default aggregation level, the aggregation level being less aggregated than the default aggregation level; and
retrieving supplemental query results from the data store using the at least one analytic query model object and the analytic query.

### Claim 18

A method, implemented in a computing system comprising at least one hardware processor and at least one memory coupled to the at least one hardware processor, the method comprising:
receiving user input providing a query request requesting execution of a query associated with a user interface query model;
converting the query request to be executable using at least one analytical query model object;
submitting the query request in an analytical protocol to a virtual data model;
converting the query request to be used with an analytic query defined in the virtual data model;
executing the query request using the analytic query against a data store; and
returning query execution results to a user interface layer associated with the user interface query model in response to the executing the query request.

### Claim 19 (depends on 18)

The method of claim 18, wherein the at least one analytical query model object is located in an exposure layer, and the exposure layer comprises a data analyzer, the method further comprising:
receiving user input requesting a pivot operation on at least a portion of the query execution results;
transforming the at least a portion of the query execution results according to the pivot operation; and
sending updated data produced as output of the transforming to the user interface layer.

### Claim 20

One or more non-transitory computer-readable storage media comprising:
computer-executable instructions that, when executed by a computing system comprising at least one hardware processor and at least one memory coupled to the at least one hardware processor, cause the computing system to receive user input providing a query request requesting execution of a query associated with a user interface query model;
computer-executable instructions that, when executed by the computing system, cause the computing system to convert the query request to be executable using at least one analytical query model object;
computer-executable instructions that, when executed by the computing system, cause the computing system to submit the query request in an analytical protocol to a virtual data model;
computer-executable instructions that, when executed by the computing system, cause the computing system to convert the query request to be used with an analytic query defined in the virtual data model;
computer-executable instructions that, when executed by the computing system, cause the computing system to execute the query request using the analytic query against a data store; and
computer-executable instructions that, when executed by the computing system, cause the computing system to return query execution results to a user interface layer associated with the user interface query model in response to the executing the query request.
