Master data mapping scheme permitting querying
11567920 · 2023-01-31
Assignee
Inventors
Cpc classification
G06F16/24561
PHYSICS
International classification
G06F16/28
PHYSICS
Abstract
Embodiments permit searching across different system landscapes, for data associated with master data objects. A map is constructed comprising (explicit, inferred) connections between different pieces of data located in various databases, systems, and landscapes. In certain embodiments the map is constructed utilizing a parameter (e.g., family name) present in a received query, as a boundary condition. The map may be in tabular form, and may conform to a particular notation scheme. Once the map is constructed, the query is executed thereupon to search for relevant data. The corresponding query result is received and stored, ultimately for communication back to the user posing the original query. Embodiments may be particularly suited to returning private data of a unique entity (e.g., natural person, corporation, juristical person) that is stored over a variety of different master data objects (e.g., employee, customer, supplier) and across complex system landscapes.
Claims
1. A method comprising: interrogating a system landscape to determine an explicit connection between a first piece of master data information present in a first system, and a second piece of master data information present in a second system; determining an inferred connection between the first piece of master data information and a third piece of master data information based upon the explicit connection, wherein the third piece of master data information is present in a third system; constructing a map comprising the explicit connection and the inferred connection, the map comprising a table including, a first field indicating a first system identifier of a source system of the first piece of master data information, a second field indicating a second system identifier of a destination system of the third piece of master data information, and a third field indicating a destination system of the second piece of master data information different from the destination system of the third piece of master data information; storing the map in a non-transitory computer readable storage medium; receiving a query comprising a parameter; executing the query upon the map to generate a query result comprising the first piece of master data information, the second piece of master data information, and the third piece of master data information; and storing the query result in the non-transitory computer-readable storage medium, wherein, the first, second and third pieces of master data information correspond to a same unique entity, the first piece of master data information comprises a first type value of a master data information type, and a first master data identifier, the second piece of master data information comprises a second type value of the master data information type, and a second master data identifier, the first type value is different from or equal to the second type value, the map is constructed after the query is received using the parameter as a boundary condition, and a first entry of the table comprises the explicit connection, and a second entry of the table comprises the inferred connection.
2. A method as in claim 1 wherein the first master data identifier is different from or equal to the second master data identifier.
3. A method as in claim 1 wherein: the non-transitory computer readable storage medium comprises an in-memory database; and the query is executed by an in-memory database engine of the in-memory database.
4. A method as in claim 3 wherein the map is constructed by the in-memory database engine.
5. A non-transitory computer readable storage medium embodying a computer program for performing a method, said method comprising: receiving a query comprising a parameter; referencing the parameter to interrogate a system landscape to determine an explicit connection between a first piece of master data information present in a first system, and a second piece of master data information present in a second system; determining an inferred connection between the first piece of master data information and a third piece of master data information based upon the explicit connection, wherein the third piece of master data information is present in a third system; constructing a map comprising the explicit connection and the inferred connection, the map comprising a table including, a first field indicating a first system identifier of a source system of the first piece of master data information, a second field indicating a second system identifier of a destination system of the third piece of master data information, and a third field indicating a destination system of the second piece of master data information different from the destination system of the third piece of master data information; storing the map in a non-transitory computer readable storage medium; executing the query upon the map to generate a query result comprising the first piece of master data information, the second piece of master data information, and the third piece of master data information; and storing the query result in the non-transitory computer-readable storage medium, wherein, the first, second and third pieces of master data information correspond to a same unique entity, the first piece of master data information comprises a first type value of a master data information type, and a first master data identifier, the second piece of master data information comprises a second type value of the master data information type, and a second master data identifier, the first type value is different from or equal to the second type value, the map is constructed after the query is received using the parameter as a boundary condition, and a first entry of the table comprises the explicit connection, and a second entry of the table comprises the inferred connection.
6. A non-transitory computer readable storage medium as in claim 5 wherein: the non-transitory computer readable storage medium comprises an in-memory database; and the query is executed by an in-memory database engine of the in-memory database.
7. A non-transitory computer readable storage medium as in claim 6 wherein the map is constructed by the in-memory database engine.
8. A computer system comprising: one or more processors; a software program, executable on said computer system, the software program configured to cause an in-memory database engine of an in-memory database to: interrogate a system landscape to determine an explicit connection between a first piece of master data information present in a first system, and a second piece of master data information present in a second system; determine an inferred connection between the first piece of master data information and a third piece of master data information based upon the explicit connection, wherein the third piece of master data information is present in a third system; construct a map comprising the explicit connection the inferred connection, the map comprising a table including, a first field indicating a first system identifier of a source system of the first piece of master data information, a second field indicating a second system identifier of a destination system of the third piece of master data information, and a third field indicating a destination system of the second piece of master data information different from the destination system of the third piece of master data information; store the map in the in-memory database; receive a query comprising a parameter; execute the query upon the map to generate a query result comprising the first piece of master data information, the second piece of master data information, and the third piece of master data information; and store the query result in the in-memory database, wherein, the first, second and third pieces of master data information correspond to a same unique entity, the first piece of master data information comprises a first type value of a master data information type, and a first master data identifier, the second piece of master data information comprises a second type value of the master data information type, and a second master data identifier, the first type value is different from or equal to the second type value, the map is constructed after the query is received using the parameter as a boundary condition, and a first entry of the table comprises the explicit connection, and a second entry of the table comprises the inferred connection.
9. A computer system as in claim 8 wherein the first master data identifier is different from or equal to the second master data identifier.
10. A computer system as in claim 8 wherein the first connection is bi-directional.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
(21)
(22)
(23)
(24)
(25)
(26)
DETAILED DESCRIPTION
(27) Described herein are methods and apparatuses that implement master data mapping and querying. In the following description, for purposes of explanation, numerous examples and specific details are set forth in order to provide a thorough understanding of embodiments according to the present invention. It will be evident, however, to one skilled in the art that embodiments as defined by the claims may include some or all of the features in these examples alone or in combination with other features described below, and may further include modifications and equivalents of the features and concepts described herein.
(28) Embodiments permit searching across different system landscapes, for data associated with master data objects. A map is constructed comprising (explicit, inferred) connections between different pieces of data located in various databases, systems, and system landscapes. In certain embodiments the map is constructed utilizing a parameter (e.g., family name) present in a received query, as a boundary condition. The map may be in tabular form, and may conform to a particular notation scheme. Once the map is constructed, the query is executed thereupon to search for relevant data. The corresponding query result is received and stored, ultimately for communication back to the user posing the query. Embodiments may be particularly suited to returning private data of a natural person, stored over a variety of different master data objects (employee, customer, supplier) across complex system landscapes.
(29)
(30) The processing engine is in communication with a layer 108 comprising a number of different systems 110 that are distributed across multiple landscapes 112. Each system comprises different databases 114, which may include master data information 116 relevant to particular unique entity (e.g., a natural person).
(31) Accordingly, the processing engine is configured to interrogate 118 the systems within the landscape layer. And, based upon linkages 120 (e.g., read permission) present between the database information, the engine is configured to gather 122 master data information relevant to the unique entity.
(32) Using this collected master data information, the engine is further configured to construct 124 a map 126 thereof, and to store the map in the non-transitory computer readable storage medium. As described in detail below, the map may:
(33) conform to a particular mapping notation scheme (e.g., at shown at least in
(34) be in tabular form (e.g., as shown at least in
(35) comprise entries representing explicit connections 127 and also inferred connections 129.
(36) Further details regarding map construction according to particular embodiments, are provided later below in connection with the example.
(37) Then, based upon a query 128 received from a user 130, the engine is configured to search 131 the map to return a query result 132 with comprehensive information relevant to the unique entity.
(38) While the above description has characterized map construction of the map as preceding receipt of the query, this is not required. Specifically, in certain environments the data volume of the landscape layer could be very large and complex.
(39) Under such circumstances, rather than constructing a map relevant to all possible unique entities, the engine could instead commence with reference to parameter(s) 140 of the received query, which serve to establish a boundary condition (e.g., starting point) for map creation. An example of a parameter establishing such a boundary condition, could be a portion of the formal name (e.g., family name in a query) that is used as a starting point for constructing the map.
(40) In the generalized embodiment of
(41)
(42) At 208, the query is executed to search the map. At 210 results returned by execution of the query to search the map, are received. Ultimately, those query results are communicated back to the user who originally posed the query.
(43) Further details regarding data mapping and querying according to embodiments, are now provided in connection with the following examples.
EXAMPLES
(44) One possible commercial application for certain embodiments, could be to provide access by a natural person to his or her private information that is stored in a landscape of systems. Such a right of access is now afforded by the European Union's recently-enacted General Data Privacy Regulation (GDPR).
(45) For a company such as SAP SE, providing such privacy information might involve determining all (digital) representations of a data subject (individual)—whether the data representations are a business partner, a customer, or a vendor, etc. As part of this task, linkages are determined to construct a map and followed up with gathering data related to the individual natural person.
(46) As part of master data management, it is noted that master data entity duplicates may be present within the system landscape. Possible reasons for this duplication can be, e.g., transactions such as mergers and acquisitions, systems that are working in parallel, and different varieties of systems (e.g., test, development, production).
(47) Linking together of duplicates calls for an effective mapping technique as is described herein. Thus, an exemplary embodiment is now described.
(48) As a summary of the instant example, a concept producing uniqueness for ambiguous identifiers (IDs) is provided below. Data leveraged by ID mapping technologies facilitate a holistic mapping approach. A formal notation is introduced to represent mapping information as well as parts thereof. Inference is used to gain advantage of explicit mapping information. Furthermore, the aspect of mapping between different master data entity types is covered below. The influence of the entry point for mapping and bi-directional mapping information is then described. Lastly, a concept to deal with partial mapping information and an optimized query mechanism are explained.
(49) There are different sorts of master data entities. Examples are customers, suppliers, employees. A certain sort of master data entity is referred to as master data entity type.
(50) A master data entity has an identifier (ID). Examples are the customer number, supplier number, employee and personnel number. Using an ID, it is easier to refer to a certain master data entity. For technical systems, the ID may be the reference to deal with master data.
(51) The uniqueness of IDs can be distinguished into the following levels:
(52) Database table
(53) Application/System
(54) System Landscape
(55) Universe
(56) Looking at database level, master data entities are stored in a database table. The ID most often is used as primary key (or part of the primary key) of the database table. Thus, a single ID is unique within this database table. This constraint in typically enforced by the database management system (DBMS).
(57) In
(58) Taking the database table for suppliers (
(59) In the example there are two master data entities using the ID 4711 (Paul Yee in the table of
(60) Turning now to look at the application/systems level, mechanisms to overcome the ambiguity in the database layer may exist. An example could be to use a central number/ID assignment. Using such a mechanism, uniqueness may be conferred upon multiple or even all database tables within a single database management system (DBMS).
(61) However, considering multiple systems even this approach still results in ambiguity. For example, consider two systems: S.sub.1 and S.sub.2. In both systems there are customers and suppliers—shown in
(62) Here, the following IDs are ambiguous:
(63) 4711:
(64) used in system S.sub.1 to reference a customer (customer number of Paul Yee)
(65) used in system S.sub.2 to reference a customer (customer number of Sam Miller)
(66) 4712:
(67) used in system S.sub.1 to reference a customer (customer number of Chris Chen)
(68) used in system S.sub.2 to reference a supplier (supplier number of Go Corp.)
(69) 5164:
(70) used in system S.sub.1 to reference a supplier (supplier number of X Ltd.)
(71) used in system S.sub.2 to reference a supplier (supplier number of Lucky Ltd.)
(72) 8150:
(73) used in system S.sub.1 to reference a supplier (supplier number of A Corp.)
(74) used in system S.sub.2 to reference a customer (customer number of Don Balmer)
(75) Even though all IDs are unique within a single system, they are all are ambiguous considering both systems S.sub.1 and S.sub.2.
(76) Looking now at the system landscape level, again there may be mechanisms to overcome the ambiguity on system landscape level. One example could be by a central number assignment on landscape level. Such an approach would lead to unique IDs within a system landscape.
(77) However, even with an approach to ensure ID uniqueness within a system landscape, there might be ambiguities considering two or more system landscapes. Considering the complex system landscapes of enterprises, reasons such as security or regional aspects, may result in the separation of systems into multiple landscapes.
(78) Turning now to look at possible universal approaches, one solution to overcome ambiguity can be the usage of the so called universally unique identifier (UUID). Such UUIDs are always unique as the (still existing) probability of ambiguity is so small that it could be neglected. In addition, the creation of UUIDs can be decentralized—i.e., whenever a new UUID is required each system or database can create it on its own.
(79) The persistent usage of UUIDs can solve many IT challenges regarding uniqueness. However, their usage in business processes involving individuals, can be cumbersome. One example of a UUID is:
(80) 1ee754a4-c1e5-4c8d-9024-d373646dabf3
(81) The structure and length of UUIDs can make them hard to remember by people, and their usage may be error-prone. Accordingly, usage of ambiguous IDs remains an issue for at least human-touched business processes.
(82) An exemplary approach for achieving a suitable level of uniqueness using ambiguous IDs (without using and/or introducing UUIDs), is now explained.
(83) Given an ID that is ambiguous considering two or more database tables, the master data entity type is used to produce uniqueness on system level. Instead of simply writing the ID, the entity type is written in advance, separated with a colon (:).
(84) The resulting notation is:
(85) <master data entity type>:<ID>
(86) where <master data entity type> and <ID> are placeholders for the respective values.
(87) An example is now given. In
(88) According to embodiments, uniqueness on system landscape level is conferred by adding a system identifier. The notation is enhanced as follows:
(89) <system identifier>:<master data entity type>:<ID>.
(90) Examples are given in
(91) Accordingly, the following unique IDs are available for this example:
(92) S.sub.1:customer:4711
(93) S.sub.1:customer:4712
(94) S.sub.1:supplier:5164
(95) S.sub.1:supplier:8150
(96) S.sub.2:customer:4711
(97) S.sub.2:customer:8150
(98) S.sub.2:supplier:5164
(99) S.sub.2:supplier:4712
(100) The issue of having a master data entity versus a unique entity (such as a natural person, corporation, or juristical person), is now considered. A natural person exists only once and is per se unique. There are different techniques for referencing a natural person. The most common one might be using a pre- and surname. However, few or even no techniques lead to (universally) unique identifiers. Most techniques lead to ambiguous identifiers (e.g. pre- and surname).
(101) There might be multiple representations for a single natural person within one software system or even within one application. These might get created as duplicates by accident or for other reasons.
(102) ID mapping technologies may be used to express that a certain ID is linked or equal to another ID. For example, one could express that:
(103) customer:4711 is equal to customer:7152.
(104) IDs may only be mapped considering the same master data entity type. However, there is no need to retain this restriction. For example, in the use case of information retrieval for a natural person, all IDs linked to that person are relevant independent from the master data entity type.
(105) Nevertheless, any ID mapping technology can be used to assemble such an overall/holistic mapping information record for a natural person. For example, the Customer Relationship Management (CRM) middleware available from SAP SE, comprises mapping information for master data entities SAP business partners and customers across systems. The SAP Customer-Vendor-Integration (CVI) comprises mapping information for customers, vendors, and SAP business partners within a system.
(106) A structure for ID mapping information is now described. ID mapping information may not directly comprise a source and target information. Rather there is some configuration information that states mapping targets, whereas the mapping source is the current system. For example:
(107) System S.sub.1 ID mapping technology M.sub.1 customer:1 maps to customer:2 customer:3 maps to customer:4 ID mapping technology M2 partner:5 maps to customer:6 partner:7 maps to customer:8 Mapping target: S.sub.2
(108) System S.sub.2 ID mapping technology M.sub.1 customer:9 maps to customer:10 customer:11 maps to customer:12 ID mapping technology M.sub.3 customer:13 maps to customer:14 customer:15 maps to customer:16 Mapping target: S.sub.3
There are deviations from this approach, e.g. providing for multiple target systems.
(109) In the course document mapping according to embodiments, information is represented having an explicit source and target information. In addition the information about the origin for each mapping record as well as via which destination the target system can be reached is stored.
(110) Specifically, in the instant example a mapping record includes following information.
(111) Source system's own given ID The identifier the system from which the mapping record originates gives itself. This ID is fixed at any time. It needs to be unique upon all systems in a mapping scenario.
(112) Source master data entity type Master data entity type used in the system from which the mapping record originates (source) for the master data entity in question.
(113) Source master data entity ID Master data entity ID used in the source system for the master data entity in question.
(114) Target destination: The name of the destination (a technical connection) via which the mapping record's target system (target) can be reached. The destination name which states the destination to connect from the source system to the target system, i.e. the system the mapped master data entity exists in. Important: this name is most likely only be useable within the current system. It might not be useable to identify the connection from outside the system.
(115) Target system's own given ID The identifyer the target system gives itself. This ID is fixed at any time. It needs to be unique upon all systems in a mapping scenario.
(116) Target master data entity type Master data entity type used in the system target system for the master data entity in question.
(117) Target master data entity ID Master data entity ID used in the target system for the master data entity in question.
(118) Name of the destination the mapping record was received with When mapping information is shared with/transferred to other systems this destination name states the destination via which the mapping record was received (in the receiving system). In the system where the mapping record was originally created this name is not used and rather blank.
(119) An example for ID mapping information is now given in connection with
(120) Looking into the mapping information available in systems S.sub.1 and S.sub.2 shows the
(121) Mapping information modelling notation is now discussed. Representing mapping information in tables (like
(122) Accordingly, this example introduces the following notation to standardize mapping information and system landscape data.
(123) A piece of mapping information is represented by a rectangular shape as shown in
(124) the system's own given ID (system)
(125) the master data entity type (entity type)
(126) the master data entity ID (ID).
(127) As shown in
(128) the system's own given ID (system) and
(129) the destination name (destination).
(130) Thus looking at the table of
(131) The combination of
(132) The system landscape configuration of
(133) Looking at the first “row” of
(134) The next three rows of
(135) The inference of ID mapping information is now discussed. Taking the example of
(136) It should be noted that there is no information available at system S.sub.1, which indicates that S.sub.1:customer:3 is linked to S.sub.4:customer:3. However, from the perspective of system S this can be inferred when taking into account the mapping information available in system S.sub.3.
(137) Therefore, this mapping information is transferred to system S.sub.1. This results in the mapping information at system S.sub.1 as shown in the table of
(138) Here, the column ‘received via destination’, has value S.sub.1D.sub.2 to state that entry #4 was received from another system via the destination with name S.sub.1D.sub.2. When refining
(139) Here, one term has just been moved so that identical pieces of information (rectangles) are joined. We define that identical pieces of information are collated (no duplicates). This is shown in
(140) In addition, information on connections between systems is used to infer implicit mapping information pieces.
(141) The information on systems and their connections can be transformed as well, as shown in
(142) This inferred mapping information can be represented in a plain table as shown in
(143) The use of inferred explicit mapping information may confer benefits. In particular, turning implicit mapping information into explicit mapping information via inference offers several advantages:
(144) Performance when consuming mapping information: Applications and processes use explicit information (independent if it is mapping information or other information). Implicit information is transformed to explicit information before being able to use it. Having made all mapping information explicit, increases the performance of consumers of mapping information. Alternative mapping paths create consumers for optimized and/or alternative process flows: Cost optimization: There might be different costs for using a certain destination. For example, the costs for data transferred through destination S.sub.1D.sub.2 and S.sub.3D.sub.1 might be higher than using S.sub.1D.sub.3. A direct communication from system S.sub.1 to system S.sub.4 for processes concerning customer:3 might thus be cheaper. These costs might be measured in €/$/ . . . or seconds/ms/ . . . or even something else. Resilience and reliability: Whenever there is a break-down of destination S.sub.1D.sub.2 using the inferred mapping information processes might alternatively use destination S.sub.1D.sub.3 to keep a process running.
(145) Certain embodiments may provide for mapping between different master data entity types and IDs. In particular, there is no need to restrict mapping information to mappings between equal master data entity types and IDs.
(146) For example, the SAP Customer-Vendor-Integration (CVI) consists of mapping information between SAP business partners and customers as well as vendors within a system. Using the same ID for identical master data entities in all systems may not be possible or desired from an operational side.
(147) Consider the example illustrated in
(148) Master data mapping information is available in systems S.sub.1 and S.sub.3. There are two master data entities is system S.sub.1, one in system S.sub.2, two in system S.sub.3 and one in system S.sub.4.
(149) System S.sub.1 has a destination to system S.sub.2 with name S.sub.1D.sub.1. System S.sub.1 has further destinations to system S.sub.3 with name S.sub.1D.sub.2 and to system S.sub.4 with name S.sub.1D.sub.3. System S.sub.3 has a destination to system S.sub.4 with name S.sub.3D.sub.1.
(150) Looking into the mapping information available in systems S.sub.1 and S.sub.3 shows the information of the tables of
(151) In the mapping information directly available in system S.sub.1 we find: Master data entity S.sub.1:partner:1 maps to S.sub.1:customer:2 (in the same system, therefore target destination is “NONE”). Master data entity S.sub.1:customer:2 maps to S.sub.2:customer:2 as well as to S.sub.3:customer:2.
(152) In the mapping information directly available in system S.sub.3 we find: Master data entity S.sub.3:customer:2 maps to S.sub.3:partner:2 (in the same system, therefore target destination is “NONE”). Master data entity S.sub.3:partner:3 maps to S.sub.4:customer:3.
(153) The mapping information is depicted also in
(154) Via inference, the following mapping information is leveraged, as shown in the dashed shapes of
(155) Mapping between different master data entity types is possible. In this example actually most master data entities are linked to each other. In other words, all master data entities are representations of the same natural person.
(156) An entry point for mapping information and bi-directional mapping information, is now discussed. The portion of actually available mapping information depends on the system which serves as entry point for querying mapping information.
(157) A superior viewer who is omniscient could gain the knowledge/mapping information of the elements in
(158) Let's check for each system in the example, for which mapping information would be available if querying is started at a particular system. The start system for querying mapping information is S.sub.1. The mapping information shown in
(159) The four cases show that the gathered mapping information depends on which system is used to start the query. Another reason for this is that the connections between systems are directed and not bi-directional.
(160) At least the following are various reasons why connections between systems are directed:
(161) for security reasons (restrict access)
(162) no operational need for bi-directional connections
(163) costs for operation and maintenance.
(164) However, bi-directional connections which can also be represented by the existence of a second connection with the opposite direction, can increase the mapping information that could possibly be gathered. Let's take the already used example and adjust the system landscape so that there is another connection sourcing from system S.sub.2, targeting system S.sub.1. This adjustment is depicted in
(165) Compared to just knowing S.sub.2:customer:2, instead of no mapping information, all theoretically available mapping information is gathered. Compared to
(166) This leads so some further direction changes (e.g. between S.sub.1:customer:2, and S.sub.1:partner:1 via destination S.sub.1:NONE). But, there is no loss of mapping information.
(167) It can be summarized that additional/bi-directional connections may increase the amount of mapping information that could be gathered. Such connections are supported as well as intended by the approach according embodiments.
(168) Partial mapping information and an optimized query mechanism are now discussed. Considering systems and system landscapes with numerous master data entities, querying all mapping information records of all master data entities from each system might be difficult, due, e.g., to the amount of to be transferred and stored data, communication costs.
(169) The following (implicit) query mechanism may be used: Step 1: Gather all mapping information (of all mapping technologies) for all master data entities in the current system. Step 2: Gather information on all connected systems in the current system. Step 3: Trigger steps 1 to 5 in all systems gathered in step 2. Step 4: Receive mapping information from all systems that have been triggered in step 3. Step 5: Consolidate mapping information of step 4 and pass this it to the calling system (does not apply for the initial system).
(170) This approach can be called a snowball-approach. It may offer one or more of the following drawbacks. The amount of data gathered in step 1 can be large. This impacts further steps and/or might result in an unwanted resource consumption in the current and subsequent systems. Calling to each system that is connected to a certain system (step 2) may result in numerous cross-system calls and additional transferring a large volume amount of data. These are typically resource intensive (e.g., processing time, communication costs). Due to the fact that the subsequent (connected) system do the same for their connections, the amount of calls in the system landscape might reach a level affecting other business processes or triggering security alerts. Looking at the execution hierarchy of all steps in all systems, the amount of data received in step 4 increases depending on the hierarchy level. The higher a system is in the hierarchy, the more data it will receive. The most data is received in the system the process initially started at. It is unpredictable how much data that will be. Typically, for business cases not all mapping information of all master data entities is necessary. Only the mapping information of few or even only a single entity may be important.
(171) In order to address such one or more such issues, the following boundary condition is defined. Only mapping information for a defined set of master data entities is considered (instead of all mapping information for all entities).
(172) The querying approach is changed to be as shown in
(173) The introduced boundary condition limits the resource consumption as only relevant information is processed and transferred. However, the downside is that there is the chance to call systems twice or more times to assemble a holistic picture on the mapping.
(174) A specific example of the query mechanism of
(175) Master data mapping information is available in systems S.sub.1, S.sub.2 and S.sub.3. Three master data entities are in system S.sub.1, two in system S.sub.2, two in system S.sub.3, and one in system S.sub.4.
(176) System S.sub.1 has a destination to system S.sub.2 with name S.sub.1D.sub.1. System S.sub.1 has further destinations to system S.sub.3 with name S.sub.1D.sub.2 and to system S.sub.4 with name S.sub.1D.sub.3. System S.sub.2 has a destination to system S.sub.1 with name S.sub.2D.sub.1 and a destination to S.sub.3 with name S.sub.2D.sub.1. System S.sub.3 has a destination to system S.sub.4 with name S.sub.3D.sub.1.
(177) In some of the following figures, implicit mapping information is not made explicit for simplification purposes for ease of illustration. Otherwise, the figures would be crowded with shapes. Inference as described previously, can be applied.
(178) Looking at
(179) The execution of step 1 reveals the mapping between S.sub.1:partner:1 and S.sub.2:customer:1 (but not the one between S.sub.1:partner:1 and S.sub.1:customer:2), resulting also in MDES.sub.2. This is shown in the table of
(180) Step 2 results in an empty set MDES.sub.3 as the found master data entities reside in another system (not the current one). Accordingly, MDES.sub.4 contains S.sub.2:customer:1. This is shown in the table of
(181) In step 3 no repetition is performed because MDES.sub.3 is empty.
(182) Steps 4 and 5 result in MDES.sub.5 and MI.sub.2 as shown in the table of
(183) Step 6 just moves to the next step (I.sub.1=all). In step 7 the steps 1 to 6 are triggered in system S.sub.2.
(184) Keep in mind we are at step 7 in system S.sub.1, while we move on with step 1 in system S.sub.2. The execution of step 1 reveals the mapping between S.sub.2:customer:1 and S.sub.2:customer:3. MDES.sub.2 and MI.sub.1 are filled accordingly. This is shown in the table of
(185) Step 2 results in set MDES.sub.3, as MDES.sub.2 only contains entities that reside in the current system and an empty MDES.sub.4. This is shown in the table of
(186) Step 3 leads to a repetition because MDES.sub.3 is not empty. Thus, we start over with step 1, whereas MDES.sub.1 is set to contain all entries of MDES.sub.3 (here only one entry). As result the mapping to S.sub.1:customer:2 is revealed. This is shown in the table of
(187) Step 2 results in an empty MDES.sub.3′ and a filled MDES.sub.4′. This is shown in the table of
(188) In step 3 no repetition is performed because MDES.sub.3′ is empty.
(189) Step 4 results in the consolidation of MDES.sub.1, MDES.sub.1′, MDES.sub.2, MDES.sub.2′, MDES.sub.3, MDES.sub.3′ MDES.sub.4 and MDES.sub.4′ as well as MI.sub.1 and MI.sub.1′. Step 5 leverages the connection of system S.sub.2. This is shown in the table of
(190) Step 6 ends further processing and hands back the gathered information to system S.sub.1 (due to I1=‘1-6’).
(191) Back in system S.sub.1 the execution is continued at step 8. This is shown in the table of
(192) In step 9 the consolidation of MDES.sub.5 and MDES.sub.5′, MI.sub.2 and MI.sub.2′ as well as C.sub.1 and C.sub.1′ takes place. This is shown in the table of
(193) In step 10 the comparison of MI.sub.2 and MI.sub.3 shows that new mapping information is available (I.sub.2).
(194) Thus, in step 11 a repetition starting at step 1 is triggered where MDES.sub.1 is filled with all master data entities of MDES.sub.6 that reside in system S.sub.1. New mapping information for S.sub.1:customer:3 is found. This is shown in the table of
(195) Step 2 results in an empty set MDES.sub.3 as the found master data entities reside in another system (not the current one). Accordingly, MDES.sub.4 contains S.sub.3:customer:2. This is shown in the table of
(196) In step 3 no repetition is performed because MDES.sub.3 is empty.
(197) Steps 4 and 5 result in MDES.sub.5 and MI.sub.2 as shown in the table of
(198) Step 6 just moves to the next step (I.sub.1=all).
(199) In step 7 the steps 1 to 6 are triggered in system S.sub.3. Keep in mind we are at step 7 (2nd iteration) in system S.sub.1 while we move on with step 1 in system S.sub.3.
(200) The execution of step 1 reveals the mapping between S.sub.3:customer:2 and S.sub.3:partner:3. MDES.sub.2 and MI.sub.1 are filled accordingly. This is shown in the table of
(201) Step 2 results in set MDES.sub.3 as MDES.sub.2 only contains entities that reside in the current system and an empty MDES.sub.4. This is shown in the table of
(202) Step 3 leads to a repetition because MDES.sub.3 is not empty. Thus, we start over with step 1 whereas MDES.sub.1 is set to contain all entries of MDES.sub.3 (here only one entry). As result the mapping to S.sub.4:customer:2 is revealed. This is shown in the table of
(203) Step 2 results in an empty MDES.sub.3′ and a filled MDES.sub.4′. This is shown in the table of
(204) In step 3 no repetition is performed because MDES.sub.3′ is empty.
(205) Step 4 results in the consolidation of MDES.sub.1, MDES.sub.1′, MDES.sub.2, MDES.sub.2′, MDES.sub.3, MDES.sub.3′ MDES.sub.4 and MDES.sub.4′ as well as MI.sub.1 and MI.sub.1′. Step 5 leverages the connection of system S.sub.3. This is shown in the table of
(206) Step 6 ends further processing and hands back the gathered information to system S.sub.1 (due to I1=‘1-6’).
(207) Back in system S.sub.1 the execution is continued at step 8. This is shown in the table of
(208) In step 9 the consolidation of MDES.sub.5 and MDES.sub.5′, MI.sub.2 and MI.sub.2′ as well as C.sub.1 and C.sub.1′ takes place. This is shown in the table of
(209) In step 10 the comparison of MI.sub.2 and MI.sub.3 shows that new mapping information is available (I.sub.2).
(210) Thus, in step 11 a repetition starting at step 1 is triggered where MDES.sub.1 is filled with all master data entities of MDES.sub.6 that reside in system S.sub.1. The whole process starts over one more time. However, no new information is revealed.
(211) Step 10 in the 3rd iteration will thus not trigger another iteration but lead to the end of the process.
(212) The uniqueness of system IDs is now discussed. A mapping information record as described above, and usage as well as inference of mapping information relies on unique system IDs.
(213) Considering the example above, if there are two systems identifying themselves as S.sub.1, there could be a (partial) break-down or even misleading and incorrect mapping information.
(214) For this reason ambiguous system IDs are disallowed. Rather system IDs must be unique considering all systems relevant for the mapping scenario.
(215) One approach for unique system IDs where no central authority is needed to guarantee uniqueness, could be to employ UUIDs. System IDs are typically technical IDs. Humans get in touch with system IDs at configuration tasks. However, other approaches (including a central authority) that ensures uniqueness of system IDs may be used.
(216) A piece of code/technology may be used to query system IDs. Like querying mapping information via a call from one system to another system, there is the same approach to query system IDs. Unlike mapping information, the system ID is just a single identifier.
(217) Returning now to
(218) Rather, alternative embodiments could leverage the processing power of an in-memory database engine (e.g., the in-memory database engine of the SAP HANA in-memory database available from SAP SE), in order to perform various functions.
(219) Thus
(220) An example computer system 2900 is illustrated in
(221) Computer system 2910 may be coupled via bus 2905 to a display 2912, such as a cathode ray tube (CRT) or liquid crystal display (LCD), for displaying information to a computer user. An input device 2911 such as a keyboard and/or mouse is coupled to bus 2905 for communicating information and command selections from the user to processor 2901. The combination of these components allows the user to communicate with the system. In some systems, bus 2905 may be divided into multiple specialized buses.
(222) Computer system 2910 also includes a network interface 2904 coupled with bus 2905. Network interface 2904 may provide two-way data communication between computer system 2910 and the local network 2920. The network interface 2904 may be a digital subscriber line (DSL) or a modem to provide data communication connection over a telephone line, for example. Another example of the network interface is a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links are another example. In any such implementation, network interface 2904 sends and receives electrical, electromagnetic, or optical signals that carry digital data streams representing various types of information.
(223) Computer system 2910 can send and receive information, including messages or other interface actions, through the network interface 2904 across a local network 2920, an Intranet, or the Internet 2930. For a local network, computer system 2910 may communicate with a plurality of other computer machines, such as server 2915. Accordingly, computer system 2910 and server computer systems represented by server 2915 may form a cloud computing network, which may be programmed with processes described herein. In the Internet example, software components or services may reside on multiple different computer systems 2910 or servers 2931-2935 across the network. The processes described above may be implemented on one or more servers, for example. A server 2931 may transmit actions or messages from one component, through Internet 2930, local network 2920, and network interface 2904 to a component on computer system 2910. The software components and processes described above may be implemented on any computer system and send and/or receive information across a network, for example.
(224) The above description illustrates various embodiments of the present invention along with examples of how aspects of the present invention may be implemented. The above examples and embodiments should not be deemed to be the only embodiments, and are presented to illustrate the flexibility and advantages of the present invention as defined by the following claims. Based on the above disclosure and the following claims, other arrangements, embodiments, implementations and equivalents will be evident to those skilled in the art and may be employed without departing from the spirit and scope of the invention as defined by the claims.