# US 12,117,981 B2 · Automatic discovery of executed processes

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

- Number: US 12,117,981 B2
- Document ID: US12117981B2
- Status: Granted
- Kind: B2
- Application number: 17/122,852
- Filed: 2020-12-15
- Published: 2022-06-16
- Granted: 2024-10-15
- Earliest claimed: 2020-12-15
- Assignees: Sap SE
- Applicants: Sap SE
- Inventors: Natallia Jamieson; Gregor Berg; Andre Niklas Wenz; Sean Leonard; Chirag Poddar
- Web page: https://patentgrep.com/patent/US12117981B2

## CPC

- G06F 11/3684: {for test design, e.g. generating new test cases}
- G06F 16/219: {Managing data history or versioning (querying versioned data G06F16/2474; querying temporal data G06F16/2477)}
- G06F 11/3065: {Monitoring arrangements determined by the means or processing involved in reporting the monitored data (error or fault reporting or logging G06F11/0766)}
- G06F 11/3438: {monitoring of user actions (tracking the activity of the user H04L67/535)}
- G06F 11/3476: {Data logging (G06F11/14, G06F11/2205 take precedence)}
- G06F 11/3612: {by runtime analysis (performance monitoring G06F11/3466)}
- G06F 11/368: {for test version control, e.g. updating test cases to a new software version}
- G06F 11/3688: {for test execution, e.g. scheduling of test suites}
- G06F 16/1734: {Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs}
- G06F 21/50: Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F 2221/033: Test or assess software
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Data is gathered from a log file on a first application server, a log file on a second application server, a database on a database server, or any suitable combination thereof. By correlating the data from different sources, XP-Functions that execute in sequence on a single application server are identified and combined into a sequence referred to as an executable process chain (XP-Chain). The automatic process discovery server reconstructs end-to-end processes out of XP-Chains, even when the XP-Chains are executed on different application servers, based on log files and database data. A test script may be generated for an identified end-to-end process. By running the test script, proper functioning of the end-to-end process may be confirmed. Existing test scripts may be disabled for a formerly identified end-to-end process that is no longer found to be executed.

## Claims

### Claim 1

A method comprising:
accessing, by one or more processors, from a first log file on a first server, first data that shows a first change to a document by a first executable process function (XP-Function);
based on the first data, updating a database to store a first relationship between the first XP-Function and the document by storing a first row comprising an object identifier that identifies the document and a first index that identifies the first XP-Function;
accessing, by the one or more processors, from the first log file on the first server, second data that shows a second change to the document by a second XP-Function;
based on the second data, updating the database to store a second relationship between the second XP-Function and the document by storing a second row comprising the object identifier that identifies the document and a second index that identifies the second XP-Function;
based on the first XP-Function and the second XP-Function both executing on the first server, identifying a first executable process chain (XP-Chain) comprising the first XP-Function and the second XP-Function;
updating the database to store data relating the first XP-Function and the second XP-Function with the first XP-Chain;
accessing, from a second log file on a second server, third data that shows a third change to the document by a third XP-Function;
accessing, from the second log file on the second server, fourth data that shows a fourth change to the document by a fourth XP-Function;
based on the third XP-Function and the fourth XP-Function both executing on the second server, identifying a second XP-Chain comprising the third XP-Function and the fourth XP-Function;
updating the database to store data relating the third XP-Function and the fourth XP-Function with the second XP-Chain;
based on the first XP-Chain and the second XP-Chain both operating on the document, determining that the first XP-Chain and the second XP-Chain are part of an end-to-end process;
updating the database to store data relating the first XP-Chain and the second XP-Chain with the end-to-end process; and
generating a testing script for the end-to-end process based on the stored data in the database.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
causing a user interface to be presented on a display device, the user interface comprising an option to cause the testing script to be generated; and
wherein the generating of the testing script is in response to a selection of the option.

### Claim 3 (depends on 1)

The method of claim 1, wherein:
the updating of the database to store the data relating the first XP-Function and the second XP-Function with the first XP-Chain comprises storing a sequence value for the first XP-Function and the second XP-Function indicates a relative position of the first XP-Function and the second XP-Function.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
running the testing script.

### Claim 5 (depends on 1)

The method of claim 1, wherein:
the accessing of the first log file comprises accessing the first log file from the first server via a network; and
the accessing of the second log file comprises accessing the second log file from the second server via the network.

### Claim 6 (depends on 1)

The method of claim 1, wherein:
the database is a first database; and
further comprising:
accessing, from a second database, fifth data that identifies a fifth XP-Function, the fifth data showing a change to the document; and
based on the fifth data, updating the first database to store data relating the fifth XP-Function to the end-to-end process.

### Claim 7 (depends on 1)

The method of claim 1, wherein the first XP-Function comprises a user interaction.

### Claim 8 (depends on 1)

The method of claim 1, wherein the first XP-Function comprises an automated interaction.

### Claim 9 (depends on 1)

The method of claim 1, wherein the first data further identifies a role associated with the first XP-Function.

### Claim 10

A system comprising:
a memory that stores instructions; and
one or more processors configured by the instructions to perform operations comprising:
accessing, from a first log file on a first server, first data that shows a first change to a document by a first executable process function (XP-Function);
based on the first data, updating a database to store a first relationship between the first XP-Function and the document by storing a first row comprising an object identifier that identifies the document and a first index that identifies the first XP-Function;
accessing, from the first log file on the first server, second data that shows a second change to the document by a second XP-Function;
based on the second data, updating the database to store a second relationship between the second XP-Function and the document by storing a second row comprising the object identifier that identifies the document and a second index that identifies the second XP-Function;
based on the first XP-Function and the second XP-Function both executing on the first server, identifying a first executable process chain (XP-Chain) comprising the first XP-Function and the second XP-Function;
updating the database to store data relating the first XP-Function and the second XP-Function with the first XP-Chain;
accessing, from a second log file on a second server, third data that shows a third change to the document by a third XP-Function;
accessing, from the second log file on the second server, fourth data that shows a fourth change to the document by a fourth XP-Function;
based on the third XP-Function and the fourth XP-Function both executing on the second server, identifying a second XP-Chain comprising the third XP-Function and the fourth XP-Function;
updating the database to store data relating the third XP-Function and the fourth XP-Function with the second XP-Chain;
based on the first XP-Chain and the second XP-Chain both operating on the document, determining that the first XP-Chain and the second XP-Chain are part of an end-to-end process;
updating the database to store data relating the first XP-Chain and the second XP-Chain with the end-to-end process; and
generating a testing script for the end-to-end process based on the stored data in the database.

### Claim 11 (depends on 10)

The system of claim 10, wherein the operations further comprise:
causing a user interface to be presented on a display device, the user interface comprising an option to cause the testing script to be generated; and
wherein the generating of the testing script is in response to a selection of the option.

### Claim 12 (depends on 10)

The system of claim 10, wherein:
the updating of the database to store the data relating the first XP-Function and the second XP-Function with the first XP-Chain comprises storing a sequence value for the first XP-Function and the second XP-Function indicates a relative position of the first XP-Function and the second XP-Function.

### Claim 13 (depends on 10)

The system of claim 10, wherein the operations further comprise:
running the testing script.

### Claim 14 (depends on 10)

The system of claim 10, wherein:
the accessing of the first log file comprises accessing the first log file from the first server via a network; and
the accessing of the second log file comprises accessing the second log file from the second server via the network.

### Claim 15 (depends on 10)

The system of claim 10, wherein:
the database is a first database; and
the operations further comprise:
accessing, from a second database, fifth data that identifies a fifth XP-Function, the fifth data showing a change to the document; and
based on the fifth data, updating the first database to store data relating the fifth XP-Function to the end-to-end process.

### Claim 16

A non-transitory computer-readable medium that stores instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:
accessing, from a first log file on a first server, first data that shows a first change to a document by a first executable process function (XP-Function);
based on the first data, updating a database to store a first relationship between the first XP-Function and the document by storing a first row comprising an object identifier that identifies the document and a first index that identifies the first XP-Function;
accessing, from the first log file on the first server, second data that shows a second change to the document by a second XP-Function;
based on the second data, updating the database to store a second relationship between the second XP-Function and the document by storing a second row comprising the object identifier that identifies the document and a second index that identifies the second XP-Function;
based on the first XP-Function and the second XP-Function both executing on the first server, identifying a first executable process chain (XP-Chain) comprising the first XP-Function and the second XP-Function;
updating the database to store data relating the first XP-Function and the second XP-Function with the first XP-Chain;
accessing, from a second log file on a second server, third data that shows a third change to the document by a third XP-Function;
accessing, from the second log file on the second server, fourth data that shows a fourth change to the document by a fourth XP-Function;
based on the third XP-Function and the fourth XP-Function both executing on the second server, identifying a second XP-Chain comprising the third XP-Function and the fourth XP-Function;
updating the database to store data relating the third XP-Function and the fourth XP-Function with the second XP-Chain;
based on the first XP-Chain and the second XP-Chain both operating on the document, determining that the first XP-Chain and the second XP-Chain are part of an end-to-end process;
updating the database to store data relating the first XP-Chain and the second XP-Chain with the end-to-end process; and
generating a testing script for the end-to-end process based on the stored data in the database.

### Claim 17 (depends on 16)

The non-transitory computer-readable medium of claim 16, wherein the operations further comprise:
causing a user interface to be presented on a display device, the user interface comprising an option to cause the testing script to be generated; and
wherein the generating of the testing script is in response to a selection of the option.

### Claim 18 (depends on 16)

The non-transitory computer-readable medium of claim 16, wherein:
the updating of the database to store the data relating the first XP-Function and the second XP-Function with the first XP-Chain comprises storing a sequence value for the first XP-Function and the second XP-Function indicates a relative position of the first XP-Function and the second XP-Function.

### Claim 19 (depends on 16)

The non-transitory computer-readable medium of claim 16, wherein:
the accessing of the first log file comprises accessing the first log file from the first server via a network; and
the accessing of the second log file comprises accessing the second log file from the second server via the network.

### Claim 20 (depends on 16)

The non-transitory computer-readable medium of claim 16, wherein:
the database is a first database; and
the operations further comprise:
accessing, from a second database, fifth data that identifies a fifth XP-Function, the fifth data showing a change to the document; and
based on the fifth data, updating the first database to store data relating the fifth XP-Function to the end-to-end process.
