IP Library Granted Patent US 9,514,166
Granted Patent B2
US 9,514,166 · App. 14/259,911 · Granted Dec 6, 2016

Flexibly performing allocations in databases

Inventors: Johannes Meinecke (Dresden, DE); Gregor Hackenbroich (Dresden, DE); Lars Dannecker (Dresden, DE); Dave Parsons (Knutsford, GB); Paul Binks (Knutsford, GB); Simon Moscrop (Knutsford, GB); Jeremie Brunet (Boulogne-Billancourt, FR)
Assignee: SAP SE
G06F17/303G06F17/30339G06F17/30498G06F17/30507
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 9,514,166
App. No.
14/259,911
Granted
Dec 6, 2016
Kind
B2
Abstract

Allocation within a database environment is performed by processing a sequence of steps, each of which is described by an allocation processing block. The allocation processing block receives three inputs (input tables or input view) and computes a result. Related apparatus, systems, techniques and articles are also described.

Claims (75)

1. A method comprising:

applying rules from an assignment paths table to a base table, the applying comprising:

joining the assignment paths table to the base table to generate an intermediary base table, the joining based on matching values in conditional columns in the base table and corresponding conditional columns in the assignment paths table;

splitting data from the intermediary base table into data requiring direct assignment and data requiring allocation; and

adding a path identification (ID) column and a driver name column from the assignment paths table;

applying rules from the assignment paths table to the reference table and generating a filtered reference table;

disaggregating the data requiring allocation using the filtered reference table; and

generating a results table by combining the disaggregated data with the data requiring direct assignment;

wherein at least one of the receiving, applying, disaggregating, or generating is implemented by at least one data processor.

2. The method as in claim 1 , wherein the values in the driver name column identifies a driver that indicates whether the data requires direct assignment or allocation.

3. The method as in claim 1 , wherein the conditional columns in the base table comprise at least one of:

a base allocation object column or a base other dimension column,

wherein the conditional columns in the assignment paths table comprise at least one of: an allocation paths allocation object column and an allocation paths other dimension column.

4. The method as in claim 1 , wherein applying rules from the assignment paths table to the reference table comprises filtering out data records that do not meet filtering requirements.

5. The method as in claim 4 , wherein the conditional columns in the reference table comprise at least one of:

a reference allocation object column;

a reference other dimension column; or

a reference driver name column.

6. The method as in claim 4 , wherein the conditional columns in the assignment paths table comprise at least one of:

an assignment paths allocation object column;

an assignment paths other dimension column; or

an assignment paths driver name column.

7. The method as in claim 1 , wherein the disaggregating the data requiring allocation using the filtered reference table comprises:

Disaggregating at least one allocation value from an allocation value column of the base table into separate weighted components, and

wherein the disaggregating is based on a weighted breakdown provided by the filtered reference table, and matching values in conditional columns in the base table and corresponding conditional columns in the filtered reference table.

8. The method as in claim 7 , wherein the weighted breakdown is defined by values in a driver value column of the filtered reference table.

9. A method comprising:

applying rules from an assignment path table to a base table, the applying comprising:

joining the assignment paths table to a reference table to generate an intermediary reference table, the joining based on matching values in conditional columns in the reference table and corresponding conditional columns in the assignment paths table;

splitting data from the base table into data requiring direct assignment and data requiring allocation; and

adding a path ID column from the assignment paths table;

applying rules from the assignment paths table to the intermediary reference table and generating a filtered reference table;

disaggregating the data requiring allocation using a filtered reference table; and

generating a results table by combining the disaggregated data with the data requiring direct assignment;

wherein at least one of the receiving, applying, disaggregating, or generating is implemented by at least one data processor.

10. The method as in claim 9 , wherein the joining uses a path-joining rule comprising prioritizing paths with more unique matches over paths with more wildcard matches.

11. The method as in claim 9 , wherein applying rules from the assignment paths table to the intermediary reference table comprises filtering out driver values that belong to target allocation objects that do not require disaggregation.

12. A non-transitory computer program product storing instructions which, when executed by at least one data processor forming part of at least one computing system, result in operations comprising:

applying rules from an assignment paths table to a base table, the applying comprising:

joining the assignment paths table to the base table to generate an intermediary base table, the joining based on matching values in conditional columns in the base table and corresponding conditional columns in the assignment paths table;

splitting data from the intermediary base table into data requiring direct assignment and data requiring allocation; and

adding a path identification (ID) column and a driver name column from the assignment paths table;

applying rules from the assignment paths table to the reference table and generating a filtered reference table;

disaggregating the data requiring allocation using the filtered reference table; and

generating a results table by combining the disaggregated data with the data requiring direct assignment;

wherein at least one of the receiving, applying, disaggregating, or generating is implemented by at least one data processor.

13. The non-transitory computer program product as in claim 12 wherein the values in the driver name column determine the classification of data as data requiring direct assignment or data requiring allocation.

14. The non-transitory computer program product as in claim 12 wherein conditional columns in the base table comprise at least one of:

a base allocation object column or a base other dimension column,

wherein the conditional columns in the assignment paths table comprise at least one of: an allocation paths allocation object column and an allocation paths other dimension column.

15. The non-transitory computer program product as in claim 12 wherein applying rules from the assignment table to the reference table comprises:

joining the assignment paths table to the reference table based on matching values in conditional columns in the reference table and corresponding conditional columns in the assignment paths table; and

adding a path ID column from the assignment paths table.

16. The non-transitory computer program product as in claim 12 wherein the disaggregating the data requiring allocation using the filtered reference table comprises:

Disaggregating at least one allocation value from an allocation value column of the intermediary base table into separate weighted components, and

wherein the disaggregating is based on a weighted breakdown provided by the filtered reference table, and matching values in conditional columns in the intermediary base table and corresponding conditional columns in the filtered reference table.

17. A system comprising:

at least one data processor; and

memory storing instructions which, when executed by the at least one data processor, result in operations comprising:

applying rules from an assignment paths table to a base table, the applying comprising:

joining the assignment paths table to the base table to generate an intermediary base table, the joining based on matching values in conditional columns in the base table and corresponding conditional columns in the assignment paths table;

splitting data from the intermediary base table into data requiring direct assignment and data requiring allocation; and

adding a path identification (ID) column and a driver name column from the assignment paths table;

applying rules from the assignment paths table to the reference table and generating a filtered reference table;

disaggregating the data requiring allocation using the filtered reference table; and

generating a results table by combining the disaggregated data with the data requiring direct assignment.

18. A non-transitory computer program product storing instructions which, when executed by at least one data processor forming part of at least one computing system, result in operations comprising:

applying rules from an assignment path table to a base table, the applying comprising:

joining the assignment paths table to a reference table to generate an intermediary reference table, the joining based on matching values in conditional columns in a reference table and corresponding conditional columns in the assignment paths table;

splitting data from the base table into data requiring direct assignment and data requiring allocation; and

adding a path ID column from the assignment paths table;

applying rules from the assignment paths table to the intermediary reference table and generating a filtered reference table;

disaggregating the data requiring allocation using the a filtered reference table; and

generating a results table by combining the disaggregated data with the data requiring direct assignment;

wherein at least one of the receiving, applying, disaggregating, or generating is implemented by at least one data processor.

Assignments (2)
CHANGE OF NAME Recorded Oct 10, 2016
From: SAP AG
To: SAP SE
Reel/Frame 039976/0018 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 23, 2014
From: MEINECKE, JOHANNES; HACKENBROICH, GREGOR; DANNECKER, LARS; PARSONS, DAVE; BINKS, PAUL; MOSCROP, SIMON; BRUNET, JEREMIE
To: SAP AG
Reel/Frame 032741/0427 →
Continuity (2)
Provisional Application 61911742 · Dec 4, 2013
Related Publication 20150154261A1 · Jun 4, 2015