IP Library Granted Patent US 12,277,142
Granted Patent B2
US 12,277,142 · App. 18/203,124 · Granted Apr 15, 2025

Systems and methods for improving computational speed of planning by tracking dependencies in hypercubes

Inventors: Ngoc Nguyen (Cupertino, CA); Darren Kermit Lee (Sunnyvale, CA); Shuyuan Chen (Palo Alto, CA); Ritu Jain (Fremont, CA); Francis Wang (Foster City, CA)
Assignee: Workday, Inc.
G06F16/283G06F9/3838G06F12/0891G06F16/2264G06F16/248
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 12,277,142
App. No.
18/203,124
Granted
Apr 15, 2025
Kind
B2
Abstract

A system for updating a hypercube includes an interface and a processor. The interface is configured to receive an indication to update a cell of the hypercube. The processor is configured to determine a primary dimension value associated with the cell; determine a group of dependencies based at least in part on the primary dimension value, wherein a dependency of the group of dependencies comprises one or more primary dimension values and a pattern; for the dependency of the group of dependencies, determine a set of source locations based at least in part on the one or more primary dimension values and the pattern; and mark the set of source locations as invalid.

Claims (46)

1. A system, comprising:

an interface configured to:

receive an indication to read a cell of the hypercube;

a processor configured to:

determine whether a flag associated with the cell of the hypercube is set as invalid;

in response to a determination that the flag associated with the cell of the hypercube is set as invalid:

recalculate a formula of the cell of the hypercube to obtain a new value of the cell of the hypercube, wherein recalculating comprises updating values of dependent cells required to recalculate the formula of the cell;

save the new value of the cell of the hypercube;

set the flag associated with the cell of the hypercube as valid; and

provide the new value of the cell of the hypercube; and

in response to a determination that the flag associated with the cell of the hypercube is not set as invalid, provide a value of the cell of the hypercube.

2. The system of claim 1 , wherein the processor is further to determine a primary dimension associated with the cell.

3. The system of claim 2 , wherein the processor is further to determine a set of primary dimension values associated with the primary dimension.

4. The system of claim 1 , wherein the dependent cells required to recalculate the value of the cell are determined based at least in part on a dependency pattern.

5. The system of claim 4 , wherein the dependency pattern is one of a plurality of available dependency patterns.

6. The system of claim 4 , wherein the dependency pattern indicates that all non-primary dimensions are specified by inheritance based on a location of the cell.

7. The system of claim 4 , wherein the dependency pattern indicates that a level dimension value is specified by inheritance based on a location of the cell.

8. The system of claim 4 , wherein the dependency pattern indicates that no dimension values are specified by inheritance based on a location of the cell.

9. The system of claim 4 , wherein the dependency pattern indicates that a set of dimension values are specified using qualifiers associated with the cell.

10. The system of claim 4 , wherein the dependency pattern comprises a cross version pattern.

11. The system of claim 4 , wherein the dependency pattern comprises a version-specific pattern.

12. A method, comprising:

receiving, using an interface, an indication to read a cell of the hypercube;

determining, using a processor, whether a flag associated with the cell of the hypercube is set as invalid;

in response to a determination that the flag associated with the cell of the hypercube is set as invalid:

recalculate a formula of the cell of the hypercube to obtain a new value of the cell of the hypercube, wherein recalculating comprises updating values of dependent cells required to recalculate the formula of the cell;

saving the new value of the cell of the hypercube;

setting the flag associated with the cell of the hypercube as valid; and

providing the new value of the cell of the hypercube; and

in response to a determination that the flag associated with the cell of the hypercube is not set as invalid, providing a value of the cell of the hypercube.

13. The method of claim 12 , wherein the processor is further to determine a primary dimension associated with the cell.

14. The method of claim 13 , wherein the processor is further to determine a set of primary dimension values associated with the primary dimension.

15. The method of claim 12 , wherein the dependent cells required to recalculate the value of the cell are determined based at least in part on a dependency pattern.

16. The method of claim 15 , wherein the dependency pattern is one of a plurality of available dependency patterns.

17. The method of claim 15 , wherein the dependency pattern indicates that all non-primary dimensions are specified by inheritance based on a location of the cell.

18. The method of claim 15 , wherein the dependency pattern indicates that a level dimension value is specified by inheritance based on a location of the cell.

19. The method of claim 15 , wherein the dependency pattern indicates that no dimension values are specified by inheritance based on a location of the cell.

20. A computer program product embodied in a non-transitory computer readable medium and comprising computer instructions for:

receiving, using an interface, an indication to read a cell of the hypercube;

determining, using a processor, whether a flag associated with the cell of the hypercube is set as invalid;

in response to a determination that the flag associated with the cell of the hypercube is set as invalid:

recalculating a formula of the cell of the hypercube to obtain a new value of the cell of the hypercube, wherein recalculating comprises updating values of dependent cells required to recalculate the formula of the cell;

saving the new value of the cell of the hypercube;

setting the flag associated with the cell of the hypercube as valid; and

providing the new value of the cell of the hypercube; and

in response to a determination that the flag associated with the cell of the hypercube is not set as invalid, providing a value of the cell of the hypercube.

Continuity (4)
Continuation 17670322 · Feb 11, 2022
Continuation 16397600 · Apr 29, 2019
Provisional Application 62664429 · Apr 30, 2018
Related Publication 20240028614A1 · Jan 25, 2024
References Cited (12)
US 6460059B1 · Wisniewski · 2002 [cited by applicant]
US 20060080594A1 · Chavoustie · 2006 [cited by applicant]
US 20070088691A1 · Dickerman · 2007 [cited by applicant]
US 20070130116A1 · Cras · 2007 [cited by examiner]
US 20080046804A1 · Rui · 2008 [cited by applicant]
US 20090228776A1 · Folting · 2009 [cited by applicant]
US 20090292730A1 · Li · 2009 [cited by applicant]
US 20140181002A1 · Christian · 2014 [cited by applicant]
US 20140379666A1 · Byron · 2014 [cited by applicant]
US 20150370883A1 · Kalki · 2015 [cited by applicant]
US 20170017683A1 · Fourny · 2017 [cited by applicant]
M. Coblenz, “Using Objects of Measurement to Detect Spreadsheet Errors”, 2005, Carnegie Mellon University. (Year: 2005). [cited by applicant]