IP Library Granted Patent US 12,229,113
Granted Patent B2
US 12,229,113 · App. 17/743,347 · Granted Feb 18, 2025

Managing master data for distributed environments

Inventors: Karthik Kamath (Bengaluru, IN); Satish Kumar Kara (Bengaluru, IN); Nagendra Manchuri (Bengaluru, IN); Tripati Sahu (Bengaluru, IN); Parmesh Kumar (Bengaluru, IN)
Assignee: SAP SE
G06F16/2365
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,229,113
App. No.
17/743,347
Granted
Feb 18, 2025
Kind
B2
Abstract

Some embodiments provide a non-transitory machine-readable medium that stores a program executable by at least one processing unit of a device. The program retrieves a plurality of sets of master data from a plurality of master data sources. Each set of master data in the plurality of sets of master data includes a set of entities. For each entity in each set of entities, the program further determines whether the entity is consistent or inconsistent. The program also receives, from an application, a request for a set of entities. The program further determines a subset of the set of entities, each entity in the subset of the set of entities determined to be consistent. The program also provides the subset of the set of entities to the application.

Claims (61)

1. A non-transitory machine-readable medium storing a program executable by at least one processing unit of a device, the program comprising sets of instructions for:

querying a plurality of master data sources to retrieve a plurality of sets of master data from the plurality of master data sources, each set of master data in the plurality of sets of master data comprising a set of master data entities, wherein the plurality of master data sources independently manage master data entities, wherein a schema definition specifies at least one master data entity from at least one master data source has an ancestor relationship to at least one other master data entity from at least one other master data source, and wherein said querying is performed at defined time intervals to retrieve most recently operated on master data entities, based on a time of a last request, from each of the plurality of master data sources, wherein the master data sources having ancestor master data entities are queried before master data sources having independent master data entities that are not ancestors of any master data entities;

for each master data entity in each set of master data entities,

determining whether a master data entity is consistent or inconsistent based on a schema definition associated with the plurality of sets of master data, wherein:

upon determining that the master data entity does not have any ancestor master data entities related to the master data entity or upon determining that the master data entity does have any ancestor master data entities related to the master data entity and that the ancestor master data entities exist in a storage configured to store master data received from the plurality of master data sources, determining that the master data entity is consistent; and

upon determining that the master data entity from a first master data source does have any ancestor master data entities from one or more other master data sources related to the master data entity and that the ancestor entities do not exist in the storage, determining that the master data entity is inconsistent,

wherein the schema definition further defines a particular set of master data entities and a set of relationships among the particular set of master data entities;

receiving, from an application, a request for a certain set of master data entities;

based on the plurality of sets of master data entities, determining a subset of the certain set of master data entities, each master data entity in the subset of the certain set of master data entities determined to be consistent; and

providing the subset of the certain set of master data entities to the application.

2. The non-transitory machine-readable medium of claim 1 , wherein retrieving the plurality of sets of master data from the plurality of master data sources comprises retrieving dependent master data entities first.

3. The non-transitory machine-readable medium of claim 2 , wherein retrieving dependent entities first comprises:

determining a first set of master data entities;

determining a second set of master data entities, wherein each master data entity in the second set of master data entities is dependent on a master data entity in the first set of master data entities;

retrieving the second set of master data entities; and

after retrieving the second set of master data entities, retrieving the first set of master data entities.

4. The non-transitory machine-readable medium of claim 1 , wherein the program further comprises a set of instructions for, for each master data entity in each set of master data entities determined to be inconsistent, marking the master data entity as being inconsistent.

5. The non-transitory machine-readable medium of claim 1 , wherein the program further comprises sets of instructions for:

identifying any master data entities previously marked as inconsistent; and

determining whether such master data entities are now consistent based on the plurality of sets of master data.

6. The non-transitory machine-readable medium of claim 1 , wherein retrieving the plurality of sets of master data comprises sending each master data source in the plurality of master data sources a request for master data and a time value indicating a time of a previous request.

7. The non-transitory machine-readable medium of claim 1 , wherein each master data source in the plurality of master data sources is configured to manage a particular set of master data entities.

8. A method comprising:

querying a plurality of master data sources to retrieve a plurality of sets of master data from the plurality of master data sources, each set of master data in the plurality of sets of master data comprising a set of master data entities, wherein the plurality of master data sources independently manage master data entities, wherein a schema definition specifies at least one master data entity from at least one master data source has an ancestor relationship to at least one other master data entity from at least one other master data source, and wherein said querying is performed at defined time intervals to retrieve most recently operated on master data entities, based on a time of a last request, from each of the plurality of master data sources, wherein the master data sources having ancestor master data entities are queried before master data sources having independent master data entities that are not ancestors of any master data entities;

for each master data entity in each set of master data entities,

determining whether a master data entity is consistent or inconsistent based on the schema definition associated with the plurality of sets of master data, and wherein:

upon determining that the master data entity does not have any ancestor master data entities related to the master data entity or upon determining that the master data entity does have any ancestor master data entities related to the master data entity and that the ancestor master data entities exist in a storage configured to store master data received from the plurality of master data sources, determining that the master data entity is consistent; and

upon determining that the master data entity from a first master data source does have any ancestor master data entities from one or more other master data sources related to the master data entity and that the ancestor master data entities do not exist in the storage, determining that the master data entity is inconsistent,

wherein the schema definition further defines a particular set of master data entities and a set of relationships among the particular set of master data entities;

receiving, from an application, a request for a certain set of master data entities;

based on the plurality of sets of master data entities, determining a subset of the certain set of master data entities, each master data entity in the subset of the certain set of master data entities determined to be consistent; and

providing the subset of the certain set of master data entities to the application.

9. The method of claim 8 further comprising, for each master data entity in each set of master data entities determined to be inconsistent, marking the master data entity as being inconsistent.

10. The method of claim 8 further comprising:

identifying any master data entities previously marked as inconsistent; and

determining whether such master data entities are now consistent based on the plurality of sets of master data.

11. The method of claim 8 , wherein retrieving the plurality of sets of master data comprises sending each master data source in the plurality of master data sources a request for master data and a time value indicating a time of a previous request.

12. The method of claim 8 , wherein each master data source in the plurality of master data sources is configured to manage a particular set of master data master data entities.

13. A system comprising:

a set of processing units; and

a non-transitory machine-readable medium storing instructions that when executed by at least one processing unit in the set of processing units cause the at least one processing unit to:

query a plurality of master data sources to retrieve a plurality of sets of master data from the plurality of master data sources, each set of master data in the plurality of sets of master data comprising a set of master data entities, wherein the plurality of master data sources independently manage master data entities, wherein a schema definition specifies at least one master data entity from at least one master data source has an ancestor relationship to at least one other master data entity from at least one other master data source, and wherein said querying is performed at defined time intervals to retrieve most recently operated on master data entities, based on a time of a last request, from each of the plurality of master data sources, wherein the master data sources having ancestor master data entities are queried before master data sources having independent master data entities that are not ancestors of any master data entities;

for each master data entity in each set of master data entities,

determine whether a master data entity is consistent or inconsistent based on a schema definition associated with the plurality of sets of master data, wherein:

upon determining that the master data entity does not have any ancestor master data entities related to the master data entity or upon determining that the master data entity does have any ancestor master data entities related to the master data entity and that the ancestor master data entities exist in a storage configured to store master data received from the plurality of master data sources, determining that the master data entity is consistent; and

upon determining that the master data entity from a first master data source does have any ancestor master data entities from one or more other master data sources related to the master data entity and that the ancestor entities do not exist in the storage, determining that the master data entity is inconsistent,

wherein the schema definition further defines a particular set of master data entities and a set of relationships among the particular set of master data entities;

receive, from an application, a request for a certain set of master data entities;

based on the plurality of sets of master data entities, determine a subset of the certain set of master data entities, each master data entity in the subset of the certain set of master data entities determined to be consistent; and

provide the subset of the certain set of master data entities to the application.

14. The system of claim 13 , wherein retrieving the plurality of sets of master data from the plurality of master data sources comprises retrieving dependent master data entities first.

15. The system of claim 14 , wherein retrieving dependent master data entities first comprises:

determining a first set of master data entities;

determining a second set of master data entities, wherein each master data entity in the second set of master data entities is dependent on a master data entity in the first set of master data entities;

retrieving the second set of master data entities; and

after retrieving the second set of master data entities, retrieving the first set of master data entities.

16. The system of claim 13 , wherein the instructions further cause the at least one processing unit to, for each master data entity in each set of master data entities determined to be inconsistent, mark the master data entity as being inconsistent.

17. The system of claim 13 , wherein the instructions further cause the at least one processing unit to:

identify any master data entities previously marked as inconsistent; and

determine whether such master data entities are now consistent based on the plurality of sets of master data.

18. The system of claim 13 , wherein retrieving the plurality of sets of master data comprises sending each master data source in the plurality of master data sources a request for master data and a time value indicating a time of a previous request.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2022
From: KAMATH, KARTHIK; KARA, SATISH KUMAR; MANCHURI, NAGENDRA; SAHU, TRIPATI; KUMAR, PARMESH
To: SAP SE
Reel/Frame 060746/0094 →
Continuity (1)
Related Publication 20230367761A1 · Nov 16, 2023
References Cited (21)
US 7680935B2 · Szyperski · 2010 [cited by examiner]
US 8713434B2 · Ford · 2014 [cited by examiner]
US 8762411B2 · Poon · 2014 [cited by examiner]
US 9235607B1 · Ross · 2016 [cited by examiner]
US 10885452B1 · Garg · 2021 [cited by examiner]
US 11514012B2 · Bouton · 2022 [cited by examiner]
US 20040034668A1 · Gotz · 2004 [cited by examiner]
US 20100070797A1 · Kaisermayr · 2010 [cited by examiner]
US 20100114841A1 · Holenstein · 2010 [cited by examiner]
US 20100257149A1 · Cognigni · 2010 [cited by examiner]
US 20120089631A1 · Poon · 2012 [cited by examiner]
US 20140032594A1 · Bayliss · 2014 [cited by examiner]
US 20160140197A1 · Gast · 2016 [cited by examiner]
US 20180032434A1 · Patel · 2018 [cited by examiner]
US 20180137161A1 · Schwan · 2018 [cited by examiner]
US 20180293586A1 · Doan · 2018 [cited by examiner]
US 20190102418A1 · Vasudevan · 2019 [cited by examiner]
US 20200301931A1 · Lai · 2020 [cited by examiner]
US 20210256525A1 · Hayes · 2021 [cited by examiner]
WO WO2012130489A1 · 2012 [cited by examiner]
Li et al. CN 111259027 A “A Data Consistency Detection Method”; Jun. 9, 2020 (Year: 2020). [cited by examiner]