US Pat. No. 9,191,357

CONSISTENT INTERFACE FOR EMAIL ACTIVITY BUSINESS OBJECT

SAP SE, Walldorf (DE)

1. A non-transitory computer readable medium including program code for providing a message-based interface for exchanging
information about email activity, the medium comprising:
program code for receiving via a message-based interface derived from a common business object model, where the common business
object model includes business objects having relationships that enable derivation of message-based interfaces and message
packages, the message-based interface exposing at least one service as defined in a service registry and from a heterogeneous
application executing in an environment of computer systems providing message-based services, a first message for maintaining
information for one or more email activities, the maintaining using email activity data obtained from imported structured
data, the first message including a first message package hierarchically organized in memory based on and derived from the
common business object model, the first message package having a hierarchical organization including:

at a first hierarchical level in the first message package, an email activity bundle maintain request sync message entity;
and

at the first hierarchical level in the first message package, an email activity package including, at a second hierarchical
level in the first message package, an email activity entity, wherein each email activity entity includes, at a third hierarchical
level in the first message package, at least one of the following: an object node sender technical identifier (ID), a change
state ID, an ID, a universally unique identifier (UUID), a migrated data adaptation type code, a name, a priority code, an
initiator code, an information sensitivity code, a group code, a data origin type code, a transmitted date time, a completion
date time, a life cycle status code, a correspondence transmission status code, an activity follow up service request blocking
reason code, an initiating activity UUID, a predecessor activity UUID, an activity sentiment type code, and a groupware item
ID, and wherein a party package includes, at the third hierarchical level in the first message package, at least one reference
party entity;

program code for processing the first message based on the hierarchical organization of the first message package, where processing
the first message includes unpacking the first message package where the unpacking uses a corresponding interface to obtain
relevant data from an interface object and the first message package's derivation from the common business object model, wherein
the hierarchical organization of the first message package is used at least in part to identify the first message; and

program code for sending a second message to the heterogeneous application responsive to the first message, where the second
message includes a second message package derived from the common business object model to provide consistent semantics with
the first message package.

US Pat. No. 9,182,994

LAYERING OF BUSINESS OBJECT MODELS VIA EXTENSION TECHNIQUES

SAP SE, Walldorf (DE)

1. A computer program product comprising a non-transitory machine-readable medium storing instructions that, when executed
by at least one programmable processor, cause the at least one programmable processor to perform operations comprising:
defining, for a first business object existing in a first layer of a software architecture and having an association with
a second business object existing in a second layer of the software architecture, an extension node in the second layer, the
extension node comprising a business object model that extends a core business object model of the first business object and
delta information reflecting the association of the first business object with the second business object, the extension node
being located in a package and software component of the second layer to allow transport of the extension node separately
from the first layer;

altering the association of the second business object from the first business object to the extension node;
adding a tenant-specific extension to the first business object as part of the extension node in the second layer;
reading, at runtime from a metadata repository, metadata defining one or more nodes of the first business object and the extension
node;

constructing, at runtime in a run time business object load, a run time version of the first business object based on the
metadata, the run time version of the first business object comprising the one or more nodes of the first business object
and the extension node, wherein the run time version of the first business object contains the tenant-specific extension and
appears to a user as though the tenant-specific extension were defined as part of a core business object model of the first
business object provided as part of a core software platform on the business software architecture.

US Pat. No. 9,075,500

METHOD AND SYSTEM FOR PRESENTING AND NAVIGATING EMBEDDED USER INTERFACE ELEMENTS

SAP SE, Walldorf (DE)

1. A computer-implemented method, the method comprising:
defining attributes of a plurality of interactive user interface elements, the attributes including, at least, a textual descriptor
and a value representation of an associated data element;

associating at least one of the interactive user interface elements into a group of user interface elements;
displaying, embedded in a user interface of a first application, the group of the at least one interactive user interface
element, including a presentation of a value for the textual descriptor and the value representation of the associated data
element for each interactive user interface element in the group;

selecting a user interface control element to display a second group of at least one interactive user interface element, wherein
the at least one interactive user interface element have associated attributes including, at least, a textual descriptor and
a value representation of an associated data element; and

displaying, embedded in the user interface of the first application, the second group of the at least one interactive user
interface element, including a presentation of a value for the textual descriptor and the value representation of the associated
data element for each interactive user interface element in the second group.

US Pat. No. 9,224,222

INTERACTIVE MULTIDIMENSIONAL DRILLDOWN ANALYSIS

SAP SE, Walldorf (DE)

1. A method for analyzing business intelligence data comprising the following steps:
a. displaying a plurality of chips in a chip selection area, each representing a function to be applied to the business intelligence
data;

b. responsive to a chip selection from the chip selection area, instructing a system to apply the function associated with
the selected chip to the business intelligence data and transmit a result;

c. displaying a plurality of data points of the result received from the system in a result window;
d. responsive to a data point selection from the displayed result, modifying the functions in at least some of the plurality
of chips by limiting the respective functions to the data point selection;

e. responsive to at least one of a chip selection from the chip selection area and a data point selection from the displayed
result, repeating steps a to d using those chips having modified functions as the displayed plurality of chips;

f. displaying, in an analysis path, each of the chips selected from the chip selection area in a sequential order of selection;
g. responsive to a chip selection from the analysis path, redisplaying the plurality of data points of the result associated
with the selected chip from the analysis path in the result window;

h. responsive to a data point selection from the redisplayed data points, modifying each of the functions in each of the chips
in the analysis path following the selected chip according to the data point selection from the redisplayed data points and
then instructing the system to calculate an updated result in each of the chips in the analysis path following the selected
chip, wherein the analysis path includes an arrangement of adding a chip to the analysis path and the chips in the chip selection
area are displayed in response to an activation of the arrangement; and

i. subdividing a user interface screen into at least a first section and a second section, wherein the first section displays
the analysis path and the second section displays the chip selection area in response to the activation of the chip adding
arrangement, and then replaces the chip selection area with the result window after a chip is selected from the chip selection
area.

US Pat. No. 9,563,415

GENERATING VISUALLY ENCODED DYNAMIC CODES FOR REMOTE LAUNCHING OF APPLICATIONS

SAP SE, Walldorf (DE)

1. A computer implemented method for generating a visually encoded dynamic code for loading an application onto a remote device,
the method comprising:
configuring the application for deployment on a platform;
deploying the application on the platform for loading the application onto the remote device; and
generating and presenting a first visually encoded dynamic code that encrypts dynamic information stored in a form of a first
uniform resource locator (URL) for locating the deployed application, wherein the first visually encoded dynamic code is configured
to be decoded by the remote device to load and display the deployed application on the remote device, and wherein the first
URL has a platform dependent structure that comprises dynamic parts related to deployment characteristics of the platform
used for deploying the application;

modifying the application in response to a set of user interactions with the application on the remote device;
redeploying the modified application on the platform; and
generating a second visually encoded dynamic code that encrypts dynamic information for locating the redeployed modified application,
wherein redeploying the modified application generates a second URL that is encrypted in the second visually encoded dynamic
code, and wherein the second URL has the platform dependent structure of the first URL.

US Pat. No. 9,430,355

SYSTEM DIAGNOSTICS WITH THREAD DUMP ANALYSIS

SAP SE, Walldorf (DE)

1. A method comprising:
accessing a first thread dump from an execution of an application;
accessing a second thread dump from the execution of the application;
performing, by a processor of a machine, a comparison of the second thread dump with the first thread dump;
based on the comparison:
identifying a problem in the execution of the application, and
identifying a potential problem in the execution of the application;
determining, for each of the identified problem and the potential problem, a relevance value;
based on the relevance value for the potential problem being below a threshold, not causing a presentation of information
about the potential problem to a user; and

based on the relevance value for the identified problem being above the threshold, causing a presentation of information about
the identified problem to the user.

US Pat. No. 9,141,425

FRAMEWORK FOR CRITICAL-PATH RESOURCE-OPTIMIZED PARALLEL PROCESSING

SAP SE, Walldorf (DE)

1. A computer-implemented method, comprising:
instantiating a resource consumption optimizer framework (RCOF) for a plurality of discrete sub-processes associated with
a process, wherein dependency data stored in a process model defines dependencies between the plurality of the discrete sub-processes,
and wherein each of the discrete sub-processes is defined with data including a processing step identification, an overall
processing time, an earliest processing start time, and an earliest processing end time;

loading the plurality of discrete sub-processes into a memory in accordance with a calculated optimized resource consumption
pattern that uses the dependency data stored in the process model to identify a critical path, said critical path defining
the dependent discrete sub-processes that must be processed with their earliest possible processing start time in order to
avoid a delay in the overall processing end time;

associating each discrete sub-process of the plurality of sub-processes with an agent, wherein the agent communicates with
the ROCF;

executing a particular discrete sub-process of the plurality of discrete sub-processes loaded into the memory, wherein the
particular discrete sub-process' execution start is gated by an associated agent based upon at least a determined buffer value
specifying either an amount of time the particular discrete sub-process' execution start can be shifted in time without affecting
the start time of any later starting sub-process or without shifting an overall processing end time for the process; and

notifying the RCOF of the particular discrete sub-process execution completion.

US Pat. No. 9,170,780

PROCESSING CHANGED APPLICATION METADATA BASED ON RELEVANCE

SAP SE, Walldorf (DE)

1. A method implemented by a computing system in response to execution of program code by a processor of the computing system,
comprising:
executing a software application based on metadata defining data models of a first plurality of software components;
receiving second metadata defining the data models of the first plurality of software components;
determining, based on the second metadata, a second plurality of the first plurality of software components for which the
second metadata defining the data models is different from the first metadata defining the data models;

determining, from the second plurality of software components, a third plurality of software components for which the second
metadata defining the data models of the third plurality of software components is associated with authorization policies
of the software application, where the second plurality of software components comprises one or more other software components
for which the second metadata defining the data models of the one or more other software components is not associated with
the authorization policies of the software application; and

generating the authorization policies of the software application based on the second metadata defining the data models of
the third plurality of software components, and not based on the one or more other software components.

US Pat. No. 9,256,655

DYNAMIC ACCESS OF DATA

SAP SE, Walldorf (DE)

1. A system, comprising:
a master data server, to maintain a master database at a data server, the master database comprising master data objects,
the master database accessible to clients comprising a first client and a second client;

an integration server, in response to a request from the first client to access master data identified by a first client identifier,
to map the first client identifier to a master identifier, retrieve a master data object from the master database based on
the master identifier, and map the master data object to a mapped data object based on a set of mapping rules associated with
the first client, wherein the master data object has a plurality of attributes associated with characteristics of an entity
represented by the master data object, the first client processes a first subset of the plurality of attributes, the second
client processes a second subset of the plurality of attributes, the first subset being different from the second subset,
and

a mapping table to store information related to mapping of client identifiers to master identifiers, the first client identifier
from the client identifiers identifying the master data object in the first client, a second client identifier from the client
identifiers identifying the master data object in the second client, and the master identifier from the master identifiers
identifying the master data object in the master data server.

US Pat. No. 9,058,589

SUBJECTIVE USER INTERFACE

SAP SE, Walldorf (DE)

1. A method for networking among data objects of a business enterprise comprising operating a computer system to perform steps
of:
receiving, at a computing device, input from a worknet creator to define an initial worknet including receiving input indicative
of a plurality of data objects of a business enterprise as members of the initial worknet, including data objects representative
of persons in the business enterprise and at least one data object representative of a first worknet subset;

receiving input from the worknet creator that identifies one or more members of the initial worknet to create a second worknet
subset (“worknet subset”), including the computing device:

instantiating the worknet subset;
updating the initial worknet by adding the worknet subset as a data object in the initial worknet;
displaying a representation of the updated initial worknet including displaying a representation of the worknet subset along
with a representation of the members of the initial worknet;

displaying a representation of the worknet subset in worknets of other users who are members of the worknet subset; and
sending a notification to the members of the worknet subset,
wherein the worknet subset becomes a data object of the business enterprise and is included in a global view of the data objects
of the business enterprise;

displaying a first feed viewer associated with the members of the worknet, the first feed viewer presenting communications
to and from the members of the worknet;

displaying a second feed viewer, separate from the first feed viewer, associated with members of the worknet subset, the second
feed viewer presenting communications to and from the members of the worknet subset; and

defining an activity space, separate from the first feed viewer and the second feed viewer, that is associated with the worknet
subset, the activity space comprising a subset of the members of the worknet subset as members of the activity space, and
one or more collaboration tools to facilitate activities among the members of the activity space.

US Pat. No. 9,336,027

SYSTEM AND METHOD FOR MODULAR BUSINESS APPLICATIONS

SAP SE, Walldorf (DE)

1. A method for creating an add-on application, comprising:
creating, with an electronic processor and in an electronic storage medium, a business add-in definition object within an
add-on application development environment, wherein the add-on application is based on a foundation application, wherein the
add-on application comprises software code, and wherein the add-on application requires at least one function that requires
at least one code modification within a modified object of the foundation application;

defining, with the electronic processor, a method in the business add-in definition object for the at least one code modification
to provide the at least one function, wherein the add-in definition object enables the at least one code modification to be
switchable between an activated and deactivated state;

inserting a call to the add-in definition object in the modified object;
responsive to completing development of the add-on application when all places where modification of the foundation application
are known, copying the add-in definition object that enables the at least one code modification to be switchable into the
foundation application; and

responsive to a new version of the foundation application being created, copying the add-in definition object into the new
version.

US Pat. No. 9,424,026

VISUALIZATIONS OF INTER-ENTITY CALLS

SAP SE, Walldorf (DE)

1. A computer-implemented method for generating visualizations of inter-entity calls, comprising:
receiving static information for entities using information from an entity dictionary derived from a static and dynamic code
analysis, the entity dictionary including:
for each particular entity of the entities, an abstract syntax tree reference, an entity type, a location, a list of called
entities, a list of called-by entities, a scope, a parameter set including parameter items, and comments;
for each called entity of the list of called entities, a called entity identifier, a location, and a set of candidate call
entities;

for each parameter item of the parameter set, a parameter type and a parameter name; and
for each candidate called entity of the set of candidate called entities, a candidate entity identifier and a matching score;
receiving dynamic information for the entities using information associated with the entities received at run-time;
receiving a request for a visualization, the visualization including a hierarchical representation of inter-entity calls among
the entities, including inter-entity calls between entities in a same source code file, including source code files of weakly-typed,
prototype-based languages;

analyzing the static information and the dynamic information;
generating, based on the analyzing, instructions for presenting the visualization;
receiving user inputs for interacting with the visualization; and
updating the visualization based on the received user inputs.

US Pat. No. 9,047,228

SYSTEMS AND METHODS FOR DATA PRIVACY AND DESTRUCTION

SAP SE, Walldorf (DE)

1. A computer-implemented method for managing access to personal data, the method comprising:
a processor selecting one or more business partners having personal data records stored in a database connected to an enterprise
computing system, the personal data records including the personal data;

for each particular business partner of the selected business partners, a business partner data management component of the
processor identifying each application that accesses the personal data records associated with the particular business partner;

the business partner data management component inquiring from each identified application if it has reached an end-of-purpose
period for the personal data records of the particular business partner;

if an end-of-purpose period has been reached by a particular application, receiving a start-of-retention-time indication from
the particular application;

storing the start-of-retention-time indication in a data record associated with the particular business partner;
blocking access by the particular application to the personal data records of the particular business partner based on the
start-of-retention-time indication received from the particular application, without deleting the personal data from the database;

if a start-of-retention-time indication is not received from the particular application, allowing continued access by the
particular application to the personal data records associated with the selected business partner;

for each particular business partner if a start-of-retention time is received from each application accessing the personal
data records associated with the particular business partner,

calculating an end-of-retention period time for the personal data by the information lifecycle management component; and
removing the personal data from the personal data records at the end-of-retention period expiration.

US Pat. No. 9,053,445

MANAGING BUSINESS OBJECTS

SAP SE, Walldorf (DE)

1. A computer system including instructions recorded on a non-transitory computer-readable medium and executable by at least
one processor, the system comprising:
an access manager configured to cause the at least one processor to manage business objects in memory by determining one or
more properties of each business object, displaying each business object in a configuration table of a user interface, and
configuring the user interface to map user interface fields in reference to defining the one or more properties of each business
object, wherein the access manager includes:

a context handler configured to define a context of one or more input parameters of data used to determine the one or more
properties of each business object;

a rule handler configured to define one or more rules associated with the one or more properties of each business object;
a model handler configured to generate a metadata model for each business object based on the context of the one or more input
parameters of each business object and the one or more rules associated with the one or more properties of each business object;

a runtime handler configured to lock the one or more properties of each business object to each corresponding metadata model;
and

a property calculation handler configured to map each property for each business object in memory to at least one of the user
interface fields in reference to defining the one or more properties associated with each business object.

US Pat. No. 9,336,286

GRAPHICAL RECORD MATCHING PROCESS REPLAY FOR A DATA QUALITY USER INTERFACE

SAP SE, Walldorf (DE)

1. A computer-implemented method, comprising:
receiving a plurality of records, each of the plurality of records comprising a plurality of fields;
executing, by a computer processor of a data quality platform, a matching process to match at least some of the records with
each other based the plurality of fields; and

receiving from a user a replay request associated with at least two of the received records that were included in the matching
process to initiate a play-by-play presentation of the matching process, the play-by-play presentation comprising: (i) graphically
displaying, via a user interface, information about the at least two records and a first decision in the matching process,
(ii) graphically displaying to the user a result of the first decision in the matching process, (iii) graphically displaying,
via the user interface, information about the at least two records and a second decision in the matching process, subsequent
to the first decision, and (iv) graphically displaying to the user a result of the second decision in the matching process.

US Pat. No. 9,256,400

DECISION SERVICE MANAGER

SAP SE, Walldorf (DE)

1. A computer-implemented method, comprising:
creating a connection between a decision service manager and a managed system;
establishing a signature of a decision service;
developing, using at least one computer, the decision service based upon the established signature of the decision service;
performing a deployment readiness check, wherein the deployment readiness check is based upon criteria associated with the
managed system and the developed decision service, the criteria including at least one of: that the definition and implementation
of the decision service is free of any error messages, that defined limitations are not used within the decision service,
the availability of the managed system, or that the managed system responds with an acknowledgement prior to performing the
deployment;

transferring generated code implementing the decision service to the managed system upon a determination that the deployment
readiness check was successful; and

inserting the generated code into the managed system.

US Pat. No. 9,086,940

INCLUSION OF CUSTOMER-SPECIFIC TRANSPORT REQUESTS IN SOFTWARE ARCHITECTURE UPDATE PROCEDURES

SAP SE, Walldorf (DE)

1. A computer program product comprising a machine-readable medium storing instructions that, when executed by a system comprising
a programmable processor, cause the system to perform operations comprising:
creating customer-specific developments based on a target update release in a development system to which an update of a core
software platform of a software architecture has been applied, the customer-specific developments comprising a customization
of the core software platform that is specific to a given customer organization using the software architecture;

updating and testing a quality control or other test system, the updating comprising importing, during an uptime state, customer-specific
transport requests representing the customer-specific developments;

updating a productive system to the target update release, the updating comprising importing, during the uptime state, the
customer-specific transport requests to the productive system; and

returning the productive system to business use and executing one or more post processing procedures concurrently with the
business use.

US Pat. No. 9,378,194

PREVIEWING EMAIL TEMPLATES IN MARKETING CAMPAIGNS

SAP SE, Walldorf (DE)

1. A computer-implemented method for providing a preview of an email template, the method comprising:
receiving, at a computer, a request from a user of the computer to preview an electronic document (e-document) template;
invoking a content of the e-document template, wherein the content includes a placeholder for a variable;
determining, by the computer, a correspondence language of the user;
identifying, by the computer, a markup language element for the placeholder in the e-document template;
determining, by the computer, a descriptive name for the identified markup language element by invoking metadata information
pertaining to the place holder, and based on the metadata information, deriving the descriptive name associated with the identified
markup language element for the placeholder in the correspondence language of the user;

replacing the markup language element for the placeholder with the selected descriptive name; and
rendering a preview of the e-document template.

US Pat. No. 9,110,601

BACKUP LIFECYCLE MANAGEMENT

SAP SE, Walldorf (DE)

1. A computing system comprising:
a memory storing processor-executable program code; and
a processor to execute the processor-executable program code in order to cause the computing system to:
determine a plurality of backup jobs based on a backup catalog, the backup catalog comprising a plurality of records, each
of the plurality of records associated with one of the plurality of backup jobs;

receive a first instruction to delete a first backup job of the plurality of backup jobs; and
in response to the first instruction, add a delete record associated with the first backup job to the backup catalog,
wherein the delete record indicates that the first instruction to delete the first backup job was received.

US Pat. No. 9,354,948

DATA MODELS CONTAINING HOST LANGUAGE EMBEDDED CONSTRAINTS

SAP SE, Walldorf (DE)

1. A computer-implemented method comprising:
receiving, on an in-memory database engine, a first event handler containing code configured to validate a first entity comprising
an object in an in-memory database and including a constraint derived from a second entity of an Entity-Relationship Model
defined by an extension of Structured Query Language to include an association type comprising a first parameter clause specifying
a cardinality, and a second parameter clause specifying a foreign key, wherein an application configured to manage the in-memory
database and the first event handier are in a host language different than SQL;

identifying, by the in-memory database engine and according to the first event handler, a built-in event associated with the
first entity;

registering, by the in-memory database engine, the first event handler to the built-in event;
evaluating the constraint by referencing the cardinality and the foreign key,
wherein the application automatically calls the first event handler when the built-in event is triggered; and
wherein the in-memory database engine includes at least one service, data definition, or data processing based on an Entity-Relationship
Model and at least one service, data definition, or data processing based on a Relational Model.

US Pat. No. 9,477,447

SEMANTIC REPRESENTATIONS OF SOFTWARE EXTENSIONS

SAP SE, Walldorf (DE)

1. A method comprising:
causing, in a first system, display of a plurality of semantic representations of software extension components for an application
of a second system;

generating, using one or more hardware processors, a new semantic representation of a software extension for the application
based on at least two of the plurality of semantic representations of software extension components selected by a user;

generating an adaptation object comprising the new semantic representation of the software extension and at least one associated
software object;

identifying, using the one or more hardware processors, the at least one associated software object based on an adaptation
type of the adaptation object; and

exporting the adaptation object from the first system based on receiving a user request.

US Pat. No. 9,348,609

FRAMEWORK FOR AD-HOC PROCESS FLEXIBILITY

SAP SE, Walldorf (DE)

18. A system, comprising:
memory operable to store information associated with process instances of one or more business processes; and
one or more processors operable to:
provide process instances of one or more business processes to a client across a network in a process visualization user interface;
receive a request from the client to initiate an ad-hoc change of a selected process instance associated with an original
process model;

provide user interaction options for implementing the ad-hoc change to the client, the user interaction options provided in
the process visualization user interface;

receive a selection of a particular user interaction option for implementing the ad-hoc change from the client; and
implement the ad-hoc change of the selected process instance at runtime for the original process model associated with the
selected process instance, wherein implementing the ad-hoc change of the selected process instance at runtime comprises:

generating a revised process model based on the original process model, the revised process model further including at least
one change associated with the selected user interaction option, wherein the original process model is maintained separate
from the revised process model;

automatically migrating the selected process instance from the original process model to the revised process model at runtime
by moving at least a portion of a process instance state associated with the selected process instance to the revised process
model, wherein the process instance state is distinct from the original process model and the revised process model;

executing, after completing the migration, the revised process model using the moved process instance state; and
cancelling, while the revised process model is executing, the execution of the original process model.

US Pat. No. 9,311,296

SEMANTIC PHRASE SUGGESTION ENGINE

SAP SE, Walldorf (DE) in...

1. A semantic phrase engine, comprising:
an electronic processor in communication with an electronic storage medium configured to provide:
a language syntax layer including a syntax manager with a grammatical sentence definition that defines a particular rule structure
that applies to all sentences used in the semantic phrase engine and includes term types, wherein the grammatical sentence
definition also includes a sentence importance indicator;

a semantic network layer including:
a plurality of knowledge domains each defining a hierarchy of terms related by a common business context, wherein each term
has an assigned type specified in the grammatical sentence definition and wherein each term has a user-specific term importance
indicator that includes term importance information for a combination of all users, user groups, and a particular user;

a terminology manager to provide end-user requests for terms and administrative tasks for terms;
a terminology importer to receive terms into a knowledge domain and ensure the terms are compliant with the grammatical sentence
definition,

wherein the relative importance of one or more knowledge domains is defined by a combination of the particular user and the
particular user's associated user groups; and

a suggestion module configured to analyze initial user input and provide suggestions for remaining input that are consistent
with the grammatical sentence definition and from a determined knowledge domain,

wherein the initial user input comes from a user who is associated with a group of users from a plurality of groups, and wherein
each of the terms includes an importance indicator defined for a specific group of users, and

wherein calculation of a greater importance indicator generates an importance indicator associated with each suggestion that
is associated with the group of users and indicates importance greater than the importance indicator associated with the respective
term and associated with the group of users.

US Pat. No. 9,239,737

CONCISE RESOURCE ADDRESSING

SAP SE, Walldorf (DE)

1. A computer-implemented method executed by one or more processors, the method comprising:
receiving a request for an application including a resource identifier, the resource identifier including a textual identifier
and a contextual identifier, the textual identifier including a textual description of the requested application, and the
contextual identifier including an encoded description of the requested application;

determining at least one target application associated with the resource identifier based at least in part on the textual
identifier or the contextual identifier, wherein determining the at least one target application comprises:

identifying a set of target applications based at least in part on the textual identifier or the contextual identifier; and
ranking each target application in the set of target applications based on a degree of similarity to the textual identifier;
and

sending a response to the request include the at least one target application associated with the resource identifier, where
the response includes the ranked set of target applications.

US Pat. No. 9,251,011

BACKUP OF IN-MEMORY DATABASES

SAP SE, Walldorf (DE)

1. A computer implemented method of creating a backup of data in an In-memory database system, the method comprising receiving
a request to create a backup of a data set from a main memory of the system,
disabling manipulation of the data set by the system,
invoking a data structure comprising meta-data information identifying one or more data blocks in the main memory that form
the data set,

creating a snapshot of the data structure,
storing the snapshot of the data structure in the mam memory,
enabling manipulation of the data set by the system,
receiving a request from the system to modify at least one block of the one or more blocks of data,
copying the at least one data block to a free memory block in the main memory to perform the requested modification on the
copied data block, and

updating the data structure by replacing original meta-data identifying the at least one block of data with new meta-data
identifying the free memory block, and

creating the backup of the data set by duplicating the data set using meta-data information from the snapshot of the data
structure and storing the duplicated data set in a target memory.

US Pat. No. 9,336,257

SYSTEMS AND METHODS PROVIDING A SOFT EXIT STATE FOR SECONDARY BUSINESS OBJECTS LOCKS

SAP SE, Walldorf (DE)

1. A method implemented by a computing system in response to execution of program code by a processor of the computing system,
the method comprising:
establishing, in a storage device in communication with the processor, a primary business object along with a plurality of
secondary business objects that depend from the primary business object in a hierarchy;

placing, by the primary business object under control of the processor, a lock on a secondary business object and facilitating
an update of data associated with the secondary business object;

detecting, by the secondary business object under control of the processor, that a database commit has been executed; and
responsive to said detecting, removing, by the secondary business object, the lock associated with the secondary business
object.

US Pat. No. 9,058,215

INTEGRATION OF A CALCULATION ENGINE WITH A SOFTWARE COMPONENT

SAP SE, Walldorf (DE)

1. A computer system implementing software framework related to an in-memory database, the computer system comprising:
a memory storing computer instructions; and
a processor reading the instructions stored in the memory to generate the software framework comprising:
a user interface component in an application layer to schedule jobs and configure a calculation engine of an in-memory database;
an application level component comprising an operational unit and a control unit, wherein:
the control unit performs operations comprising:
triggering jobs to be processed by the operational unit; and
updating a log based on output of the calculation engine;
the operational unit performs operations comprising:
receiving a job trigger input from the control unit;
dividing a job workload into work packages based on one or more parameters, wherein the workload comprises data stored in
the in-memory database; and

sending the work packages to the calculation engine; and
the calculation engine in the in-memory database to perform operations on the work packages and generating the output.

US Pat. No. 9,053,293

PERSONAL AUTHENTICATIONS ON COMPUTING DEVICES

SAP SE, Walldorf, DE (US...

1. A computer device, comprising:
a computer-user interface configured to receive a string of characters as a personal authentication statement input by a user,
the string of characters including a concatenation of a user-authentication token and a computer objects-authentication token;
and

a parser configured to parse and extract the user-authentication token and the computer objects-authentication token from
the personal authentication statement input by the user,

wherein the computer objects-authentication token identifies at least one concealed computer object, and
wherein the computer device is configured to reveal at least one concealed computer object upon authentication of the user
based on the extracted user-authentication token and verification that the authenticated user is authorized to access the
at least one concealed computer object based on the extracted computer objects-authentication token.

US Pat. No. 9,471,345

RUNTIME GENERATION AND INJECTION OF JAVA ANNOTATIONS

SAP SE, Walldorf (DE)

1. A computer implemented method, the method comprising:
reading, from a file stored in a memory, configurations of a Java component,
based on the configurations, generating annotations to be injected into the Java component, and
at runtime:
a processor injecting the annotations into a compiled source code of the Java component, while original source code of the
Java component remains unchanged by the injected annotations, wherein injecting the annotations into the compiled source code
of the Java component comprises:

intercepting a class loading process in a container;
detecting class loading of a class file of the java component;
injecting the annotations into the class file of the Java component;
dynamically updating the configurations corresponding to the compiled source code of the Java component while the original
source code of the Java component remains unchanged; and

based on the updated configurations, dynamically modifying the annotations to be injected into the compiled source code of
the Java component without recompiling the Java component.

US Pat. No. 9,224,107

MANAGING CUSTOMIZING SETTINGS IN A BUSINESS STRUCTURED INTERFACE

SAP SE, Walldorf (DE)

1. A computer program product tangibly embodied in a computer-readable storage medium and comprising instructions that when
executed by a processor perform a method for managing customizing settings for an application program, the method comprising:
presenting, in a computer system, a plurality of business process types to a user, each of the business process types being
configured for execution in the computer system to perform a predefined business operation and comprising a plurality of business
document types;

receiving a first user input selecting a set of business process types from the presented plurality of business process types,
the first user input triggering a first level of modification, for each selected business process type, of settings in a customizing
table accessed by the application program that are grouped for the selected business process type;

presenting, in response to the first selection, the plurality of business document types associated with the selected business
process type;

receiving a second user input selecting a set of business document types from the presented plurality of business document
types, the second user input triggering a second level of modification, for each selected business document type, of settings
in the customizing table that are grouped for the selected business document type; and

launching the application program in the computer system and in response to the first and second inputs, wherein the first
and second corresponding features are activated and available during operation of the application program, and wherein other
features not associated with at least one of the selected set of business process types and the selected set of business documents
are not activated and are not available during the operation.

US Pat. No. 9,430,523

ENTITY-RELATIONSHIP MODEL EXTENSIONS USING ANNOTATIONS

SAP SE, Walldorf (DE)

1. A computer-implemented method comprising:
providing Structured Query Language (SQL) extensions for a relational model of a database described by SQL for use in coding
database queries to recognize features of an entity-relationship model (ERM) for an application that stores data in the database,

wherein the SQL extensions include typed data structures for defining entities of the application, associations defining relationships
between the entities of the application, and for defining annotations for data models of the application,

wherein the annotations enable defining additional metadata that extends data definitions of an existing data model of the
application without requiring developing a new data model or redundant type structures for the application;

in a database query engine configured to query the database:
receiving a database query communicated to the database query engine, wherein the database query is coded in SQL with the
SQL extensions;

translating the database query in the database query engine to query the database; and
receiving a query result from the database, wherein the existing data model of the application and the additional metadata
defined by the extensions of SQL are processed together at runtime in the database query engine.

US Pat. No. 9,423,929

PREDICTIVE SCROLLING

SAP SE, Walldorf (DE)

1. A computer-implemented method for graphically displaying database records on a display screen with limited display area,
the method comprising:
associating a plurality of database records with a cube, the plurality of database records representing a multi-dimensional
chart, wherein the cube displays a first database record on a face displayed in front of the cube on a display screen, wherein
a first direction of rotation of the cube is associated with a first axis of the multi-dimensional chart and a second direction
of rotation of the cube is associated with a second axis of the multi-dimensional chart;

in response to an input, animating by rotating the cube, to change the face displayed in the front of the cube on the display
screen, wherein the rotation of the cube along the first direction displays the plurality of database records along the first
axis on the face in the front of the cube and the rotation of the cube along the second direction displays the plurality of
database records along the second axis on the face in the front of the cube;

preloading the plurality of database records including a final database record while the cube is animating;
determining the final database record from the preloaded plurality of database records; and
while the cube stops animating, displaying the determined final database record on the face in the front of the cube on the
display screen.

US Pat. No. 9,389,982

METHOD AND APPARATUS FOR MONITORING AN IN-MEMORY COMPUTER SYSTEM

SAP SE, Walldorf (DE)

1. A method for monitoring system performance of an in-memory computer system comprising:
conducting, by the in-memory computer system, a plurality of on-line transaction processes (OLTPs) to receive and store runtime
data in a main memory component of the in-memory computer system for runtime data collection processes;

conducting, by the in-memory computer system, a plurality of on-line analytical processes (OLAPs) on the same runtime data
for runtime data analysis processes to produce a plurality of runtime data analysis results;

storing, by the in-memory computer system, the runtime data in a plurality of system tables in the main memory component
scheduling a first script procedure stored in the main memory to execute in the main memory component using a statistics scheduler
process; and

executing, by the in-memory computer system, the first script procedure to perform the runtime data collection processes and
the runtime data analysis processes and to copy at least some of the runtime data from one or more of the plurality of system
tables to one or more of a plurality of statistics tables in the main memory as monitoring data.

US Pat. No. 9,373,093

GATEWAY SERVICE MANAGER FOR BUSINESS OBJECT APPLICATIONS

SAP SE, Walldorf (DE)

1. A system comprising:
a backend server comprising business applications within a business object processing framework (BOPF), the business object
processing framework comprising a framework data format;

a generic gateway service manager coupled to the business object processing framework;
a gateway coupled to the generic gateway service manager, the gateway comprising a gateway data format;
a caching module coupled to the backend server, wherein a cache and a caching operation of the caching module are based on
a user session; and

a session identifier that is used to identify in the caching operation one or more of a paging operation, a filtering operation,
and a sorting operation;

wherein the generic gateway service manager is positioned between the business object processing framework and the gateway;
wherein the generic gateway service manager is configured to retrieve the framework data format from the business object processing
format and store the framework data format in the gateway;

wherein the gateway is configured to transfer data between the business object processing framework and a user interface using
the framework data format stored in the gateway;

wherein the generic gateway service manager executes the sorting operation by calculating a hash value for a requested entity
in the cache, and wherein the hash value is used to determine whether the requested entity is in the cache for a current session;

wherein when the requested entity is in the cache for the current session, transmit a portion of the requested entity as determined
by one or more paging options to the user interface; and

wherein when the requested entity is not in the cache for the current session, retrieve the requested entity from the business
object processing framework, and transmit the requested entity as determined by one or more paging options to the user interface.

US Pat. No. 9,356,978

FEED ROUTING FOR OBJECT BASED COLLABORATION

SAP SE, Walldorf (DE)

1. A method for routing activity information in a collaboration system comprising operating one or more data processing units
to perform the actions of:
receiving an activity notification regarding an activity involving an object from an external application separate from the
collaboration system;

analyzing the activity notification to generate an event item comprising an object identifier associated with the object and
a description of the activity involving the object;

accessing a first relationship table comprising a plurality of object-container association records to determine one or more
container identifiers associated with the object identifier; and

creating one or more group feed items in a group feeds table, wherein each group feed item comprises an event item identifier
associated with the event item and one of the container identifiers;

rendering the plurality of group feed items as posts in a plurality of corresponding group feeds according to the container
identifier;

receiving a comment through one of the plurality of corresponding group feeds from a user of the collaboration system;
generating a comment event item comprising a comment event identifier; and
creating a group feed comment item in the group feeds table that includes the comment, the comment event item identifier,
and the container identifier.

US Pat. No. 9,355,020

RESOLVING NONDETERMINISM IN APPLICATION BEHAVIOR MODELS

SAP SE, Walldorf (DE)

1. A computer-implemented method for resolving nondeterminism in a behavior model of a computing system under test (SUT),
the method being executed using one or more processors and comprising:
receiving, by the one or more processors, a behavior model relating to a SUT, the behavior model comprising two or more nondeterministic
transitions;

obtaining, by the one or more processors, trace data associated with execution of the SUT across the two or more nondeterministic
transitions;

determining, by the one or more processors, based on the trace data, two or more transition guards that resolve nondeterminism
of the two or more nondeterministic transitions, wherein determining the two or more transition guards comprises:

providing a training dataset based on the trace data;
training a classifier based on the training dataset via a machine learning algorithm; and
inferring the two or more transition guards based on output from the classifier; and
associating, by the one or more processors, the two or more transition guards with the two or more nondeterministic transitions
to provide an extended behavior model.

US Pat. No. 9,348,579

INTEGRATION OF SOCIAL NETWORKS WITH INTEGRATED DEVELOPMENT ENVIRONMENT (IDE)

SAP SE, Walldorf (DE)

1. A method of integrating social networks with integrated development environment (IDE), the method comprising:
downloading social information;
filtering and displaying the downloaded social information;
performing software development using the displayed social information, wherein the performing software development comprises
creating a topic related to a source file, wherein the topic comprises an identifier that identifies the source file, a location
reference of the source file, one or more user comments and a source file snapshot that includes a read-only copy of the source
file; and

storing updated social information in a database, wherein the updated social information comprises the created topic.

US Pat. No. 9,348,665

MAPPING MESSAGES BETWEEN WEB SERVICES

SAP SE, Walldorf (DE)

1. A computer-implemented method for mapping of messages, the method comprising:
receiving, from a first web service, a message comprising one or more operations in a first format;
determining that the message includes an asynchronous operation;
in response to determining that the message includes the asynchronous operation, splitting the message into two or more split
messages;

for each of the two or more split messages:
identifying a mapping interface that is based on the first web service and that includes an asynchronous mapping for the asynchronous
operation;

identifying a second web service that is associated with the asynchronous mapping of the mapping interface;
mapping the split message to the second web service such that the asynchronous operation is in a second format associated
with the second web service; and

assigning a logical port connection to the second web service,
wherein splitting the message into the two or more split messages is based on a formatting of a graphical user interface (GUI)
of the second web service.

US Pat. No. 9,330,123

METHOD AND SYSTEM FOR IMPROVING INFORMATION SYSTEM PERFORMANCE BASED ON USAGE PATTERNS

SAP SE, Walldorf (DE)

13. A computerized optimization system associated with a data provider on a computing platform, the data provider having a
structure model associated with an entity, said computerized optimization system comprising:
a usage obtainer configured to obtain usage information of the structure model, the usage information is associated with a
user accessing the data provider computing platform from a remote computing platform, wherein the usage information comprises
retrieving data from the data provider using the structure model in response to a query by the user from the remote computing
platform and wherein the structure model comprises structure objects including multiple levels of sub-structures;

a personalized structure model determinator configured to determine a personalized structure model associated with the entity
based on the usage information obtained by said usage obtainer, wherein the personalized structure model determinator comprises:

a grouping module to determine a group of the structure objects to retrieve from the data provider;
a structure objects sorter to determine an order of retrieval of the structure objects; and
a structure model flattener to determine an arrangement of the structure objects by flattening the structure model;
a retrieval request detection module configured to detect a retrieval request by the user and accept the retrieval request
using the personalized structure model at the remote computing platform, the retrieval request is associated with the entity;
and

a data obtainer configured to obtain data associated with the retrieval request, the data obtainer is configured to obtain
the data from the data provider at the computing platform based on the personalized structure model instead of the structure
model.

US Pat. No. 9,307,043

STAGING ENGINE

SAP SE, Walldorf (DE)

1. A method comprising:
receiving, by a server, first data that is incomplete, the first data received from a first machine over a first network,
the first data for transfer to a third machine over a second network;

storing the first data;
receiving by the server, second data from a second machine over the first network;
determining, by the server, that the second data completes the first data;
responsive to the determination that the second data completes the first data, completing the first data with the second data;
and

sending, by the server, the completed first data to the third machine over the second network.

US Pat. No. 9,342,237

AUTOMATED TESTING OF GESTURE-BASED APPLICATIONS

SAP SE, Walldorf (DE)

1. A method of testing a web application, comprising:
receiving, by a computer, a data file including recorded data of one or more gesture events performed by a user and recorded
and replayed using one or more web elements on a test web page;

loading, by the computer, a test case with the recorded data;
replaying, by the computer, the one or more recorded gesture events in the test case and executing the web application to
generate test results; and

automatically verifying the test results by serializing states of the test case into strings and comparing the strings, wherein
serializing the states of the test case comprises concatenating Hypertext Markup Language (HTML) Canvas application programming
interface (API) commands into the strings.

US Pat. No. 9,397,930

NETWORK TRAFFIC ROUTING OPTIMIZATION

SAP SE, Walldorf (DE)

1. A computer-implemented method comprising:
calculating a direct connection cost for network traffic between two points in a network, the network including one or more
nodes of an accelerated application delivery (AccAD) network;

calculating an AccAD connection cost for the network traffic between the two points in the network using at least one node
of the AccAD network;

comparing the calculated direct connection cost and the AccAD connection cost; and
determining whether the direct connection cost is greater than the sum of the AccAD connection cost and a minimum cost threshold
value, wherein the minimum cost threshold value is added to the AccAD connection cost to generate a plurality of virtual neighborhoods
of AccAD network nodes and to restrict acceleration within the AccAD network to between AccAD network nodes communicating
across virtual neighborhood boundaries.

US Pat. No. 9,336,245

SYSTEMS AND METHODS PROVIDING MASTER DATA MANAGEMENT STATISTICS

SAP SE, Walldorf (DE)

1. A computer-implemented method, comprising:
receiving, over a period of time, a plurality of records from a plurality of sources;
as the records are received during the period of time, matching at least some records from different sources with each other
to create a best record of the at least some records;

determining, by computer processor of a master data management statistics platform, a statistics window within the period
of time;

calculating at least one master data management statistics value based on the master data management that was performed during
the statistics window; and

displaying a dashboard display associated with the calculated master data management statistics value, the dashboard display
including a consume information area indicating a number of best records retrieved by other applications.

US Pat. No. 9,250,793

INTERFACE MANAGEMENT SYSTEMS AND METHODS

SAP SE, Walldorf (DE)

1. A computer-implemented method comprising:
causing display, using one or more processors, of a first user interface having a plurality of fields for an application in
a productive mode;

detecting a user selection of a field from the first user interface via a touch-sensitive screen;
activating, in response to detecting the user selected field from the first user interface, a second user interface for the
application in a personalization mode to enable a user to modify at least one of the plurality of fields displayed in the
first user interface, the second user interface comprising a selected field corresponding to the user selected field from
the first user interface, a first set of fields, and a second set of fields, the first set of fields independently configurable
to be associated with an active portion of the second user interface and the second set of fields independently configurable
to be associated with an inactive portion of the second user interface;

causing display, using one or more processors, of the second user interface indicating that the selected field from the second
user interface is associated the active portion of the second user interface or the inactive portion of the second user interface;

receiving a user input, via the touch-sensitive screen, indicating a new position of the selected field within the active
portion of the second user interface if the selected field from the second user interface is associated with the active portion
of the second user interface;

identifying other fields in the active portion of the second user interface affected by the new position of the selected;
and

repositioning the other fields within the active portion of the second user interface based on the new position of the selected
field; and

causing display, using one or more processors, of an updated first user interface for the application in the productive mode,
the updated first user interface includes modifications to the at least one of the plurality of fields in the first user interface
made to the second user interface during the personalization mode.

US Pat. No. 9,213,739

CONSISTENT AGGREGATION IN A DATABASE

SAP SE, Walldorf (DE)

1. A method comprising:
receiving, by a database server from a remote application server, a query associated with a calculation scenario that defines
a data flow model that includes one or more calculation nodes and that includes a pre-defined aggregation property, each calculation
node defining one or more operations to execute on the database server, the database server comprising a column-oriented database;

instantiating, by the database server, the calculation scenario, the instantiating, based on the aggregation property, transforming
at least one non-aggregating operation specified by a calculation node into a aggregating operation based on a root node aggregation
of the calculation scenario;

executing, by the database server, the operations defined by the calculation nodes of the optimized calculation scenario to
result in a responsive data set; and

providing, by the database server to the application server, the data set.

US Pat. No. 9,213,688

SMART DATE SELECTOR

SAP SE, Walldorf (DE)

1. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs comprising instructions,
which when executed by a computer, cause the computer to:
receive a date request from a client application if a date description associated with the data request is not a valid date,
the date request including the date description and one or more attributes;

compare the date description and the one or more attributes to a smart date table;
identify a plurality of dates corresponding to the date description and the one or more attributes, the plurality of dates
identified by:

determining whether a portion of the date description matches at least one of a plurality of entries in the smart date table;
determining whether at least one of the attributes matches at least one of the plurality of entries in the smart date table;
and

provide, to the client application, the plurality of dates in a prioritized order that lists dates corresponding to matching
at least one of the attributes as a priority over any other of the identified dates that do not correspond to matching at
least one of the attributes.

US Pat. No. 9,436,724

MIGRATING DATA IN TABLES IN A DATABASE

SAP SE, Walldorf (DE)

1. A computer-implemented method for migrating data in a database, comprising:
identifying a first update to one or more data entries of a source table;
in response to identifying the first update, determining that a status of a trigger associated with the source table indicates
to update a logging table, and in response:

updating, in a first transaction and based on the first update, (i) the one or more data entries of the source table, and
(ii) one or more data entries of the logging table, and

copying content of the source table to a target table;
identifying a second update to one or more data entries of the source table;
in response to identifying the second update, determining that the status of the trigger associated with the source table
indicates to update the target table, and in response:

updating, in a second transaction and based on the second update, (i) the one or more data entries of the source table and
(ii) one or more data entries of the target table,

updating the content of the target table based on the one or more data entries of the logging table, and
determining that the source table and the target table are in-sync based on the updates to the target table;
identifying a third update to one or more data entries of the source table; and
in response to identifying the third update and based on determining that the source table and the target table are in-sync,
updating, in a third transaction and based on the third update, one or more data entries of the target table,

wherein the first transaction and the second transaction occur in parallel, and copying the content of the source table to
the target table includes excluding one or more data entries from the source table to the target table that are being transferred
during the second transaction.

US Pat. No. 9,344,410

TELECOMMUNICATION METHOD FOR SECURELY EXCHANGING DATA

SAP SE, Wiesbaden (DE)

1. A telecommunication method of securely exchanging unencrypted data between a telecommunications device and a first server
computer system via a digital cellular wireless telecommunications network, wherein the telecommunications device is a battery
powered mobile end user telecommunications device, wherein the method comprises:
encrypting the unencrypted data using a first encryption algorithm into first encrypted data by the telecommunications device;
sending the first encrypted data to a second server computer system via a first network connection of the digital cellular
wireless telecommunications network by the telecommunications device;

storing the first encrypted data by the second server computer system;
sending an order request to the first server computer system via a second network connection of the digital cellular wireless
telecommunications network by the telecommunications device;

sending a data publishing request to publish the unencrypted data to the second server computer system via the first network
connection by the telecommunications device;

generating a cryptographic key pair by the second server computer system in response to the data publishing request, wherein
the cryptographic key pair comprises a public key and a private key;

sending the first encrypted data, the public key, and the private key to the telecommunications device in response to the
data publishing request via the first network connection by the second server computer system;

decrypting the first encrypted data into the unencrypted data by the telecommunications device;
encrypting the unencrypted data into second encrypted data using the public key by the telecommunications device;
sending the second encrypted data to the second server computer system via the first network connection by the telecommunications
device;

generating a web service for providing the second encrypted data via an URL by the second server computer system;
sending the URL to the telecommunications device via the first network connection by the second server computer system;
sending the URL and the private key to the first server computer system via the second network connection by the telecommunications
device;

requesting the second encrypted data from the second server computer system by the first server computer system using a wired
network connection to access the web service at the URL;

sending the second encrypted data to the first server computer system by the second server computer system using the wired
network connection in response to the request of the second encrypted data by the second server computer system;

decrypting the second encrypted data by the first server computer system into the unencrypted data using the private key;
and

combining the order request with the unencrypted data by the first server computer system.

US Pat. No. 9,275,414

MASS DECISION MODE IN A MOBILE APPLICATION

SAP SE, Walldorf (DE)

1. A device comprising:
one or more processors; and
a non-transitory machine-readable storage medium having instructions embodied thereon, the instructions executable by one
or more processors to perform operations comprising:

receiving a plurality of objects with an initial status to be presented to a user via a mass decision mode graphical user
interface (GUI) of a client application;

generating the mass decision mode GUI, the mass decision mode GUI including a description of the respective objects of the
plurality of objects and a mass decision option, the mass decision option configured to execute a first action on a first
portion of the plurality of objects and to execute a second action on a remainder portion of the plurality of objects upon
being selected, the first action being distinct from the second action, execution of the second action and the first action
causing a change in a status of the plurality of objects, the first action and the second action selected from the group consisting
of approve a portion of the objects, accept the portion of the objects, confirm the portion of the objects, mark the portion
of the objects as read, address message to the portion of the objects, carbon copy or blind copy the portion of the objects,
and purchase the portion of the objects;

assigning, upon receiving a selection of an object of the first portion of the plurality of objects, the first action to the
object, the object comprising the first portion of the plurality of objects; and

in response to receiving a selection of the mass decision option, performing the first action on the first portion of the
plurality of objects and the second action on the remainder portion of the plurality of objects.

US Pat. No. 9,244,988

DYNAMIC RELEVANT REPORTING

SAP SE, Walldorf (DE)

1. A method for providing dynamic relevant reporting for transactions in an online transaction processing system, the method
comprising:
identifying a business object type of a transaction in the online transaction processing system;
mapping the business object type to a data object attribute;
determining which queries in an online analytical processing system include the data object attribute as an attribute of the
respective query's metadata, wherein the queries in the metadata of the online analytical processing system are parsed to
identify the queries which include the identified data object attribute as an attribute;

running at least one new query in the online analytical processing system with the data object attribute as a filter value,
wherein the at least one new query corresponds to at least one of the queries determined to include the data object attribute;
and

displaying a generated report for the transaction from the at least one new query.

US Pat. No. 9,069,820

DATA MANAGEMENT AND PROCESSING SYSTEM FOR LARGE ENTERPRISE MODEL AND METHOD THEREFOR

SAP SE, Walldorf (DE)

1. A computer system for performing statistical modeling using transactional data from retail sales, comprising:
a data organizer coupled for receiving a primary set of transactional data from retail sales, wherein the data organizer parses
the primary set of transactional data into predefined sets of data components according to processing requirements of a plurality
of statistical models;

a plurality of data sources each including a memory device or mass storage device and coupled to an output of the data organizer,
wherein each of the plurality of data sources store at least one of the predefined sets of data components from the data organizer;

a plurality of data processing systems each including a respective processor and executing at least one of the plurality of
statistical models; and

a plurality of communication channels respectively coupled between the plurality of data sources and the plurality of data
processing systems for routing the predefined set of data components to the data processing system which executes a corresponding
one of the plurality of statistical models, wherein each of the predefined sets of data components includes only data which
is used by the corresponding one of the plurality of statistical models.

US Pat. No. 9,262,763

PROVIDING ATTACHMENT-BASED DATA INPUT AND OUTPUT

SAP SE, Walldorf (DE)

1. An article comprising a non-transitory machine-readable storage medium storing instructions for interactive, attachment-based
data management, the instructions operable to cause one or more computers to:
receive a request from a logically remote client via a network interface, the request indicating a data file and a business
object associated with a business application, the business object comprising at least one object attribute, the business
object separate and distinct from the data file;

update the business object with a message in a format associated with the business application based on the data file, the
message referencing a logical location of the data file;

map at least a portion of the data file to at least one keyword associated with the business object;
identify, based on the mapped portion of the data file, a handler object communicably coupled to an integration middleware
logically situated between the business application and a remote repository;

store the data file in the remote repository; and
update a dependent object associated with the business object with a logical location of the data file in the remote repository.

US Pat. No. 9,280,439

USAGE ANALYSIS OF PRODUCTIVE ENVIRONMENT TO ESTABLISH NEW DATA SOURCE FOR PROCESS OPTIMIZATION AND PROJECT PLANNING

SAP SE, Walldorf (DE)

1. A method comprising:
linking to a compiler to obtain information on a program from the compiler, the program having one or more procedures, as
the program is being loaded into memory for compiling by the compiler;

determining the one or more procedures of the program using the information obtained about the program as the program is being
loaded into memory for compiling by the compiler, the information including a program container comprising subroutine information;

maintaining a count for each of the one or more determined procedures, the maintaining of the count comprising increasing
the count for a particular procedure each instance the particular procedure is executed by the compiler;

storing the determined one or more procedures and the count for each of the one or more determined procedures in a buffer
as log data;

after a first predetermined time period, storing the log data from the first predetermined time period, including information
regarding each and every execution of the each of the one or more determined procedures, as a first time slice in a defined
database table;

analyzing log data pertaining to the one or more determined procedures from a plurality of different time slices, including
the first time slice, in the defined database table;

enriching the log data with application server specific data;
performing data comparison using the log data; and
presenting results of the data comparison in a graphical user interface, the graphical user interface being sortable to identify
usage ranking of the procedures or features.

US Pat. No. 9,177,035

REPLICATING DATA TO A DATABASE

SAP SE, Walldorf (DE)

1. A method performed with a computing system for replicating data to a database, the method comprising:
determining a change to at least one database value in a database table of a database on a source repository;
updating, based on the change to the at least one database value, a snapshot value associated with the change to the at least
one database value stored in a log table, the log table comprising the database value, a database key associated with the
database value, and the snapshot value associated with the change to the at least one database value;

incrementing, based on the update to the snapshot value, a commit value associated with the snapshot value stored in a commit
table, the commit table comprising a plurality of commit values associated with a plurality of corresponding snapshot values;

initiating replication of the database from the source repository to a target repository;
determining, subsequent to initiating replication, a maximum commit value of the plurality of commit values; and
replicating the database value in the database table from the source repository to the target repository based on the commit
value associated with the snapshot value being less than or equal to the maximum commit value.

US Pat. No. 9,305,168

MODULAR STATIC APPLICATION SECURITY TESTING

SAP SE, Walldorf (DE)

1. A computer-implemented method for analyzing source code of an application, the method being executed using one or more
processors and comprising:
determining, for at least one procedure invoked by the source code, a procedure specification specifying one or more conditions
under which one or more parameters of the procedure are exploitable according to a parameter security specification, the one
or more parameters comprising a data sink having a data source as a predecessor in a control flow graph;

performing static application security testing on the source code by using the procedure specification on reaching an invocation
of the procedure in the source code, comprising:

comparing one or more invoking parameters of the invocation of the procedure to the conditions of the procedure specification;
and

determining whether, in at least one context of the application, the invocation of a first condition associated to the data
sink indicating that the data sink is exploitable is simultaneously satisfied with a second condition associated to the data
source indicating that the data source is exploitable based on an analysis of an exclusion criteria.

US Pat. No. 9,239,664

METHOD AND SYSTEM FOR USING A TABLET DEVICE TO PROVIDE CONTEXTUAL INPUT TO A COMPUTING DEVICE

SAP SE, Walldorf (DE)

1. A method of using a tablet device to provide contextual input to a computing device, the method comprising:
sending from the tablet device to the computing device a first screen input that identifies a first location on a display
screen of the computing device;

receiving at the tablet device from the computing device values that identify one or more options for a first display item
on the display screen, the first display item being near the first location on the display screen;

displaying at a touchscreen of the tablet device a context menu that includes selectable areas for one or more menu items
and a context selector, the one or more menu items corresponding to the one or more options for the first display item, and
the context selector operating to indicate a selection from the context menu;

if the context selector is selected on the touchscreen of the tablet device, accessing at the tablet device a selection of
a first menu item from the content menu on the touchscreen, the first menu item corresponding to a first option from the one
or more options for the first display item, and sending from the tablet device to the computing device values for the first
option for the first display item; and

if the context selector is not selected on the touchscreen of the tablet device, sending from the tablet device to the computing
device values that change a size or location of at least one display item on the display screen of the computing device.

US Pat. No. 9,229,609

NAVIGABLE VISUALIZATION OF A HIERARCHICAL DATA STRUCTURE

SAP SE, Walldorf (DE)

1. A method comprising:
using at least one processor coupled to a memory, causing presentation of a first visualization of a hierarchical data structure,
the first visualization comprising:

a first stacked bar chart comprising a first plurality of segments, the first stacked bar chart representing a first level
in the hierarchical data structure, a selected segment from the first plurality of segments representing a selected category
from a first set of categories in the first level of the hierarchical data structure, respective areas occupied by segments
from the first plurality of segments in the first stacked bar chart reflecting quantitative contributions of respective categories
from the first set of categories to a numerical aspect assigned to the entire set of categories in the first level in the
hierarchical data structure, the selected category comprising a second set of categories in a second level of the hierarchical
data structure, and

a first set of bars, each bar in the first set of bars corresponding to a respective category from the second set of categories,
the first set of bars representing a quantitative breakdown of the second set of categories based on respective numerical
values associated with categories from the second set of categories;

responsive to a first request associated with the selected segment, causing presentation of a second visualization of the
hierarchical data structure, the second visualization comprising:

a second stacked bar chart, the second stacked bar chart representing a second level in the hierarchical data structure and
comprising a second plurality of segments, segments from the second plurality of segments representing categories from the
second set of categories, the second stacked bar chart replacing the first stacked bar chart, and

a second set of bars, each bar in the second set of bars corresponding to a respective category from the third set of categories,
the second set of bars representing a quantitative breakdown of the third set of categories based on respective numerical
values associated with categories from the third set of categories, the second set of bars replacing the first set of bars;
and

responsive to a second request, causing presentation of a third visualization of the hierarchical data structure, the third
visualization comprising the first stacked bar chart in addition to the second stacked bar chart and the second set of bars.

US Pat. No. 9,280,575

INDEXING HIERARCHICAL DATA

SAP SE, Walldorf (DE)

9. A computer-implemented method comprising:
generating an encoding for each of a hierarchy of nodes, each of the nodes associated with one or more attributes, and the
encoding for each node including a first pointer and a second pointer;

generating an order tree comprising a hierarchy of entries that is different from the hierarchy of nodes and the encoding,
wherein each pointer of the encoding points to a respective one of the entries, and wherein the encoding and the order tree
indicate a position of each node in the hierarchy of nodes; and

using the order tree to support queries on the hierarchy of the nodes;
the method further comprising:
determining an order relation between a first entry of the order tree and a second entry of the order tree based on a structure
of the order tree; and

wherein determining the order relation comprises:
determining a number p1 where each digit of p1 corresponds to a position of each entry on a first path from the first entry to a root entry of the order tree, and a least
significant digit of p1 corresponds to a position of the first entry;

determining a number p2 where each digit of p2 corresponds to a position of each entry on a second path from the second entry to the root entry of the order tree, and a
least significant digit of p2 corresponds to a position of the second entry; and

comparing p1 and p2.

US Pat. No. 9,355,037

POPULATING ITEMS IN WORKLISTS USING EXISTING CACHE

SAP SE, Walldorf (DE)

1. A computer-implemented method for providing a worklist of a user with at least one item, the method being executed using
one or more processors and comprising:
determining, by the one or more processors, one or more timestamps, each timestamp indicating a time, at which an item cache
was synchronized for a respective provider of one or more providers; transmitting, by the one or more processors, one or more
requests to one or more respective providers of the one or more providers, the one or more requests each comprising the one
or more timestamps and indicating a user;

receiving, by the one or more processors, one or more responses, each response comprising a sub-set of items, each item in
the sub-set of items being included in the sub-set of items based on the one or more timestamps;

populating, by the one or more processors, the worklist of the user with one or more items in the sub-set of items reusing
a previously synchronized worklist database cache; and

providing, by the one or more processors, the worklist for display to the user on a display.

US Pat. No. 9,354,860

OPTIMIZING SOFTWARE CHANGE PROCESSES USING REAL-TIME ANALYSIS AND RULE-BASED HINTING

SAP SE, Walldorf (DE)

1. A computer implemented method, comprising:
obtaining, from a host computer system on which a software change process is to be executed, a set of software change process
parameters characterizing the particular software change process, wherein the software change process includes multiple steps
to be carried out to effect the software change;

based on the obtained set of software change process parameters, selecting hot spot information corresponding to the obtained
set of software change process parameters, wherein the hot spot information is based on a statistical analysis of previous
software change processes and wherein the hot spot information identifies one or more steps of the multiple steps of the software
change process during which problems have occurred in the previous software change processes;

providing the hot spot information to the host computer system for use in the software change process; and
obtaining, from the host computer system, status information relating to the software change process at multiple times during
the execution of the software change process, wherein a level of detail of the status information is increased for steps of
the software change process identified in the hot spot information.

US Pat. No. 9,298,419

MERGING SORTED DATA ARRAYS BASED ON VECTOR MINIMUM, MAXIMUM, AND PERMUTE INSTRUCTIONS

SAP SE, Walldorf (DE)

1. A method comprising:
loading a first sorted set of data elements into a first input hardware vector register from a first input stream, wherein
the first sorted set of data elements is sorted in ascending order;

loading a second sorted set of data elements into a second input hardware vector register from a second input stream, wherein
the second sorted set of data elements is sorted in ascending order;

merging the first sorted set of data elements and the second sorted set of data elements to generate a third sorted set of
data elements, wherein the merging comprises a plurality of stages, and wherein each stage of the plurality of stages comprises:

executing a single instruction, multiple data (SIMD) vector minimum instruction on the first input hardware vector register
and the second input hardware vector register, wherein the SIMD vector minimum instruction compares values of elements in
the first input hardware vector register to corresponding values of elements in the second input hardware vector register
and outputs a smaller of the values compared by the SIMD vector minimum instruction;

executing a SIMD vector maximum instruction on the first input hardware vector register and the second input hardware vector
register, wherein the SIMD vector maximum instruction compares values of elements in the first input hardware vector register
to corresponding values of elements in the second input hardware vector register and outputs a larger of the values compared
by the SIMD vector maximum instruction; and

executing a SIMD permute instruction on the first hardware vector register storing the smaller of the values compared by the
SIMD vector minimum instruction and the second hardware vector register storing the larger of the values compared by the SIMD
vector maximum instruction, wherein the third sorted set of data elements is sorted in ascending order;

placing a set of smaller data elements of the third sorted set of data elements in a first output hardware vector register;
and

placing contents of the first output hardware vector register into an output stream.

US Pat. No. 9,286,578

DETERMINATION OF A MOST SUITABLE ADDRESS FOR A MASTER DATA OBJECT INSTANCE

SAP SE, Walldorf (DE)

1. A computer-implemented method comprising:
storing, by a computer, a master data object instance, wherein the master data object instance comprises of a plurality of
address instances each with one or more address data;

generating, by the computer, a particular address snapshot instance for a respective particular address instance of the plurality
of address instances, wherein the particular address snapshot instance is associated with the respective particular address
instance through a respective unique address snapshot reference value, and the particular address snapshot instance is a data
structure that comprises a root node with the respective unique address snapshot reference value, a node hosting address data
of the respective particular address instance from which the particular address snapshot instance was generated, a validity
period of a source object for which the particular address snapshot instance was generated, and a display name node containing
a semantic name for an entity associated with the particular address snapshot instance that is filled in all address snapshot
instances;

saving, by the computer, the particular address snapshot instance in a data storage following association with address data
of the respective particular address instance;

rendering, by the computer, the particular address snapshot instance as immutable;
determining, by the computer, an address determination sequence;
analyzing, by the computer, the address determination sequence to the master data object instance to identify one or more
address instances including the respective particular address instance;

identifying, by the computer, the respective particular address instance as a most suitable address instance from among the
one or more address instances based on criteria of the address determination sequence;

returning, by the computer, the unique address snapshot reference value from the most suitable address instance; and
identifying, by the computer, the particular address snapshot instance from the returned unique address snapshot reference;
retrieving, by the computer, the address data from the particular address snapshot instance using the unique address snapshot
reference value.

US Pat. No. 9,280,323

DISPLAY OF SOURCE CODE SEMANTIC LAYERS

SAP SE, Walldorf (DE)

1. A method of displaying semantic layers of source code, the method comprising:
receiving a user selection of a first portion of the source code, the first portion displayed in a first display area, the
first portion corresponding to a first semantic layer of the source code;

receiving a user command referring to a second portion of the source code related to the first portion, the second portion
corresponding to a second semantic layer of the source code; and

displaying, using at least one processor of a machine, in response to the user command, a second display area for the second
portion of the source code, the second display area surrounding the first display area and at least partially covering the
first display area, in a graphical arrangement that allows the user to view and edit the first and second portions of the
source code simultaneously, to indicate a difference in semantic layers between the first portion and the second portion,
the second display area possessing a translucent quality to allow at least a portion of the first display area covered by
the second display area to be visible.

US Pat. No. 9,164,758

METHOD FOR SETTING CHANGE OPTIONS OF SOFTWARE SYSTEMS OF A SOFTWARE SYSTEM LANDSCAPE AND COMPUTER SYSTEM WITH SOFTWARE SYSTEMS HAVING CHANGE OPTIONS

SAP SE, Walldorf (DE)

1. A method of setting change options of software systems in a software system landscape, at least one software system comprising
code and data, the software systems being interconnected by logical transport paths for transport of software services therebetween,
the software services defining changes to at least one of the code and the data of the at least one software system, each
software system having a set of change options that define changeability restrictions pertinent to the respective system,
the set of change options allowing or inhibiting changes of the code and the data of the respective system, the method comprising:
reading, by a single central server, the set of change options from each of the systems;
storing the change options from each of the systems in the single central server;
writing, from the single central server, an updated set of change options to each of the respective systems through an interface
in each of the respective systems from outside of each of the respective systems;

communicating with the interfaces of the systems through an interface on the central server;
periodically updating the single central server, from a respective one of the systems, with any local changes made to the
respective one of the systems;

selecting a group of the systems based on software service parameter data;
accessing the group of selected systems from the single central server via the interfaces of the group of selected systems
and centrally managing, from the single central server, the set of change options in each system of the group;

holding a copy of the sets of change options of all of the selected systems in the single central server;
implementing, by at least one change option in one of the set of change options for each of the systems a hierarchy of users
and/or operators, the at least one change option defining which particular users and/or operators or an authorization level
of users and/or operators allowed to affect certain changes or types of changes, either by approving import of one of the
software services or making the changes to the system directly; and

defining a customization, adaptation, program or data update by one of the software services for the selected systems.

US Pat. No. 9,286,336

UNIFIED ARCHITECTURE FOR HYBRID DATABASE STORAGE USING FRAGMENTS

SAP SE, Walldorf (DE)

1. A computer program product comprising a non-transitory machine-readable medium storing instructions that, when executed
by at least one programmable processor, cause the at least one programmable processor to perform operations comprising:
storing, in a plurality of main part fragments retained in on-disk storage, a plurality of data records that comprise a data
set, each fragment comprising a number of data records that is equal to or less than a defined maximum fragment size;

compressing each fragment of the plurality of fragments using a compression that is optimized for each fragment;
reading at least one of the plurality of fragments into main system memory from the on-disk storage; and
performing an operation on the at least one of the plurality of fragments while the at least one of the plurality of fragments
is in the main system memory;

executing a merge of an existing delta part with the data set, the merge comprising:
copying one or more uncommitted rows from the existing delta part to a new delta part;
creating a temporary, in-memory data structure containing data from an existing main fragment and committed rows from the
existing delta;

re-sorting the temporary, in-memory data structure to allow achievement of maximal compression of the data records; and
storing data from the re-sorted, temporary, in-memory data structure to a new main fragment;
storing cleanup pointers at a start of the merge, the cleanup pointers indicating start and stop locations for the temporary
data structure.

US Pat. No. 9,189,520

METHODS AND SYSTEMS FOR ONE DIMENSIONAL HETEROGENEOUS HISTOGRAMS

SAP SE, Walldorf (DE)

1. A computer-implemented method of optimizing execution of a query that accesses data by a computer, the method comprising:
generating, by a query server having a processor, cardinality estimates for at least one query execution plan to execute a
query using a histogram, the cardinality estimation being constrained by a q-error that is a factor by which the estimate
deviates, at most, from a true value of the cardinality and a threshold value which the cardinality does not exceed;

using the generated cardinality estimation that adheres to the q-error and threshold value constraints to determine, by the
processor of the query server, an optimal query plan for executing the query; and

producing an output of the optimal query plan.

US Pat. No. 9,171,039

QUERY LANGUAGE BASED ON BUSINESS OBJECT MODEL

SAP SE, Walldorf (DE)

1. A non-transitory computer-readable storage medium containing instructions to configure a processor to perform operations
comprising:
receiving a first query;
generating, based on a model including metadata representing a data structure, a second query specific to the data structure
stored in a database, the second query being a single direct query to the database and defining all nodes and associations,
including a root node, nodes dependent on the root node, and associations between all nodes, needed to traverse at least one
business object and nodes stored in the database to generate a result set without buffering of intermediate results; and

sending the second query to the database; and
executing the second query page by page basis at runtime based on a page being displayed on a user interface used for executing
the second query and using data transported from the database and associated only with the page being displayed on the user
interface, the data associated with the displayed page is searched in and obtained from data stored in the database, and by
searching an unrestricted amount of data at the database at constant seek time as a prerequisite of paging.

US Pat. No. 9,098,515

DATA DESTRUCTION MECHANISMS

SAP SE, Walldorf (DE)

1. A non-transitory computer-readable medium containing instructions to configure a processor to perform operations comprising:
receiving, at a data destruct manager, a request, from a user interface, to destroy a first data object;
determining, by the data destruct manager, whether other data objects depend from the first data object;
determining, by the data destruct manager when the other data objects depend from the first data object, a structure for the
first data object and the other data objects by at least traversing the structure from the first data object to at least one
leaf node of the other data objects of the structure and determining a data retention time for the other data objects including
the at least one leaf node;

initiating, by the data destruct manager, calls, based on the determined structure, to the other data objects to destroy the
other data objects before the first data object, when at least one rule and the data retention times of the other data objects
including the at least one leaf node indicate destruction is allowed;

initiating, by the data destruct manager when the other data objects have been destroyed, a call to the first data object
to destroy the first data object, when the at least one rule and the data retention times of the other data objects including
the at least one leaf node indicate destruction is allowed; and

inhibiting, by the data destruct manager, the destruction of at least one of the other data objects and the first data object,
when the at least one rule and the data retention times of the at least one other data objects indicate destruction is not
allowed, wherein the at least one rule comprises at least one of a legal requirement regarding retention or a company policy
regarding retention.

US Pat. No. 9,270,617

LOAD CONTROLLER FRAMEWORK

SAP SE, Walldorf (DE)

1. A computer-implemented method executed by one or more processors, the method performed at a load controller of a cloud-based
network system, the method comprising:
receiving a first request for a network service from a client, wherein the load controller is separate from the network service;
evaluating a load condition associated with the network service, the load condition indicating an availability of the network
service to receive requests, based at least in part on a determination of whether a flow control indication is received by
the load controller from the network service indicating that the network service is currently unavailable to receive the requests
due to load;

returning a unique token associated with the first request to the client in response to the load condition indicating that
the network service is not available to receive the requests, wherein the unique token is associated with a unique identifier
and wherein an entry to a token database at the load controller associated with the unique token is entered, the entry at
the token database including a set of statistics associated with the token including a number of times the unique token has
been submitted to the load controller;

after returning the unique token to the client, receiving a second request for the network service from the client, the second
request including at least a portion of the first request and the unique token;

re-evaluating the load condition associated with the network service in response to receiving the second request;
prioritizing the second request based on the unique token in response to the load condition indicating that the network service
is available to receive the requests, wherein prioritizing the second request includes placing the second request into a queue
with a plurality of other requests; and

in response to receiving a flow control indication after prioritizing the second request and prior to fulfilling the second
request, removing at least the second request from the queue and returning the unique token to the client.

US Pat. No. 9,323,510

ALLOCATING OPTIMIZED RESOURCES FOR COMPONENTS BASED ON DERIVED COMPONENT PROFILES

SAP SE, Walldorf (DE)

1. A method performed by a component container in a runtime environment, comprising:
identifying, at a second component container contained in a first component container, a first component container profile
associated with the first component container, the first component container profile including a set of attributes, wherein
the first component container is a runtime system;

translating at least a portion of the first component container profile to a second component container profile associated
with the second component container, wherein translating includes, prior to initializing a component contained in the second
component container:

identifying, from the first component container profile, a first set of attributes relevant to the second component container,
wherein identifying the first set of attributes relevant to the second component container includes parsing the set of attributes
in the first component container profile to identify a usage scenario of the first component container, wherein the usage
scenario is either a productive system or a development system;

filtering out, from the first component container profile, a second set of attributes irrelevant to the second component container;
translating the first set of attributes to a third set of attributes based on a translation rule set, the third set of attributes
interpretable by the second component container, wherein translating the first set of attributes to the third set of attributes
is based on a translation rule set corresponding to the identified usage scenario; and

compiling the translated third set of attributes into the second component container profile for use by the second component
container; and

initializing the component contained in the second component container based, at least in part, on the compiled second component
container profile, and wherein initializing the component includes allocating more system resources to the component when
the usage scenario is the productive system than when the usage scenario is the development system.

US Pat. No. 9,285,972

SIZE ADJUSTMENT CONTROL FOR USER INTERFACE ELEMENTS

SAP SE, Walldorf (DE)

1. A computer program product comprising a non-transitory computer-readable storage medium storing one or more programs, the
one or more programs comprising instructions that, when executed by at least one programmable processor, cause the at least
one programmable processor to perform operations comprising:
detecting a selection, occurring via a first user input, of a user interface element within a graphical user interface, the
user interface element comprising a size of the user interface element being linked to a value displayed in the graphical
user interface, the value representing a quantity other than the size or geometric properties of the user interface element;

displaying, in the graphical user interface, a knob element associated with the user interface element;
receiving a rotational motion second user input associated with the knob element; translating the knob element around the
selected user interface element over a unit of rotational distance at an angular speed, the translating occurring in response
to the received rotational motion second user input; and

changing the size of the selected user interface element by a given fraction or percentage per unit of rotational distance,
wherein the given fraction or percentage is proportional to both the angular speed and the current size of the selected user
interface element.

US Pat. No. 9,098,806

PERSONALIZED CONTROLS FOR A SEMANTIC SYSTEM UTILIZING A CENTRAL AND A LOCAL SEMANTIC NETWORK

SAP SE, Walldorf (DE) in...

1. A method for providing personalized controls for a semantic system, the method comprising:
setting up, by a computer processor, an initial configuration for a local semantic network;
defining, by the processor, business terms using semantic objects and semantic relations in the local semantic network, wherein
the business terms are adapted to users of the local semantic network;

providing, by the processor, a user interface for accessing the local semantic network;
receiving, by the processor, a request for business data, the request including business terms;
assessing, by the processor, a context of the business terms within the request using the local semantic network;
transmitting, by the processor, the business terms to a central semantic network; wherein the central semantic network includes
global business terminology classified for sub-groups of users;

responsive to the transmitting, receiving, by the processor, an assessment of the context of the business terms by the central
semantic network wherein the assessment by the central semantic network is based on a measurement by the central semantic
network of a frequency of usage for the business terms by a user group to which a user of the local semantic network belongs;

updating, by the processor, the semantic objects and relations for the business terms based on the assessment by each of the
local and central semantic networks of the context and based on an additional assessment by a learnable contextual network,
the learnable contextual network extending the semantic relations for the business terms based on cyclical updates of perceptrons
of a neural network; and

updating, by the processor, the personalized controls of the user interface based on the updated semantic objects and relations.

US Pat. No. 9,354,871

MULTI-STAGE PUSH NOTIFICATIONS FOR SOFTWARE LOGISTIC TOOLS

SAP SE, Walldorf (DE)

1. A computer implemented method to report real-time incidents associated with a plurality of software logistic tools, the
method comprising:
upon occurrence of an incident associated with a software logistic tool from the plurality of software logistic tools, receiving
at a host agent a notification for the incident, wherein the host agent is associated with a corresponding host where the
software logistic tool is running;

pushing the notification for the incident to a customer operation cockpit operating at a customer system landscape, wherein
the notification for the incident is pushed by the host agent via a first push channel for communication from the software
logistic tool to the customer operation cockpit;

receiving the notification for the incident at the customer operation cockpit for analysis;
upon receiving the notification for the incident at the customer operation cockpit, pushing the notification to a vendor support
console, wherein the notification for the incident is pushed by the customer operation cockpit via a second push channel for
communication from the customer operation cockpit to the vendor support console; and

upon receiving the notification for the incident at the customer operation cockpit, pushing the notification to a mobile push
notification server operating at a mobile infrastructure of the customer system landscape, wherein the notification for the
incident pushed via a fourth push channel for communication from the customer operation cockpit to the mobile notification
server.

US Pat. No. 9,286,371

PRESENTING A MULTIDIMENSIONAL DECISION TABLE

SAP SE, Walldorf (DE)

1. A computer-implemented method comprising:
displaying, by a computing system, a first decision table that includes:
(i) multiple rows,
(ii) a first quantity of dimension columns, and
(iii) a result column,
wherein:
each of the multiple rows of the first decision table displays a value in only one of the dimension columns of the first decision
table,

the first decision table displays results within a subset of the multiple rows of the result column, and
each of the results specifies an outcome of combining a value from each of the dimension columns of the first decision table;
receiving, by the computing system, an indication that a user supplied input to generate a reduced-size representation of
the first decision table;

identifying, by the computing system, a set of values that are repeatedly displayed within a first dimension column from the
first quantity of dimension columns of the first decision table, wherein the set of values are associated with a value in
another of the dimension columns in the first decision table; and

displaying, by the computing system, the reduced size representation of the first decision table by displaying a second decision
table that includes:

(i) a plurality of rows that is less than a quantity of the multiple rows of the first decision table,
(ii) a second quantity of dimension columns that includes the dimension columns of the first decision table except for the
first dimension column, and

(iii) a quantity of value columns that is the same as a quantity of values in the set of values, wherein:
each of the second quantity of dimension columns of the second decision table includes all of the values from the respective
dimension column of the first decision table,

each of the value columns corresponds to a respective one of the values included in the set of values, and
each of the value columns displays, within its rows, the results that are from the single result column of the first decision
table and that are specified by the corresponding respective one of the values included in the set of values, wherein all
of the results from the result column are displayed in the value columns of the second decision table.

US Pat. No. 9,064,220

LINEAR VISUALIZATION FOR OVERVIEW, STATUS DISPLAY, AND NAVIGATION ALONG BUSINESS SCENARIO INSTANCES

SAP SE, Walldorf (DE)

1. A computer program product comprising a non-transitory machine-readable medium storing instructions that, when executed
by at least one programmable processor, cause the at least one programmable processor to perform operations comprising:
linking transactional data associated with a specific instance of a first business scenario to a scenario model representing
the first business process, the first business scenario comprising a plurality of first business process features, the plurality
of first business process features comprising an intersecting business process requiring prerequisite action by at least one
prerequisite business process feature that is part of a second business scenario, the scenario model comprising a linearized
representation of the first business scenario in which the plurality of first business process features, the intersecting
business process, and the at least one prerequisite business process feature are arranged in a linear sequence;

displaying, concurrently in a user interface, a scenario navigation pane and a work pane, the scenario navigation pane comprising
a plurality of first user interface elements arranged in a linear progression to represent the plurality of first business
process features in the linear sequence, the work pane comprising a plurality of second user interface elements corresponding
to functionality provided by one or more feature modules of a business software architecture related to a currently selected
one of the plurality of first business process features; and

changing the scenario navigation pane to expand the linear progression at a selected one of the plurality of first user interface
elements to display at least one additional user interface element corresponding to at least one process step involved in
completion of the one of the plurality of first business process features corresponding to the selected one of the plurality
of first user interface elements.

US Pat. No. 9,465,835

COLUMNWISE SPATIAL AGGREGATION

SAP SE, Walldorf (DE)

1. A method for processing a spatial aggregation query of a database comprising:
receiving first data comprising (i) a maximum bounded rectangle for point data responsive to the query, (ii) one or more grid
partitions of the maximum bounded rectangle, and (iii) one or more key figures, the point data including geographical information
about a plurality of data points, the maximum bounded rectangle defining a geographical area which includes at least a portion
of the plurality of data points, the one or more grid partitions defining areas within the maximum bounded rectangle that
can be at least partially aggregated, and the one or more key figures defining information about the plurality of points,
the information comprising values unrelated to the geographical information;

computing, for each grid partition, a quantity of grid points responsive to the query;
computing, for each grid partition, a center of gravity of the grid points, the center of gravity computed by weighting the
grid points based on at least one of the one or more key figures; and

providing, for at least one partition, second data characterizing the corresponding computed quantity of points and the center
of gravity.

US Pat. No. 9,286,372

CONTENT MANAGEMENT WITH RDBMS

SAP SE, Walldorf (DE)

1. A method of using a relational database as an underlying structure of a cloud file storage, the method comprising:
receiving a first file comprising first content and first non-content information;
storing, via a processor, the first non-content information associated with the first file in a a first relational database
table;

in a case that the first content is binary content, storing the first content in a second relational database table;
in a case that the first content is non-binary content, storing the first content in a third relational database table; and
in a case that the first content is non-binary content and is of type VARCHAR, (i) segmenting the first content into multiple
strings with each string of the multiple strings being stored in a respective row of the third relational database table and
(ii) assigning an assembly order identification to each string of the multiple strings so that the multiple strings are ordered
based on their respective assembly order identification.

US Pat. No. 9,280,489

WAIT-FREE PARALLEL DATA CACHE

SAP SE, Walldorf (DE)

1. A method comprising:
selecting, by one or more central processing units (CPUs), one or more pages from a least-recently-used (LRU) queue of a data
cache;

marking, by the one or more CPUs, the one or more selected pages with an expiration flag;
loading, by the one or more CPUs, a list of used pages from one or more LRU usage queues, the one or more LRU usage queues
being associated with one of the one or more CPUs and being different from the LRU queue, the LRU queue being associated with
each of the one or more CPUs; and

for each page in the one or more selected pages,
determining, by the one or more CPUs, whether the page is contained in the list of used pages, and
if the page is contained in the list of used pages, removing, by the one or more CPUs, the expiration flag from the page.

US Pat. No. 9,256,595

CALCULATING TERM SIMILARITY USING A META-MODEL SEMANTIC NETWORK

SAP SE, Walldorf (DE) in...

1. A method comprising:
storing a meta-model semantic network, the meta-model semantic network including a first term and a second term, the first
term being associated with a first model and a first meta-model, the second term being associated with a second model and
a second meta-model, wherein the first model comprises one or more first attributes that characterize the first term, wherein
the second model comprises one or more second attributes that characterize the second term, wherein the first meta-model characterizes
the first model, wherein the second meta-model characterizes the second model, and wherein a link and a link attribute define
a relationship between at least two nodes of the semantic network;

receiving a request to calculate a term similarity value, the term similarity value expressing a correlation between the first
term and the second term;

calculating, using at least one processor, the term similarity value based on a distance between one of the first attributes
of the first model and one of the second attribute of the second model, a distance between an attribute of the first meta-model
and an attribute of the second meta-model, and a distance between an attribute of the first term and an attribute of the second
term; and

modifying one or more of a search query or the meta-model semantic network based on the term similarity value.

US Pat. No. 9,304,002

MOBILITY OBSERVATION

SAP SE, (DE)

1. Computer-readable storage media, having computer-executable instructions stored thereon, that when executed, cause a computer
processor to initiate:
collecting, via an input/output module, locational data for multiple objects over a duration;
grouping, via a control module, the locational data according to a plurality of sliding time intervals of variable length,
the time intervals comprising portions of the duration;

converting, via the control module, the locational data into polygons representing the locational data per time interval per
object by iteratively processing the locational data via a convex hull algorithm, by object, by time length and by start time,
wherein a size or a shape of the polygons represents object movement during a time interval;

storing, via a storage device, the size of the polygons in fields of a three-dimensional data structure, each field of the
data structure corresponding to an object, a start time for the time interval, and a length of the time interval;

determining, via the control module, movement patterns of the objects based on the size or the shape of the polygons; and
providing a user interface arranged to display the movement patterns to a user.

US Pat. No. 9,355,159

SYSTEMS AND METHODS FOR ADAPTIVE DATA VISUALIZATION UTILIZING A QUICK FILTER PATTERN

SAP SE, Walldorf (DE)

1. A computer-implemented method for adaptive data visualization, the method comprising:
accessing business intelligence data stored in a database;
providing on a computing device display an interactive web browser having a filter pane and a result display pane, the filter
pane including at least one of a list of characteristics and a list of key figures;

displaying the accessed business intelligence data in the result display pane;
in response to a user selection, displaying in the filter pane a list of parameters associated with at least one of the list
of characteristics and the list of key figures, the list of characteristics and the list of key figures based on the accessed
business intelligence data displayed in the result display pane;

receiving a first selection by a user from among the list of parameters;
configuring functionality of the adaptive filter by selecting predetermined filtering algorithms corresponding to the first
selection;

filtering the accessed business intelligence data with an adaptive filter based on the first selection, triggering the adaptive
filter to filter the accessed business intelligence data;

displaying results of the adaptive filtering in the result display pane, with no change made to the list of parameters in
the list of characteristics and in the list of key figures;

receiving a second selection by a user from among the parameters associated with at least one of the list of characteristics
and the list of key figures;

further configuring the functionality of the adaptive filter by selecting predetermined filtering algorithms corresponding
to the second selection;

adaptively filtering the accessed business intelligence data based on the first selection and the second selection, the second
selection triggering the adaptive filter; and

modifying the displayed results based on the adaptive filtering results of the first and the second selections, with no change
made to the list of parameters in the list of characteristics and in the list of key figures.

US Pat. No. 9,408,072

OPTIMIZING HANDLING OF FOUND ITEMS THROUGH A MOBILE LOST AND FOUND APPLICATION

SAP SE, Walldorf (DE)

1. A method comprising:
tracking, by a user equipment, a plurality of locations of the user equipment, the plurality of locations mapped to a plurality
of time values representative of when the user equipment traversed the plurality of locations;

determining, by the user equipment, a path comprising the plurality of locations of the user equipment, wherein the determining
is based on a range of time values received from a user interface, wherein the range of time values represent an estimated
range of times of when an item was lost;

authenticating, by the user equipment, at least one of the path and the range of time values, wherein the at least one of
path and the range of time values are authenticated when obtained directly from a location processor at the user equipment,
without allowing a change to the at least one of the path and the range of time values by a user of the user equipment;

providing the authenticated at least one of the path and the range of time values to a lost and found server including a database
searchable based on at least the authenticated at least one of the path and the range of time values; and

receiving, at the user equipment, an indication sent by the lost and found server, the indication representative of whether
the database includes one or more lost and found items matching the at least one of the path and the range of time values.

US Pat. No. 9,471,662

HOMOGENEITY EVALUATION OF DATASETS

SAP SE, Walldorf (DE)

1. A computing system comprising:
a database data storage device storing a plurality of sets of values of a database;
a memory storing processor-executable program code; and
a query server including a processor to execute the processor-executable program code in order to cause the computing system
to:

evaluate the homogeneity of a first set of values of the plurality of sets of values by:
receiving an instruction to evaluate homogeneity of a first set of values of the plurality of sets of values;
performing a MIN aggregation operation to determine a first minimum of the first set of values;
performing a MAX aggregation operation to determine a first maximum of the first set of values;
determining whether the first minimum and the first maximum are equal;
if it is determined that the first minimum and the first maximum are equal, returning a value equal to the first minimum and
the first maximum in response to the instruction;

storing the returned value;
evaluate the homogeneity of the first set of values of the plurality of sets of values, wherein the first set of values includes
additional values added to the first set of values since the first minimum and first maximum determinations by:

receiving a second instruction to evaluate homogeneity of the first set of values of the plurality of sets of values, wherein
the first set of values includes additional values added to the first set of values since the first minimum and first maximum
determinations; and

in response to the second instruction, evaluating the homogeneity by:
determining a second minimum of only the values added to the first set of values since the determination of the first minimum,
and

determining a second maximum of only the values added to the first set of values since the determination of the first maximum.

US Pat. No. 9,112,851

INTEGRATING WEB PROTOCOLS WITH APPLICATIONS AND SERVICES

SAP SE, Walldorf (DE)

1. A computer-implemented method performed by one or more processors for integrating a security protocol in an application,
the method comprising:
receiving, by the one or more processors, a web protocol request generated by the application at an interceptor, the interceptor
comprising a processing unit and being configured to read and write the web protocol request;

receiving, by the one or more processors, a selection of an application role that defines a relationship between the application
and protected assets, the selection of the application role comprising one or more validation aspects and a plurality of extended
application components;

based on reading the web protocol request, retrieving, by the one or more processors, configuration data associated with the
web protocol request;

adding, by the one or more processors, the plurality of extended application components using the configuration data; and
executing, by the one or more processors, the web protocol in the application using the application role.

US Pat. No. 9,600,269

DEPLOYMENT OF DATABASE OBJECTS

SAP SE, Walldorf (DE)

1. A computer-implemented method, comprising:
defining at least one file containing a plurality of artifacts for deploying during runtime of an application, each artifact
in the plurality of artifacts including at least one object in the plurality of objects required to be deployed during runtime
of the application;

determining, based on the defining, at least one dependency for at least one artifact in the plurality of artifacts;
generating, based on the determining, an execution order for deployment of the plurality of artifacts; and
deploying the plurality of artifacts in accordance with the generated execution order, the deploying comprising deploying
the plurality of artifacts using a database schema container having at least one synonym linking at least one external schema
object to the at least one object in the plurality of objects using a container-local name;

wherein at least one of the defining, the determining, the generating, and the deploying is performed by at least one processor
of at least one computing system.

US Pat. No. 9,280,444

SYSTEM AND METHOD FOR IDENTIFYING CONTENTION OF SHARED RESOURCES IN A RUNTIME SYSTEM

SAP SE, Walldorf (DE)

1. A computer-implemented method of determining a runtime of a thread of an application, the method comprising:
receiving synchronization events for a first thread of an application executing on a computer system, the synchronization
events including at least a first synchronization event and a second synchronization event for the first thread, each synchronization
event includes a synchronization event timestamp corresponding to a time at which the synchronization event occurred and an
accumulated timestamp corresponding to a time during which a runtime system of the computer system has been executing runtime
system operations that include generating at least one stack trace of the first thread;

calculating a first difference between the synchronization event timestamp of the first synchronization event and the synchronization
event timestamp of the second synchronization event;

calculating a second difference between the accumulated timestamp of the first synchronization event and the accumulated timestamp
of the second synchronization event;

calculating, by at least one processor of a computer system, a runtime of the first thread of the application as a difference
between the first difference and the second difference;

providing a first user interface that displays a synchronization snapshot, the synchronization snapshot including a plurality
of statistics selections that each causes a different type of display of statistics;

in response to a threads-by-identifier selection of the plurality of statistics selections, providing a second user interface
that displays a list of threads including the first thread and corresponding blocking information for each thread in the list,
the corresponding blocking information including an identifier of each thread, a blocked time for each thread, and a block
count for each thread; and

receiving a selection of a thread from the list of threads, the selection causing presentation of a third user interface including
additional blocking statistics for only the selected thread, the additional blocking statistics including a number of times
that one or more other threads blocked the selected thread, an identifier for each of the one or more other threads, and a
blocked time for each of the one or more other threads.

US Pat. No. 9,213,528

DIALOG GENERATION

SAP SE, Walldorf (DE)

1. A computer-implemented method, the method comprising:
displaying, by a computing system, a first graphical user interface that includes multiple first graphical user interface
elements that identify multiple respective process types, and with which user input indicating a selection of one of the multiple
process types is able to be elicited, wherein each process type is associated with a business function;

receiving, by the computing system, first user input that selects a particular one of the multiple first graphical user interface
elements that is associated with a particular one of the multiple process types;

identifying, by the computing system and as a result of having received the first user input that selects the particular one
of the multiple first graphical user interface elements, one or more step groups that are associated with the particular one
of the multiple process types, wherein each of the identified one or more step groups defines a specific type of graphical
user interface for eliciting user input during an information collection process, wherein the computing system has stored
different sets of one or more step groups in association with other of the multiple process types;

displaying, by the computing system and as a result of having received the first user input, one or more second graphical
user interface elements that identify the identified one or more step groups that are associated with the particular one of
the multiple process types;

receiving, by the computing system, second user input that selects a particular one of the one or more second graphical user
interface elements, wherein the selected particular one of the one or more second graphical user interface elements identifies
a particular one of the one or more step groups;

identifying, by the computing system and as a result of having received the second user input that selects the particular
one of the one or more second graphical user interface elements, one or more step elements that are associated with the particular
one of the one or more step groups, wherein each of the identified one or more step elements identifies information to include
in a graphical user interface of the specific type of graphical user interface defined by the particular one of the one or
more step groups;

displaying, by the computing system and as a result of having received the second user input, one or more third graphical
user interface elements that identify the one or more step elements that are associated with the particular one of the one
or more step groups;

receiving, by the computing system, third user input that selects one or more of the one or more third graphical user interface
elements, wherein the selected one or more of the one or more third graphical user interface elements identifies a particular
one of the one or more step elements that are associated with the particular one of the one or more step groups; and

generating, by the computing system and as a result of having received the first user input, the second user input, and the
third user input:

a first process step configured to display first information identified by the particular one of the one or more step elements
to include in a second graphical user interface that is of the specific type of graphical user interface defined by the particular
one of the one or more step groups, and

a first process of the selected particular one of the multiple process types for eliciting user input, wherein the first process
includes the first process step and is configured to display, during a runtime execution of the first process, the second
graphical user interface that is of the specific type of graphical user interface defined by the particular one of the one
or more step groups, the second graphical user interface including the first information.

US Pat. No. 9,047,578

CONSISTENT SET OF INTERFACES FOR BUSINESS OBJECTS ACROSS HETEROGENEOUS SYSTEMS

SAP SE, Walldorf (DE)

1. A tangible computer readable medium including program code for providing a message-based interface for performing a financial
view of work order service, the financial view of work order service for providing an accounting view of a work order, the
medium comprising:
program code for receiving, via a message-based interface derived from a common business object model, where the common business
object model includes business objects having relationships that enable derivation of message-based interfaces and message
packages, the message-based interface exposing at least one service as defined in a service registry and from a heterogeneous
application executing in an environment of computer systems providing message-based services, a first message for notifying
an inventory collaboration hub to accounting that a manufacturing work order has been created that includes a first message
package derived from the common business object model and hierarchically organized in memory as:

a manufacturing work order accounting notification message entity; and
a manufacturing work order package, where the manufacturing work order package includes an ID and an item package, where the
item package includes at least one item, where each item includes an ID;

program code for processing the first message according to the hierarchical organization of the first message package, where
processing the first message includes unpacking the first message package based on the common business object model; and

program code for sending a second message to the heterogeneous application responsive to the first message, where the second
message includes a second message package derived from the common business object model to provide consistent semantics with
the first message package.

US Pat. No. 9,563,452

CLOUD-ENABLED, DISTRIBUTED AND HIGH-AVAILABILITY SYSTEM WITH VIRTUAL MACHINE CHECKPOINTING

SAP SE, Walldorf (DE)

10. A computer-implemented method for executing instructions stored on a computer readable storage medium, the method comprising:
receiving a checkpoint trigger initiating a synchronization of a first virtual machine with a second virtual machine;
tracking, within a page table, a page entry for each memory page of the first virtual machine, the page entries each including
a write control bit and a dirty bit; and

generating, based on the page table, a dirty bit bitmap for transmission to, and use by, the second virtual machine, the dirty
bit bitmap identifying dirty memory pages of the first virtual machine altered since a most-recent synchronization, based
on the corresponding dirty bits;

clearing the corresponding dirty bits;
setting corresponding write control bits for write protection, in conjunction with the generation of the dirty bit bitmap;
detecting, during the synchronization, a write request for one of the identified dirty memory pages that has not yet been
transferred to the second virtual machine; and

copying the identified dirty memory page to a temporary buffer for transferring therefrom to the second virtual machine.

US Pat. No. 9,356,826

CONNECTING NETWORK MANAGEMENT SYSTEMS

SAP SE, Walldorf (DE)

1. A method comprising:
receiving, at a first network and system management system on a first network, a plurality of metric messages from a network
entity configured to monitor a state of metrics of the network entity and broadcast messages reporting a current state of
metrics;

for each metric message of the plurality of metric messages,
analyzing by the first network and system management system, configuration data and data of the metric messages received from
the network entity to determine a network system and management system to which to forward the metric message;

determining, by the first network and system management system, based on the configuration data and data of the metric message
received from the network entity, that the received metric message is to be forwarded to a second network and system management
system on a second network, the second network distinct from the first network, the second network and system management system
unable to receive or process network metric messages that are received and processed by the first network and system management
system;

determining, by the first network and system management system, from more than one different template, a template identified
in the configuration data for the second network system and management system to populate with data of the metric message
received from the network entity;

retrieving, by the first network and system management system, the template to populate with data of the metric message received
from the network entity, and mapping metric message data to fields of the template;

populating, by the first network and system management system, the template according to the mapping data;
storing, by the first network and system management system, the template to a local data storage;
retrieving, by the first network and system management system, a plurality of populated templates from the local data storage
to be transmitted to the second network system and management system;

aggregating, by the first network and system management system, the retrieved populated templates into a single data structure;
and

transmitting, by the first network and system management system, the single data structure to the second network and system
management system.

US Pat. No. 9,300,687

MANAGING ACCESS TO SECURED CONTENT

SAP SE, Walldorf (DE)

1. A computer-implemented method for preventing unauthorized access to secure content, comprising:
accessing, from a client appliance connected in a distributed network, a computing appliance through the world wide web, the
computing appliance comprising a DNS server addressed by a particular domain name;

receiving, from the computing appliance, a portion of code at the client appliance through a web browser of the client appliance,
receiving, to a server appliance connected in the distributed network, a request to access secure content stored on the server
appliance by the portion of code;

receiving, from the server appliance, a server-origin at the web browser of the client appliance, the server-origin being
a part of an HTTP response header comprising an X-Server-Origin response header and being delivered from the server appliance
to the client appliance in a comma-separated list;

comparing the domain name of the DNS server with server-origin of the secure content; and
based on the domain name of the DNS server being exclusive of a set of server-origin values that comprises the server-origin,
denying access to the request.

US Pat. No. 9,275,365

INTEGRATED PRODUCTIVITY SERVICES

SAP SE, Walldorf (DE)

1. A computer implemented method performed by one or more processors for providing integrated productivity services, the method
comprising the following operations:
executing a computer software application that is associated with a user;
determining, using user context data, a context associated with the user of the application by accessing a cloud-based server
on which the user context data is stored;

identifying an application-executable user productivity feature to augment the application and for integration with an existing
feature executable by the application based on the context, wherein the user productivity feature is integrated with the existing
feature independent of the lifecycle or release of the application, and wherein the application excludes the user productivity
feature prior to the identifying;

executing a user interface integration module configured to provide context-specific augmentation of user productivity features
to the application, the user interface integration module being separate from the application;

augmenting a user interface of the application with a graphical object representing the user productivity feature; and
providing the graphical object to the application to be displayed concurrently with a user interface of the application, wherein
the graphical object is configured to interact with the application and to integrate the user productivity feature into the
application.

US Pat. No. 9,449,032

MULTI-BUFFERING SYSTEM SUPPORTING READ/WRITE ACCESS TO DIFFERENT DATA SOURCE TYPE

SAP SE, Walldorf (DE)

1. A computer-implemented method comprising:
providing in an in memory database layer, a first data source of a first type and a second data source of a second type different
from the first type, wherein the first data source comprises a multi-dimensional data structure and the second data source
comprises other than a multi-dimensional data structure;

providing in an application layer in communication with the in memory database layer, a multi-buffering system; and
causing an abstract buffer component of the multi-buffering system, to support unified read or write access to the first data
source and to the second data source by a consumer;

wherein the abstract buffer component comprises a delta buffer configured to access the first data source, and an after image
buffer configured to access the second data source, the abstract buffer component comprising a class distributing an operation
comprising a current filter of a request from the consumer to the in memory database layer while retaining a handle,

wherein the first data source of the first type and the second data source of the second type manage a calculation scenario
containing information to calculate data relevant in a planning session and all parameters to obtain changed data in the planning
session, the first data source of the first type and the second data source of the second type configured to return in the
planning session, relevant data in the changed state and store the relevant data in the changed state upon receiving the request,

wherein a storage mechanism passes the request unchanged to the in-memory database layer where the request does not commutate
with a logged filter, the storage mechanism comprising a cache store configured to access the first data source, and a calculation
scenario store configured to access the second data source; and

wherein the storage mechanism reads data from the in memory database rather than the abstract buffer where an intersection
of the logged filter with the current filter is found.

US Pat. No. 9,083,750

METHOD AND SYSTEM FOR AUTHENTICATION BY DEFINING A DEMANDED LEVEL OF SECURITY

SAP SE, Walldorf (DE)

1. A computer-implemented method for authentication of a client device to a server, the method comprising:
using one or more computer processors to perform the operations of:
determining a demanded level of security for a resource on the server, wherein the demanded level of security is independent
of any particular authentication instance and defines level of trust necessary to allow access to the resource on the server;

determining, for each of a plurality of authentication instances, an associated server level of trust;
determining which of the plurality of authentication instances are available on the client device;
selecting at least two authentication instances from the plurality of authentication instances determined to be available
on the client device based upon a determination that the combined level of trust associated with the at least two selected
authentication instances meets or exceeds the determined demanded level of security for access to the resource on the server,
wherein one or more combining operators are utilized to combine authentication instances; and

sending a request to the server to utilize the resource, the request comprising information verifying that the computer-implemented
client has successfully authenticated utilizing the selected combination of authentication instances,

wherein the authentication instances are associated to a reputation which evolves based on a collection of previous experiences
associated with determining the server level of trust in the authentication instances.

US Pat. No. 9,356,921

DIFFERENT AUTHENTICATION PROFILES

SAP SE, Walldorf (DE)

1. A mobile device, comprising:
a processing device including:
an authenticator that stores at least one profile associated with at least one authenticator key to access at least one server,
wherein the at least one server contains at least one register key that is associated with the at least one authenticator
key; and

a processor to embed the at least one authenticator key in data to be communicated to the at least one server to request access
from the at least one server, wherein the data includes at least one profile specific program to be executed,

wherein the authenticator compares the at least one profile to a set of parameters based upon at least one of i) a user's
identification information, ii) the selected program to be executed, iii) identification information of the one of the servers,
and iv) identification information of an authentication register, to determine whether to select the at least one profile,
and

if the authenticator selects one of the profiles, the authenticator generates the at least one authenticator key based on
the selected profile, wherein the authenticator transmits the at least one authenticator key to the processor, wherein the
processor embeds the at least one authenticator key in data to be communicated and communicates the at least one authenticator
key to the at least one server, and

wherein if the authenticator determines none of the profiles match the set of parameters, the authenticator selects a default
one of the profile to generate the one of the keys and if the one of the keys based upon the default one of the profiles fails
to authenticate, the mobile device prompts the user to select another one of the profiles to generate a new key;

wherein the at least one server compares the at least one authenticator key to the at least one register key, and based on
the comparison, the processor executes the at least one program.

US Pat. No. 9,230,257

SYSTEMS AND METHODS FOR CUSTOMER RELATIONSHIP MANAGEMENT

SAP SE, Walldorf (DE)

1. A method comprising:
accessing a social media message posted on a social media system, the social media message describing a product;
identifying a problem keyword in the social media message indicating a problem with the product, responsive to comparing text
in the social media message to a list of known problem keywords;

classifying, using one or more processors, one or more messages in a database of previously posted messages as one or more
similar messages that are similar to the social media message, based on detecting the problem keyword identified in the social
media message in the one or more similar messages;

displaying the similar messages in a similar message recommendation list of a user interface, the similar message recommendation
list including previous customer service response messages associated with each of the similar messages;

receiving a user selection of a first one of the similar messages displayed in the similar message recommendation list; and
reformatting the previous customer service response message corresponding to the first one of the similar messages as a draft
response message addressed to an author of the social media message, and inserting the draft response message into a message
composition window.

US Pat. No. 9,367,826

CONSISTENT INTERFACE FOR ENTITLEMENT PRODUCT

SAP SE, Walldorf (DE)

1. A non-transitory computer readable medium including program code for providing a message-based interface for exchanging
information about entitlement products, the medium comprising:
program code for receiving via a message-based interface derived from a common business object model, where the common business
object model includes business objects having relationships that enable derivation of message-based interfaces and message
packages, the message-based interface exposing at least one service as defined in a service registry and from a heterogeneous
application executing in an environment of computer systems providing message-based services, a first message for requesting
maintaining a bundle of entitlement products, each entitlement product being a sellable product that describes a right to
use a material or a service, the first message including a first message package hierarchically organized in memory based
on and derived from the common business object model, the first message package including:

at a first hierarchical level in the first message package, an entitlement product bundle maintain request sync message entity;
and

at the first hierarchical level in the first message package, an entitlement product package including, at a second hierarchical
level in the first message package, at least one entitlement product entity, wherein each entitlement product entity includes,
at a third hierarchical level in the first message package, an object node sender technical identifier (ID), a change state
ID, and an internal ID, and wherein each entitlement product entity further includes, at the third hierarchical level in the
first message package, at least one of: a description package, a detail package, and a quantity conversion package, wherein
the description package includes, at a fourth hierarchical level in the first message package, at least one description entity,
wherein the detail package includes, at the fourth hierarchical level in the first message package, at least one detail entity,
and wherein the quantity conversion package includes, at the fourth hierarchical level in the first message package, at least
one quantity conversion entity; and

program code for sending a second message to the heterogeneous application responsive to the first message, where the second
message includes a second message package derived from the common business object model to provide consistent semantics with
the first message package.

US Pat. No. 9,189,760

SYSTEM, METHOD AND COMPUTER READABLE MEDIUM FOR USING PERFORMANCE INDICATORS AND PREDICTIVE ANALYSIS FOR SETTING MANUFACTURING EQUIPMENT PARAMETERS

SAP SE, Walldorf, DE (US...

1. A method comprising:
receiving first data from a data warehouse by an in-memory computing module, the first data including performance indicators
associated with other equipment in a manufacturing process utilizing an equipment, the in-memory computing module being configured
to store the first data in random access memory (RAM) and to process operational and transactional data in real-time;

receiving second data, by the in-memory computing module, from an enterprise resource planning database, the second data including
information including at least one of bill of material information, machine set-up information, tool information, and maintenance
information associated with the other equipment in the manufacturing process utilizing the equipment;

predicting, by the in-memory computing module, a target time per piece based on the first data and the second data, wherein
predicting the target time per piece includes determining the equipment speed over which a time per piece is minimized in
order to minimize a time associated with the manufacturing process based on the performance indicators and the information;
and

setting an equipment speed based on the target time per piece.

US Pat. No. 9,059,959

CLIENT SIDE MANAGEMENT OF HTTP SESSIONS

SAP SE, Walldorf (DE)

1. A method for client side management of a client-server session during which a client browser sends HTTP requests to the
server and the server sends HTTP responses to the client browser, comprising:
sending by the client browser to the server an initial HTTP request for access to an application hosted by the server;
receiving by the client browser from the server an initial HTTP response that includes an initial markup language document
that includes one or more hyperlink objects, a session identifier and a termination address;

in response to receiving the initial document, creating an iframe within the received initial document;
targeting one or more of the hyperlink objects, which are within the received initial document and outside the iframe, to
the iframe;

wherein targeting one or more of the hyperlink objects, which are within the received initial document and outside the iframe,
to the iframe includes identifying a hyperlink from among the one or more hyperlink objects, which are within the initial
document and outside the iframe, and setting the iframe as a target for responses to requests launched using the hyperlink;

monitoring the client browser to detect an occurrence of at least one browser event; and
in response to detecting an occurrence of the at least one browser event, sending by the client browser an HTTP request that
includes the session identifier to the termination address.

US Pat. No. 9,253,442

HOLOPRESENCE SYSTEM

SAP SE, Walldorf (DE)

1. A system comprising:
a videoconferencing system; and
a high definition stereoscopic camera filming one remote participant against a green screen, the camera including:
at least one processor, and
a memory storing instructions that, when executed by the at least one processor, causes the stereoscopic camera to:
crop a right portion and a left portion from a right image taken by the camera leaving a right center portion,
crop a right portion and a left portion from a left image taken by the camera leaving a left center portion,
concatenate the left center portion and the right center portion into a cropped composite image, and
transmit the cropped composite image to the videoconferencing system,
wherein the videoconferencing system transmits the cropped composite image to a viewing site that displays the image in life-size.
US Pat. No. 9,304,978

MAINTENANCE OF XML DOCUMENTS

SAP SE, Walldorf, DE (US...

1. A computer-implemented method for maintaining extensible markup language (XML) documents comprising:
processing a first XML document at a content management server so as to split the first XML document into fragments of content
according to rules stored in a configuration file;

for each fragment of the first XML document, generating i) an object at the content management server to which the fragment
of content is bound, the object including content for the fragment, and ii) a reference to replace the fragment of content
in the first XML document, said reference expressed in XML and referring to the object at the content management server to
which the fragment of content is bound;

processing a second XML document at the content management server so as to split the second XML document into fragments of
content according to rules stored in the configuration file; and

reusing one of the fragments of the first XML document in the second XML document that includes different content from the
first XML document, the reusing including the reference in the second XML document referring to the object at the content
management server to which the one of the fragments of the first XML document is bound, wherein the content for the object
in the second XML document is identical to content for the object in the first XML document, wherein the object is not stored
again at the content management server for the second XML document.

US Pat. No. 9,262,549

MODELED ASSOCIATIONS FOR BUSINESS OBJECT DATA STRUCTURES

SAP SE, Waldorf (DE)

1. A method for implementation by one or more data processors forming part of at least one computing system comprising:
receiving, by at least one data processor, a service request to execute an operation on a business object;
polling, by at least one data processor, a metadata repository to obtain a modeled association corresponding to the service
request, the modeled association involving at least one node of the business object, the metadata repository containing a
plurality of modeled associations, including the modeled association, modeled using at least one valuation condition in a
plurality of valuation conditions corresponding to different types of modeled associations, where the plurality of valuation
conditions excludes an extension field; and

calling, by at least one data processor during runtime, the at least one node of the business object using the modeled association
and without regard for the type of modeled associations to define how to traverse the business object in order to respond
to the service request.

US Pat. No. 9,261,950

CONSISTENT INTERFACE FOR DOCUMENT OUTPUT REQUEST

SAP SE, Waldorf (DE)

1. A computer readable medium including program code for providing a message-based interface for a document output request,
including a set of output requests related to a business document, the medium comprising:
program code for receiving via a message-based interface derived from a common business object model, where the common business
object model includes business objects having relationships that enable derivation of message-based interfaces and message
packages, the message-based interface exposing at least one service as defined in a service registry and from a heterogeneous
application executing in an environment of computer systems providing message-based services, a first message for requesting
output of a business document, including a set of output requests related to a referenced business object, the output requests
using one or more output channels for sending out documents, the first message including a message package hierarchically
organized in memory based on and derived from the common business object model, the first message package including:

at a first hierarchical level in the first message package, a document output request message entity;
at the first hierarchical level in the first message package, a message header package including, at a second hierarchical
level in the first message package, a message header entity; and

at the first hierarchical level in the first message package, a document output request package including, at a second hierarchical
level in the first message package, a document output request entity, wherein the document output request entity includes,
at a third hierarchical level in the first message package, an access control list entity, a universally unique identifier
(UUID), a reference object node identifier (ID), a reference object type code, and a reference object node type code;

program code for processing the first message based on the hierarchical organization of the first message package, where processing
the first message includes unpacking the first message package based on the hierarchical organization of the first message
package, the specific grouping and order of the hierarchical elements, and the first message package's derivation from the
common business object model, wherein the particular hierarchical organization of the first message package and the specific
grouping and order of the hierarchical elements are used at least in part to identify the purpose of the first message; and

program code for sending a second message to the heterogeneous application responsive to the first message, where the second
message includes a second message package derived from the common business object model to provide consistent semantics with
the first message package.

US Pat. No. 9,047,561

CONTEXTUAL NETWORK ACCESS OPTIMIZER

SAP SE, Walldorf (DE)

1. A method comprising:
registering business applications operating in a contextual network of a server with registration data comprising a set of
parameters that defines the business applications;

using a processor of the server to determine initial configuration settings for the business applications defined by the set
of parameters and to identify parts of the contextual network relevant to the business applications;

providing the business applications with access to contextual network data comprising semantic objects and relations based
on distances between nodes in a contextual network graph of the contextual network data;

collecting measurements of the access from the business applications to the contextual network data; and
computing future optimal configuration settings for the business applications based on the measurements using a feed-forward
learning algorithm.

US Pat. No. 9,241,079

MOBILE APPLICATION USAGE MONITOR

SAP SE, Walldorf (DE)

1. A mobile computing device, comprising:
one or more sensors configured to acquire sensor data of a user;
a non-transitory memory device for storing one or more mobile applications and computer-readable program code; and
a processor in communication with the memory device, the processor being operative with the computer-readable program code
to

receive the sensor data from the one or more sensors,
determine usage time of the one or more mobile applications based on the sensor data, and
in response to the usage time exceeding a pre-defined time quota setting, generate an alert message.

US Pat. No. 9,491,238

RAPID CLIENT-SIDE COMPONENT PROCESSING BASED ON COMPONENT RELATIONSHIPS

SAP SE, Walldorf (DE)

1. A computer system, the computer system comprising:
a client database manager configured to cause a memory of a client device on a client side of a network to store a first component,
a second component, and a relationship value representing a dependent relationship between the first component and the second
component, the dependent relationship being a processing dependency such that at least some portion of processing of the first
component is dependent on the processing of the second component; and

a client processing module configured to cause a processor to receive, after the storing, a request to process the first component
at the client device,

the client database manager configured to send to a server side of the network, in response to the request to process the
first component, a request for an update of at least one of the first component or the second component,

the client processing module configured to cause the processor to process at the client device, in response to the request
to process the first component and before receiving a response to the request for the update from the server side of the network,
at least a portion of the first component and at least a portion of the second component based on the relationship value.

US Pat. No. 9,177,025

HASH-JOIN IN PARALLEL COMPUTATION ENVIRONMENTS

SAP SE, Walldorf (DE)

1. A computer readable medium having program instructions stored thereon, the medium comprising:
instructions to calculate, by a plurality of concurrently executing execution threads, hash values for join columns of a first
input table and a second input table, the hash values including key-index pairs where each key of the key-index pairs that
is distinct is mapped to a unique integer, the key of the key-index pairs being extracted from partitions of the first and
second input tables, and the index of the key-index pairs comprising one of the unique integers;

instructions to store the calculated hash values in a set of disjoint thread-local hash maps for each of the first input table
and the second input table, the storing including storing a row number of the join columns of the first or second input table
corresponding to an associated value stored for each of the key-index pairs;

instructions to merge the set of thread-local hash maps of the first input table, by a second plurality of execution threads
operating concurrently, to produce a set of merged hash maps, each of the second plurality of execution threads responsible
for a dedicated range of all of the thread-local hash maps;

instructions to compare each entry of the merged hash maps to each entry of the set of thread-local hash maps for the second
input table to determine whether there is a match, according to a join type; and

instructions to generate an output table including matches as determined by the comparing.

US Pat. No. 9,159,052

GENERALIZING FORMATS OF BUSINESS DATA QUERIES AND RESULTS

SAP SE, Walldorf (DE)

1. A computer-implemented method performed by data processing apparatus, the method comprising:
receiving a query requesting data stored in a business objects data source, wherein the query has a generic query format and
wherein the query includes one or more parameters that at least in part describes a computer software interface implementation
configured to execute the query to identify the data requested in the query;

identifying, based on the one or more parameters, the computer software interface implementation that is configured to execute
the query, wherein the computer software interface implementation specifies an interface-specific query format, wherein the
identifying the computer software comprising:

identifying a plurality of computer software interface implementations, each of which is configured to execute the query,
identifying, for each of the plurality of computer software interface implementations, a connection between a respective computer
software interface implementation and the business objects data source that stores the data requested in the search query,
and

selecting a particular computer software interface implementation as the computer software interface implementation to execute
the query based on a particular connection between the particular computer software interface implementation and the business
objects data source, wherein the particular connection is a direct connection and the particular computer software interface
implementation is a Business Intelligence Consumer Services (BICS) interface implementation;

converting the query from the generic query format into the interface-specific query format; and
providing the interface-specific query format to the computer software interface implementation.

US Pat. No. 9,053,153

INTER-QUERY PARALLELIZATION OF CONSTRAINT CHECKING

SAP SE, Walldorf (DE)

1. A non-transitory computer program product storing instructions that, when executed by at least one programmable processor,
cause the at least one programmable processor to perform operations comprising:
executing a plurality of operations on tables of an insert-only, in-memory database, at least a portion of the operations
being executed in parallel, wherein rows of the database are given monotonically-increasing row identifiers and the database
uses multi-version concurrency control, and wherein the operations are selected from a group consisting of insert, update,
and delete operations;

performing, for each operation subsequent to its execution, a constraint check to determine whether data stored in the database
affected by the operation is valid, wherein for each insert or update operation the corresponding constraint check is limited
to row identifiers existing prior to the execution of the corresponding operation; and

invalidating operations subsequent to their execution for which the constraint check determines that the data is not valid;
wherein the constraint checks are parallelized inter-query and are parallelized intra-query.

US Pat. No. 9,400,998

CONSISTENT INTERFACE FOR MESSAGE-BASED COMMUNICATION ARRANGEMENT, ORGANISATIONAL CENTRE REPLICATION REQUEST, AND PAYMENT SCHEDULE

SAP SE, Walldorf (DE)

1. A non-transitory computer readable medium including program code for providing a message-based interface for exchanging
information about message-based communication arrangements, the medium comprising:
program code for receiving via a message-based interface derived from a common business object model, where the common business
object model includes business objects having relationships that enable derivation of message-based interfaces and message
packages, the message-based interface exposing at least one service as defined in a service registry and from a heterogeneous
application executing in an environment of computer systems providing message-based services, a first message for requesting
a list of message-based communication arrangements corresponding to specified selection elements, the first message including
a first message package hierarchically organized in memory based on and derived from the common business object model, the
first message package including:

at a first hierarchical level in the first message package, a message-based communication arrangements query by elements message
entity; and

at the first hierarchical level in the first message package, a specified selection elements package including, at a second
hierarchical level in the first message package, a specified selection elements entity, wherein the specified selection elements
entity includes, at a third hierarchical level in the first message package, at least one message communication profile group
key, message communication profile group short text, and at least one message communication profile group type code; and

program code for processing the first message based on the hierarchical organization of the first message package, where processing
the first message includes unpacking the first message package based on the hierarchical organization of the first message
package, the specific grouping and order of the hierarchical elements, and the first message package's derivation from the
common business object model, wherein the particular hierarchical organization of the first message package and the specific
grouping and order of the hierarchical elements are used at least in part to identify the purpose of the first message;

program code for sending a second message to the heterogeneous application responsive to the first message, where the second
message includes a second message package derived from the common business object model to provide consistent semantics with
the first message package.

US Pat. No. 9,355,029

THREAD-BASED MEMORY MANAGEMENT WITH GARBAGE COLLECTION

SAP SE, Walldorf (DE)

1. A computer-implemented method for managing the allocation of memory comprising:
activating a processing thread;
allocating memory for the processing thread, wherein the allocated memory includes a first region having a plurality of segments;
determining if data associated with an object utilized by the processing thread is to be stored in the first region of the
allocated memory;

determining if the data associated with the object can be stored in a first segment of the plurality of segments;
storing the data associated with the object in the first segment in response to the determination that the data associated
with the object can be stored in the first segment; and

the processing thread including code performing a garbage collection process on the allocated first segment prior to termination
of the processing thread.

US Pat. No. 9,280,589

VIRTUAL BUSINESS DESKTOP FOR ARRANGEMENT OF OBJECTS

SAP SE, Walldorf (DE)

1. A non-transitory computer-readable medium containing instructions to configure at least one processor to perform operations
comprising:
generating a virtual desktop including a plurality of icons representative of a plurality of objects organized in accordance
with at least one theme corresponding to a workflow configurable by a user, wherein a first portion of the plurality of icons
are presented as a first view configured for a multi-level zoom via a viewable portion of the virtual desktop, wherein a second
portion of the plurality of icons are not included in the viewable portion of the virtual desktop, wherein the first portion
represents a first set of tasks of the workflow and the second portion represents a second set of tasks of the workflow;

providing a navigation pane on or adjacent to the virtual desktop, wherein the navigation pane provides a spatial overview
of the plurality of icons including the first portion and the second portion to enable navigation from the first portion to
the second portion to enable the second portion to be included in the viewable portion of the virtual desktop;

providing a controller to enable the multi-level zoom on at least one icon contained in the first portion of the plurality
of icons on the virtual desktop; and

generating, based on the multi-level zoom, a second view representative of the at least one icon, and a third view representative
of the at least one icon, wherein the second view provides a second zoom level that is more zoomed-in on the at least one
icon when compared to the first view, and the second view provides, in comparison to the first view and based on the second
zoom level, additional descriptive information of the at least one icon, wherein the third view provides a third zoom level
that is more zoomed-in on the at least one icon when compared to the second view, and the third view provides, in comparison
to the second view and based on the third zoom level, additional descriptive information of the at least one icon, and wherein
at least one of the plurality of icons allows selection and execution of an application.

US Pat. No. 9,170,810

SELECTION AND ASSESSMENT OF SOFTWARE COMPONENTS

SAP SE, Walldorf (DE)

1. A computer implemented method performed by one or more processors for assessing software components, the method comprising
the following operations:
identifying a software component for assessment based upon an assessment context;
analyzing dependencies associated with the software component, wherein analyzing dependencies includes:
identifying at least one relevant perspective associated with the software component, the at least one relevant perspective
representing a view of software components and the relevance of the software component based upon the assessment context,
wherein the assessment context includes information used to determine appropriate other software components for assessment
in addition to the software component and is a particular software component use case for the software component used for
identifying the at least one relevant perspective by deducing boundary conditions from obtaining relevant boundary condition
aspects, wherein the boundary conditions are software requirements imposed on the particular software component;

identifying a scope associated with the at least one relevant perspective, wherein the scope can be expanded using the perspective
view and boundary conditions to include multiple layers of dependencies associated with the software component; and

determining, using a transitive closure process, whether the software component is associated with at least one related infrastructure
component based on the scope or at least one other software component that the software component depends on based on the
scope; and

assessing the software component and each of the at least one related infrastructure component or the at least one other software
component against a set of criteria.

US Pat. No. 9,129,056

TRACING VALUES OF METHOD PARAMETERS

SAP SE, Walldorf (DE)

1. A computer-implemented method for tracing values of one or more method parameters, comprising:
receiving a plurality of specifications at a virtual machine that is executed using one or more processors, each specification
indicating one or more methods and one or more parameters to be traced, the one or more parameters corresponding to the one
or more methods, at least one of the one or more specifications indicating a transformation to be applied to a plurality of
resulting parameter values associated with at least one method of the one or more methods, wherein the transformation is processed
by the virtual machine and comprises a chain of modifiers to transform the plurality of resulting parameter values from an
initial type to a traceable type, wherein each modifier in the chain of modifiers defining a suitable input type, and wherein
two or more of the plurality of specifications are directed to same one or more method's same one or more parameters to be
traced, wherein the modifiers of the respective two or more specifications generate a respective resulting parameter value;

executing an application, the application calling a method of the one or more methods using the virtual machine;
determining, by the virtual machine, during execution of the application a subset of the two or more received specifications,
the subset corresponding to specifications that are applicable to the method;

generating an entry event corresponding to the method based on the subset, the entry event comprising event data comprising
values of the one or more parameters, the values comprising at least one modified value based on the transformation and the
values comprising at least one modified value based on the transformation and the values generated by combining the respective
resulting parameter values transformed by the two or more specifications operating on the same parameter; and

reporting the entry event.

US Pat. No. 9,355,377

CARBON DIOXIDE EMISSIONS OPTIMIZED SECURE CLOUD COMPUTING

SAP SE, Walldorf (DE)

1. A method for reducing carbon dioxide emissions during secure execution of an application in a cloud computing environment,
the method comprising:
determining, in a computer system, a cloud computing category identifier corresponding to a number of processing cores in
the cloud computing environment;

determining, in the computer system, a plurality of calibration parameters that define a statistical methodology for producing
a plurality of cost values, wherein the calibration parameters include a number of times the application or portion thereof
is to be executed in the cloud computing environment;

transmitting the cloud computing category identifier and the plurality of calibration parameters from the computer system
to a cloud computing service provider associated with the cloud computing environment;

receiving, in the computer system, the plurality of cost values based on the cloud computing category identifier and the plurality
of calibration parameters from the cloud computing service provider;

partitioning, by a optimizer component of the computer system, the application into a plurality of single state assignment
(SSA) statements to optimize execution of the application as a whole, wherein the plurality of cost values describes the cost
of executing the plurality of SSA statements in the cloud computing environment;

mapping, in the computer system, the plurality of cost values to a plurality of corresponding carbon dioxide (CO2) emissions values to generate a cost value to CO2 emission calibration, wherein the plurality of CO2 emissions values describe the amount of CO2 produced during the execution of each of the plurality of SSA statements in the cloud computing environment;

iteratively evaluating each of the plurality of SSA statements based on each of a plurality of security protocols, wherein
the plurality of security protocols comprises at least a garbled circuit security protocol and a homomorphic security protocol;

assigning at least one security protocol of the plurality of security protocols to each of the plurality of SSA statements
to minimize CO2 emissions values during execution of the application;

generating a partitioning vector representing the assignment of each of the security protocols to each of the corresponding
SSA statements; and

sending the SSA statements to the cloud computing environment for execution using the security protocols defined by the partitioning
vector.

US Pat. No. 9,063,995

ACCESS CONTROL LIST (ACL) GENERATION FOR REPLICATED DATA

SAP SE, Walldorf, DE (US...

1. A computer implemented method comprising:
replicating data from a first database system to a second database system, wherein the first database system includes authorizations
without regard to entities to restrict access to data in the first database system and the second database system includes
access control list (ACL) rules with regard to entities to restrict access to data in the second database system;

determining a trigger table associated with the first database system, the trigger table including information for rows in
tables of the first database system relevant to authorizations in the first database system, and wherein the trigger table
comprises an identification to a first table associated with the first database system in which the data was replicated, an
ACL field, and an ACL value;

generating an access control list (ACL) report from the trigger table, the ACL report including information for setting ACL
rules for the second database system;

determining an access context for an entity from the ACL report, wherein the access context describes an organization in the
entity; and

generating an ACL rule based on the access context to restrict access to the replicated data in the second database system
to users associated with the access context, wherein an authorization for the data in the first database system is transformed
into the ACL rule based on the access context in the second database system, and wherein the ACL rule is added as a dependent
object to a second table in the second database system.

US Pat. No. 9,049,201

COMMUNICATION BETWEEN INTEGRATED DEVICE AND MOBILE APPLICATION CLIENT ON MOBILE PERSONAL COMMUNICATION DEVICE

SAP SE, Walldorf (DE)

1. A computer-implemented method comprising:
generating, using an application implemented by non-managed code on a first device, a command to an operating system of the
first device, the command being socket based and conforming with a standard network communications protocol;

forwarding the command from the operating system to a module on the first device, the module configured for socket based communication
according to the standard network communications protocol, the command comprising an address of a second device;

generating, using the module and according to a protocol specific to the second device, a command communication that instructs
the second device to perform an operation based on the command, wherein the second device generates a response communication
to the module according to the protocol;

generating, using the module, a socket based response to the operating system that is based on the response communication
and that conforms with the standard network communications protocol; and

forwarding the socket based response from the operating system for receipt by the application.

US Pat. No. 9,361,339

METHODS AND SYSTEMS FOR CONSTRUCTING Q, ?-OPTIMAL HISTOGRAM BUCKETS

SAP SE, Walldorf (DE)

1. A computer-implemented method of optimizing execution of a query that accesses data by a computer, the method comprising:
generating, by a query sever having a processor, a cardinality estimate using a q, ?-optimal histogram comprising a plurality
of buckets over a data distribution where, for any cardinality estimate made using the histogram, the cardinality estimate
is constrained to obey an acceptability criteria parameterized by q and ? that bounds a ratio error between the cardinality
estimate and a true value of the cardinality, q being a factor by which the estimate deviates, at most, from a true value
of the cardinality and ? being a threshold value which the cardinality estimate does not exceed, wherein a maximum number
of possible query intervals generated in determining the acceptability of the q, ?-optimal histogram is less than quadratic
in the number of values for the maximum number of possible query intervals;

using the cardinality estimation generated based on the q, ?-optimal histogram that obeys the acceptability criteria parameterized
by q and ? to determine, by the processor of the query server, an optimal query plan for executing the query; and

producing an output of the optimal query plan, wherein a bucket in the plurality of buckets is constructed by incrementally
extending a smaller q, ?-acceptable bucket without need to test the new bucket for q, ?-violations whose intervals are wholly
contained within the smaller bucket.

US Pat. No. 9,298,770

GENERATING REMOTELY ACCESSIBLE REPOSITORIES FROM LANGUAGE META-MODELS

SAP SE, Walldorf (DE)

1. A computer-implemented method for generating a repository, the method comprising:
receiving a language meta-model to provide a received language meta-model;
receiving annotations, each annotation including meta-data;
annotating the received language meta-model based on the annotations to provide an annotated language meta-model;
determining that a repository has not been previously generated that is associated with the received language meta-model,
and in response, processing the annotated language meta-model using a first and a second generator to generate a first and
a second repository module, respectively;

identifying a dependency of the first repository module on the second repository module; and
based on the identified dependency, providing, by the first repository module, one or more functions based on i) the first
generator and ii) the second repository module.

US Pat. No. 9,280,569

SCHEMA MATCHING FOR DATA MIGRATION

SAP SE, Walldorf (DE)

1. A system for matching an element of a source schema to an element of a target schema, the system comprising:
a processing unit configured to identify a sample data item of the element of the target schema, match a part of the sample
data item to a part of a sample instance of the source schema, and match the element of the source schema to which the part
of the sample instance of the source schema belongs to the element of the target schema; and

a communication unit configured to provide the sample data item through an interface, and receive the sample instance of the
source schema.

US Pat. No. 9,245,006

DATA SEARCH USING CONTEXT INFORMATION

SAP SE, Walldorf (DE) in...

1. A method of conducting a data search, the method comprising:
receiving a message from a client application, the message comprising one or more user terms submitted by a user for conducting
the data search;

identifying the user that submitted the one or more user terms;
retrieving context information using the identity of the user;
identifying business functional data associated with the context information;
identifying a domain package assigned to the business functional data, the assigned domain package including a number of domain
terms, a defined domain name, a concept, and one or more term types;

selecting a domain term, from the number of domain terms, to include in a query, the query being based on the user terms,
the defined domain name, the concept, and the one or more term types; and

conducting a search of a data source using the query, wherein the search is conducted by at least one hardware device.

US Pat. No. 9,240,965

METHODS AND SYSTEMS FOR BUSINESS INTERACTION MONITORING FOR NETWORKED BUSINESS PROCESS

SAP SE, Walldorf (DE)

1. A computer-implemented method for monitoring interactions of business processes within networked business processes, the
method comprising:
identifying a networked business process, the networked business process comprising a plurality of interrelated business processes,
the interrelated business processes each performed by at least one of a plurality of network participant servers;

receiving a first message from a first network participant server associated with the networked business process, the first
message including result information identifying a first business process of the plurality of interrelated business processes
performed by the first network participant server, where the first business process;

identifying a network process context associated with the networked business process, the network process context maintaining
data objects associated with the performance of the network business process while restricting access of different individual
data objects to respective different participants of the plurality of network participants, the data objects storing information
associated with the results of the processing of each of the plurality of interrelated business processes;

in response to receiving the first message:
determining one or more second business processes of the interrelated business processes to be initiated in response to the
first business process having been performed;

determining a plurality of second network participant servers to perform the one or more second business processes to be initiated,
the plurality of second network participant servers being different from the first network participant;

providing the first message including the information to the determined plurality of second network participant servers; and
providing access to a data object of the identified network process context associated with results of the processing of the
first business process to the determined plurality of second network participant servers.

US Pat. No. 9,069,646

AUTOMATIC DOCUMENTATION GENERATOR

SAP SE, Walldorf (DE)

1. A non-transitory computer-readable medium containing instructions to configure a processor to perform operations comprising:
accepting a setting for a filter, the filter setting representing a type of information to be included in a list of object
descriptions, the type corresponding to at least one of an end-user version of a software documentation or a technical version
of the software documentation;

accepting a setting for a flag of an object, the flag setting representing a category of documentation relevance for the object
stored in a repository, the flag setting corresponding to at least one of a first indication that the object is relevant for
the end-user version of the software documentation or a second indication that the object is relevant for the technical version
of the software documentation, a third indication that the object is conditional upon the acceptance of another object for
inclusion in the software documentation, and a fourth indication that the object is always relevant to generation of the software
documentation;

comparing the filter setting with the flag setting of the object to determine whether the object is to be included in the
software documentation;

extracting a description of the object from the repository, when the comparing indicates a match between the filter setting
and the flag setting; and

generating the list of object descriptions, the list including the description of the object; and
generating the software documentation from the generated list of object descriptions.

US Pat. No. 9,354,988

ALLOCATION STRATEGIES FOR DATA STORAGE APPLICATIONS

SAP SE, Walldorf (DE)

1. A computer program product comprising a non-transitory machine-readable medium storing instructions that, when executed
by at least one programmable processor, cause the at least one programmable processor to perform operations comprising:
partitioning a physical storage volume into a plurality of master blocks of an equal master block size;
allocating each master block, of the plurality of master blocks, for storage of a plurality of pages each having a single
storage page size, of a plurality of predefined, different storage page sizes provided for storage of data by a data storage
application;

determining a page size of a received storage page designated by the data storage application for storage on the physical
storage volume; and

storing the received storage page in a block of a master block, of the plurality of master blocks, having the allocated single
page size equivalent to the determined page size.

US Pat. No. 9,307,059

RETRY MECHANISM FOR DATA LOADING FROM ON-PREMISE DATASOURCE TO CLOUD

SAP SE, Walldorf (DE)

1. A computer-implemented method comprising:
sending, by a client device, a data packet to a cloud server via a communication connection, the data packet comprising data;
receiving, by the client device, an indication of a failure in the communication connection;
configuring, by the client device in response to receiving the indication of the failure in the communication connection,
the data packet to prompt the cloud server to perform an upsert operation with the data in the data packet, the configuring
the data packet comprising marking the data packet with a retry flag; and

sending, by the client device, the configured data packet to the cloud server.

US Pat. No. 9,275,121

INTEROPERABLE SHARED QUERY BASED ON HETEROGENEOUS DATA SOURCES

SAP SE, Walldorf (DE)

1. A computer-implemented method executed by at least one processor, the method comprising:
receiving, by a computer system, a request to execute a shared query, wherein the shared query comprises one of a plurality
of pre-defined shared queries, and the shared query comprises a pre-defined query specification associated with the shared
query, the query specification comprising pre-defined connections to a first and a second data sources associated with the
shared query, the query specification specifying the shared query on a semantic layer and including search terms, parameters,
filters, and aspects of the shared query to be used at runtime upon execution of the shared query, where each pre-defined
shared query of the plurality of pre-defined shared queries is associated with a corresponding set of access rights, and wherein
the request to execute the shared query represents a specific request to execute a particular shared query from the plurality
of pre-defined shared queries from a particular application or user;

in response to receiving the request, determining whether the particular application or user is allowed to access the shared
query based on the set of access rights associated with the shared query;

allowing execution of the shared query upon a determination that the particular application or user is allowed to access the
shared query, wherein allowing execution of the share query includes:

identifying the pre-defined query specification associated with the shared query;
in response to the identifying the pre-defined query specification, identifying the first data source and the second data
source based on the identified query specification;

generating a native query for each respective data source of the identified first and second data sources based on the identified
query specification;

executing the generated native queries at the respective data sources to collect a set of query results from the respective
data sources; and

formatting the set of query results from the respective data sources into a unified set of query results; and
rejecting the execution request upon a determination that the particular application or user is not allowed to access the
shared query.

US Pat. No. 9,223,810

STORAGE ADVISOR FOR HYBRID-STORE DATABASES

SAP SE, Walldorf (DE)

1. A computer-implemented method for recommending a storage layout for a hybrid-store database, the method being executed
using one or more processors and comprising:
receiving, by the one or more processors, one or more data characteristics associated with data that is to be stored in the
hybrid-store database before the data is stored in the hybrid-store database;

receiving, by the one or more processors, one or more query characteristics associated with one or more queries that are expected
to be applied to the hybrid-store database;

processing, by the one or more processors, the one or more data characteristics and the one or more query characteristics
using a cost model to generate a plurality of storage costs based on a level of details of the one or more query characteristics,
each storage cost being associated with a respective storage layout and being determined as a sum of a base cost and one or
more adaptation factors, the base cost being associated with default data and default query characteristics and each of the
one or more adaptation factors corresponding to a storage sub-cost determined for each of the one or more queries;

identifying, based on the plurality of storage costs, a recommended storage layout; and
providing the recommended storage layout for application to the hybrid-store database.

US Pat. No. 9,135,319

SYSTEM AND METHOD FOR EXECUTING TRANSFORMATION RULES

SAP SE, Walldorf (DE)

1. A computer-implemented method performed by at least one processor, the method comprising the following operations:
receiving a request to develop a consumer service;
presenting a plurality of predefined transformation rules;
receiving a selection to assign a predefined transformation rule from the plurality of predefined transformation rules to
the one or more attributes;

presenting a plurality of different technologies compatible with the predefined transformation rule;
receiving a selection of a specific technology from the plurality of different technologies presented to the consumer;
presenting attributes of business objects associated with the specific technology;
receiving a selection of one or more attributes of the business objects;
assigning the predefined transformation rule to a portion of the consumer service compatible with the specific technology,
wherein the portion comprises the one or more attributes of the business objects;

when a user accesses the consumer service, determining a data value based on the predefined transformation rule operating
on the one or more attributes of the business objects, and the data value is generated independent of modifying the one or
more attributes of the business objects, the data value provides comprehensible information to users;

receiving a request to identify a transformation rule assigned to the transformed portion of the service;
identifying the predefined transformation rule and the specific technology in response to at least the request;
identifying at least one service different from the consumer service dependent on the transformed portion of the service;
and

presenting the dependencies of the at least one different consumer service to a user to identify a where-used list.

US Pat. No. 9,483,329

CATEGORIZING AND MODELING INTEGRATION ADAPTERS

SAP SE, Walldorf (DE)

1. A method of modeling and storing characterized adapters, the method comprising:
receiving, by a user request module of a server, an adapter-related information associated with an adapter, wherein receiving
adapter-related information associated with an adapter include determining a modeling complexity for the adapter;

determining, by a communication module of the server, communication patterns associated with the adapter, wherein determining
communication patterns associated with the adapter includes identifying communication styles and bridges for the adapter,
and determining one or more processing patterns for the adapter;

applying, by a quality of service module of the server, quality-of-service patterns to the communication patterns, wherein
applying quality-of-service patterns to the communication patterns includes checking reliability messaging for the adapter,
checking idempotency requirements for the adapter, and checking messaging re-sequencing for the adapter;

configuring, by an adapter flow module at the server, an adapter flow for the adapter;
providing, by a visualization module of the server, a visualization of the adapter flow for the adapter to a client device;
and

storing characterization information determined for the adapter in a characterization data store of the server, wherein the
stored characterization information is used in a separation of an integration process and an adapter flow for modularity,
deployment options, and potentially heterogeneous system setups, along same semantics.

US Pat. No. 9,384,575

SPACE CONSTRAINED SMALL FORMAT VISUAL ANALYTIC LABELING

SAP SE, Walldorf (DE)

1. A method comprising:
receiving, in a visual analytic handler of a label engine in communication with a visual analytic database, a visual analytic
framework comprising a plurality of space constrained regions;

receiving, in the visual analytic handler from the visual analytic database, analytic data and metadata, wherein the metadata
comprises a plurality of descriptions of the analytic data including a sub title, a measure value, and a chart comparing three
values; receiving, in a label rule handler of the label engine in communication with a rule database, a plurality of labeling
rules referencing the sub title, the measure value, and the chart;

transforming, in the label rule handler, the plurality of labeling rules into a plurality of transformed labeling rules, according
to the visual analytic framework;

analyzing, in the label engine, the metadata and the plurality of space constrained regions according to the plurality of
transformed labeling rules to generate a set of labels, wherein a first transformed labeling rule determines display of the
sub title with a dimension value followed by parent dimension values in parenthesis, a second transformed labeling rule determines
that the three values be shown as a contribution of dimension values, and wherein a third transformed labeling rule determines
whether a label of the chart is an actual value or in the alternative is a percentage value; and

generating a visual analytic based on the analytic data, the plurality of constrained regions, and the set of labels.

US Pat. No. 9,213,764

ENCRYPTED IN-MEMORY COLUMN-STORE

SAP SE, Walldorf, DE (US...

1. A computer-implemented method comprising:
providing a database comprising encrypted plaintext;
causing an engine to receive a first input comprising a database query including an expression;
causing the engine to receive a second input comprising the plaintext encrypted according to a first encryption scheme;
causing the engine to receive a third input comprising the plaintext encrypted according to a second encryption scheme; and
causing the engine to process the expression, the first encryption scheme, and the second encryption scheme according to an
algorithm in order to select an encrypted layer on which to execute the database query.

US Pat. No. 9,177,037

IN-MEMORY RUNTIME FOR MULTIDIMENSIONAL ANALYTICAL VIEWS

SAP SE, Walldorf (DE)

1. A computer program product comprising a non-transitory machine-readable medium storing instructions that, when executed
by at least one programmable processor, cause the at least one programmable processor to perform operations comprising:
initiating, upon receipt of a data request, an in-memory multidimensional analytical view (MDAV) runtime, the initiating occurring
in-memory at a search engine server of a business software framework;

preprocessing, by the in-memory MDAV runtime, data necessary for responding to the data request, the in-memory MDAV runtime
creating a calculation model for execution by a calculation engine of the search engine server;

aggregating, by the calculation engine, the data necessary for responding to the data request and passed to an application
server MDAV runtime, the aggregating comprising the in-memory MDAV runtime executing a complex multidimensional analytical
view in a single step using the calculation engine wherein the aggregating operations are executed at the search engine server
prior to replicating data structures to an application server;

storing changes made to the data necessary for responding to the data request in a temporary index at the search engine server,
wherein the calculation model refers to the temporary index in reading the data necessary for responding to the data request;
and

generating a final result, by the application server MDAV runtime implemented at the application server, the generating being
based at least in part on the aggregated data wherein the final result is ranked using term frequency-inverse document frequency
weighting, and wherein the final result comprises a snippet in which a search term of the data request is highlighted.

US Pat. No. 9,164,877

BUSINESS APPLICATION INSPECTION AND MODIFICATION

SAP SE, Walldorf (DE)

1. A computer program product comprising a non-transitory machine-readable storage medium storing instructions that, when
executed by at least one programmable processor, cause the at least one programmable processor to perform operations comprising:
displaying, within a business application being executed in a business application inspection and modification environment,
an inspection and modification window;

listing, within the inspection and modification window, application code relating to a current navigation point within the
business application, wherein the application code includes one or more script languages;

receiving, via one or more user inputs, modifications to the application code, the modifications comprising an insertion of
a code snippet or segment for testing at the current navigation point;

and resuming execution of the business application from the current navigation point to test how the received modifications
to the application code affect operation of the business application.

US Pat. No. 9,116,935

METHOD AND SYSTEM TO PROMOTE DATABASE COST SAVINGS

SAP SE, Walldorf (DE)

1. A method comprising:
receiving an indication of data corrections made to a database, the data corrections comprising changes to a first field associated
with the database or changes to a second field associated with the database;

receiving an indication that the data corrections to the database were verified;
determining, via the processor, a first amount of points to be awarded to a first user making the data corrections and a second
amount of points to be awarded to a second user making the verification of the data corrections, wherein the first amount
of points are based on a first weight of the first field and a second weight of the second field; and

awarding, via the processor, the first amount of points to the first user and the second amount of points to the second user,
wherein awarding the first amount of points to the first user and awarding the second amount of points to the second user
comprises:

updating a first database record associated with the first user to indicate a total amount of points awarded; and
updating a second database record associated with the second user to indicate a total amount of points awarded.

US Pat. No. 9,467,483

ABAP CHANNELS FOR EVENT SIGNALING

SAP SE, Walldorf (DE)

1. A computer-implemented method, comprising:
establishing a first push channel on a first application server for connecting a first client to the first application server;
establishing a first messaging channel on the first application server, wherein the first messaging channel communicates with
the first push channel, the first push channel and the first messaging channel to form a first session corresponding to the
first client;

establishing a second push channel on a second application server for connecting a second client to the second application
server, wherein the first and second application servers communicate on a communication network;

establishing a second messaging channel on the second application server, wherein the second messaging channel communicates
with the second push channel, the second push channel and the second messaging channel to form a second session corresponding
to the second client; and

exchanging messages between the first messaging channel and the second messaging channel to form a connection between the
first client and the second client;

wherein the first and second push channels implement a WebSocket protocol to establish a bi-directional communication between
the first and second clients and first and second application servers, respectively;

wherein the at least one of the establishing the first push channel, the establishing the first messaging channel, the establishing
the second push channel, the establishing the second messaging channel, and the exchanging is performed on at least one processor.

US Pat. No. 9,442,948

RESOURCE-SPECIFIC CONTROL BLOCKS FOR DATABASE CACHE

SAP SE, Walldorf (DE)

1. A method for a database system, comprising:
receiving an instruction to load a page from a database datastore into a database cache;
allocating the page within the cache;
after the receiving of the instruction to load the page from the database datastore into the database cache, associating the
page in the database cache with a resource type and determining the resource type associated with the page; and

after the determining of the resource type associated with the page, allocating a control block for the page within the cache
based on the determined resource type,

wherein the allocated control block in a case that the resource type is a first resource type is different from the allocated
control block in a case that the resource type is a second resource type; and

wherein the allocating a control block for the page within the cache based on the determined resource type comprises:
allocating a control block that is for the page and includes information that is:
used for cache management.

US Pat. No. 9,436,746

NEXT GENERATION ARCHITECTURE FOR DATABASE CONNECTIVITY

SAP SE, Walldorf (DE)

1. A method of importing data using a database management system (“DBMS”) with integrated Extract, Transform and Load (“ETL”)
functionality, the method comprising:
receiving a command at a DBMS comprising an integrated ETL function to access data, wherein the command to access data comprises
an SQL or SQL-like query and the query comprises a from statement that indicates a job name associated with the ETL function;

performing a lookup of the command in a data dictionary associated with the DBMS to determine that the command is to access
data via the integrated ETL function;

loading an executable file associated with the command into the DBMS, wherein the command is determined to access data via
the integrated ETL function;

executing, via a processor, the executable file associated with the ETL function in a memory space of the DBMS; and
receiving the data associated with the command.

US Pat. No. 9,342,707

SEARCHABLE ENCRYPTION FOR INFREQUENT QUERIES IN ADJUSTABLE ENCRYPTED DATABASES

SAP SE, Walldorf (DE)

1. A computer-implemented method for selecting encryption to perform an operator during execution of a database query, the
method being executed using one or more processors and comprising:
determining, by the one or more processors, a current encryption type of a column that is to be acted on during execution
of the database query, the column storing encrypted data;

determining, by the one or more processors, a minimum encryption type for performance of the operator on the column;
selecting, by the one or more processors, a selected encryption type based on the current encryption type, the minimum encryption
type, and a budget associated with the column; and

performing, by the one or more processors, the operator based on the selected encryption type.

US Pat. No. 9,335,988

MANAGING BUILD VARIANTS IN A COMMON REPOSITORY

SAP SE, Walldorf (DE)

1. A method implemented by a computing system in response to execution of program code by a processor of the computing system,
the method comprising:
determining first coordinates in a repository coordinate system of a repository, the first coordinates associated with a seed
component corresponding to a target build result of a first code building system, the seed component comprising a projection
method between the repository coordinate system and a variant coordinate system of the first code building system, and the
projection method to generate sub-space coordinates of the repository coordinate system within a respective sub-space of a
given seed component based on given coordinates of the given seed component and input coordinates of the variant coordinate
system;

determining second coordinates in the variant coordinate system, the second coordinates associated with an execution environment
of the target build result;

converting the second coordinates to third coordinates in the repository coordinate system using the projection method and
using the first coordinates and the second coordinates as input to the projection method, the third coordinates residing in
a sub-space associated with the seed component;

storing the target build result in the repository in association with the third coordinates; and
determining fourth coordinates in the repository coordinate system associated with a second seed component corresponding to
a second target build result of the first code building system, the second seed component comprising a second projection method
between the repository coordinate system and the variant coordinate system of the first code building system the second projection
method to generate second sub-space coordinates of the repository coordinate system within a respective second sub-space of
a given second seed component based on given second coordinates of the given second seed component and input coordinates of
the variant coordinate system.

US Pat. No. 9,317,711

PRIVACY RESTRICTIONS FOR COLUMNAR STORAGE

SAP SE, Walldorf (DE)

1. A non-transitory computer-readable medium to store instructions, which when executed by a computer, cause the computer
to perform operations comprising:
split a protected column into a random key column comprising random keys and an encrypted value column comprising encrypted
values, wherein the encrypted value column of the protected column is specified with access restricting metadata;

store the random keys in the random key column in a first columnar table;
store the random keys in the random key column and the encrypted values in the encrypted value column in a second columnar
table in consecutive memory locations;

determine whether the received query comprises operations on the encrypted value column specified with the access restricting
metadata; and

based on the determination, restrict execution of the query and display a constraint violation.

US Pat. No. 9,225,821

MAXIMIZING INFORMATION GAIN FOR CONTINUOUS EVENTS

SAP SE, Walldorf (DE)

1. A system for maximizing information gain for messages, the system comprising:
at least one processor;
a non-transitory computer-readable medium including instructions executable by the at least one processor, the instructions
configured to implement,

an information processing unit configured to receive a plurality of messages from at least one source, each of the plurality
of messages including a plurality of attributes; and

an integrated optimizer configured to receive an information gain model representing information gain of the plurality of
messages, and output a message schedule for displaying at least a subset of the plurality of messages on a display terminal
including calculating a significance and display time for each of the plurality of messages using the information gain model
and the plurality of attributes such that the information gain is maximized,

wherein the calculated significance determines which of the plurality of messages are included in the message schedule and
the display time provides a time period for which each message of the subset is displayed.

US Pat. No. 9,110,847

N TO M HOST SYSTEM COPY

SAP SE, Walldorf (DE)

1. A computing system comprising:
a source database system comprising N hosts and associated with a first plurality of database services, where N is an integer
greater than one, the source database system comprising:

a first memory storing first processor-executable program code; and
a first processor to execute the first processor-executable program code in order to cause the source database system to:
create a backup of the source database system; and
a target database system comprising M hosts, where M is an integer less than N, the target database system comprising:
a second memory storing second processor-executable program code; and
a second processor to execute the second processor-executable program code in order to cause the target database system to:
read a topology of the source database system from the backup, the topology assigning the first plurality of database services
to the N hosts;

configure the M hosts of the target database system to include the first plurality of database services; and
perform a database recovery of the target database system using the backup of the source database system,
wherein reading of the topology of the source database system from the backup comprises:
starting of a master host of the target database system;
initialization of a master name server of the master host; and
reading of the topology from the master name server.

US Pat. No. 9,104,567

MEMORY-LEAK IDENTIFICATION

SAP SE, Walldorf (DE)

1. A method of identifying a memory leak in a data structure, the method comprising:
accessing a listing of a computer program, the computer program including program elements that create the data structure
and operate on the data structure to include one or more objects as components of the data structure;

identifying at least one object-adding program element that adds at least one object to the data structure and at least one
object-removing program element that removes at least one object from the data structure;

injecting data-structure bookkeeping code into the at least one object-adding program element and the at least one object-removing
program element, the data-structure bookkeeping code operating to track a change in a size of the data structure with a reference
to a corresponding location in an execution path of the computer program;

executing the computer program with the injected data-structure bookkeeping code to determine a first cumulative change in
the size of the data structure at a first location in the execution path of the computer program by summing tracked changes
at the first location; and

using the first cumulative change to identify the first location as a source of the memory leak in the data structure, the
memory leak corresponding to an increasing allocation of memory beyond a threshold value for leaking memory.

US Pat. No. 9,069,844

FACILITATING EXTRACTION AND DISCOVERY OF ENTERPRISE SERVICES

SAP SE, Walldorf (DE)

1. A computer-implemented method for improving keyword searches for enterprise services, the method comprising:
receiving user input;
processing, by one or more processors, the user input to provide a set of terms, the processing comprising:
identifying one or more incoming concepts based on the user input;
processing each of the one or more incoming concepts to identify one or more paths, each path being associated with at least
one of the one or more incoming concepts;

populating a first matrix based on the one or more paths;
populating a second matrix based on probabilities associated with the one or more paths;
generating a third matrix based on the first matrix and the second matrix, the third matrix comprising one or more potential
concepts;

ranking the one or more potential concepts;
identifying one or more outgoing concepts based on the one or more potential concepts based on the ranking; and
defining a second set of facts based on the one or more outgoing concepts;
querying, by the one or more processors, a knowledge base based on each term of the set of terms to define a first set of
facts, each fact of the first set of facts corresponding to a term in the set of terms and comprising instance data associated
with a concept;

selectively processing, by the one or more processors, a set of concepts selectively provided based on the user input to provide
a set of ranked concepts;

generating a query based on one or more of the first set of facts, the second set of facts and the set of ranked concepts;
processing, using the one or more processors, the query to generate search results, the search results comprising one or more
enterprise services stored in an enterprise service repository; and

transmitting information associated with each of the one or more enterprise services for display to a user.

US Pat. No. 9,053,151

DYNAMICALLY JOINED FAST SEARCH VIEWS FOR BUSINESS OBJECTS

SAP SE, Walldorf (DE)

1. A computer implemented method, comprising:
defining an anchor transactional view for at least one business object data structure, the anchor transactional view being
a standard pre-defined search view of stored data within physical tables of a database, the anchor transactional view having
a plurality of anchor fields, each anchor field representing a data source, each anchor field being associated with a field
of an anchor search view representing underlying business object nodes of a data source connected by database join functions;

receiving a search request from a client, the search request including an indication of including an additional at least one
extension field to the anchor search view, the anchor search view and at least one extension field representing a virtual
fast search infrastructure view of the stored data within the physical tables of the database; and

responsive to the received indication of the at least one extension field, adding an additional view of a data structure to
the anchor transaction view by dynamically executing a database join at runtime, the additional view having at least one additional
field, wherein each additional field is associated with one of the extension fields.

US Pat. No. 9,436,347

METHODS AND SYSTEMS FOR ENTERING OBJECT ASSIGNMENTS

SAP SE, Walldorf (DE)

1. A computer-implemented method for creating an assignment between a first object hierarchy and a second object hierarchy,
the method comprising the following operations performed by at least one processor:
receiving, based on input from a user, a selection of a first object in the first object hierarchy;
determining a sub-set of object types associated with an object type of the selected first object;
identifying a folder object in the second object hierarchy that has a sub-hierarchy with at least a second object having an
object type corresponding to the determined sub-set of object types;

providing instructions to display to the user an indication symbol pointing to the identified folder object and sub-hierarchy
with second object having an object type corresponding to the determined sub-set of object types;

in response to a selection of the identified folder object by the user, storing data specifying an assignment between the
first object in the first object hierarchy and at least one of the selected folder object in the second object hierarchy or
the second object in the sub-hierarchy of the second object hierarchy;

providing instructions to display a first assignment symbol representative of a defining edge between the first object and
the folder object;

providing instructions to display a second assignment symbol representative of respective dependent edges between the first
object and a plurality of sub-objects in the sub-hierarchy of the second object hierarchy;

assigning a unique identifier to the defining edge;
assigning a unique identifier to each of the dependent edges; and
storing the defining and depending edges in a database table using the respective unique identifiers as keys, whereby the
database table includes a column for storing the unique identifier of the defining edge for identification of the dependent
edges that depend from the defining edge.

US Pat. No. 9,426,254

METHODS AND SYSTEMS FOR BUILDING A SOFTWARE APPLIANCE

SAP SE, Walldorf (DE)

1. A computer implemented method comprising:
installing a software appliance on a first computer system, the software appliance including database software and a business
application;

configuring the software appliance on the first computer system to a predetermined configuration of the business application
and the database software;

detaching the software appliance from an operating system of the first computing device, wherein the detaching includes collecting
metadata associated with the software appliance, the operating system and hardware of the first system and detaching the collected
metadata from the operating system and the hardware of the first system while preserving content utilized by the business
application, the collected metadata providing a test to be performed; and

storing the detached software appliance and the collected metadata on computer readable medium to enable the detached software
application to be deployed on a different computer system and to allow the different computer system to run the test provided
by the collected metadata;

wherein:
the database software is in-memory database software and includes a utility tool set,
the business application uses the in-memory database software and the utility tool set to perform the business application
operations

the test is selected from a group consisting of: determining whether the software appliance is compatible with the different
computer system, determining whether the different computer system comprises certified hardware, determining whether the hardware
and/or operating system of the different computer system meet minimum operating requirements for the software appliance, determining
whether hardware of the different computer system has sufficient storage, and determining whether network settings for the
different computer system are correct,

the software appliance is not deployed on the different computer system if the test fails.

US Pat. No. 9,372,787

SYSTEM AND METHOD FOR AUTOMATING TESTING

SAP SE, Waldorf (DE)

1. A method to automate software testing without changing browser automation code, the method comprising:
receiving browser automation code to automatically test a software application executed in a web browser, the browser automation
code comprising computer code that defines a specific sequence of events for testing the software application;

receiving a first parameter to indicate a first type of web browser;
executing, via a processor, the browser automation code in the first type of web browser via a framework comprising one or
more object classes that interfaces between the browser automation code and the first type of web browser by emulating binaries
associated with the first type of web browser based on the received first parameter, where executing the browser automation
code in the first type of web browser comprises creating, via the one or more object classes, a first browser specific runtime
environment to communicate between the emulated binaries and the browser automation code, and where the browser automation
code executed in the first type of web browser is the received browser automation code;

receiving a second parameter to indicate a second type of web browser; and
executing the browser automation code in the second type of web browser via the framework that interfaces between the browser
automation code and the second type of web browser by emulating binaries associated with the second type of web browser based
on the received second parameter where the browser automation code executed in the second type of web browser is the received
browser automation code, where executing the browser automation code in the second type of web browser comprises creating,
via the one or more object classes, a second browser specific runtime environment to communicate between the emulated binaries
and the browser automation code.

US Pat. No. 9,280,676

DEVELOPMENT OF BUSINESS APPLICATIONS

SAP SE, Walldorf (DE)

1. A computer system including instructions recorded on a non-transitory computer-readable medium and executable by at least
one processor, the system comprising:
a security compliant manager configured to cause the at least one processor to manage development of business applications
based on security relevance and security rules for one or more entities used by a security enforcement framework for each
business application, wherein the security compliant manager includes:

a security relevance handler configured to define the security relevance for data types associated with business objects by
ensuring that the one or more entities of each business application are classified in reference to the security relevance
of the data types for the business objects;

a security rules handler configured to define the security rules for the data types associated with the business objects by
assigning the security rules to each entity of each business application classified by the security relevance of the data
types for the business objects;

a validation handler configured to define validation and test fulfillment of the security rules by providing one or more security
runtime modules for each security rule defined by the security rules handler to ensure validation and test fulfillment of
each security rule assigned to each entity of each business application classified by the security relevance of the data types
for the business objects, wherein the security relevance classification is applied at multiple different levels of the business
application including on a data type level and a user interface level; and

a security compliant observer configured to:
assist with ensuring validation and test fulfillment of each security rule by tracking assignment and invocation of each security
runtime module, and

manage a set of security plug-ins integrated for multiple common frameworks to ensure each security rule is invoked by a plug-in
from the set of security plug-ins and is fulfilled at both design time and runtime.

US Pat. No. 9,218,372

SYSTEM AND METHOD OF RECORD MATCHING IN A DATABASE

SAP SE, Walldorf (DE)

1. A computer-implemented method of record matching in a database, the computer-implemented method being implemented by a
computer program that is stored by a memory of a computer system and executed by a processor of the computer system, the computer-implemented
method comprising:
generating, by the computer system, a plurality of regular expressions from a plurality of records, wherein each of the plurality
of regular expressions corresponds to a corresponding one of the plurality of records;

generating, by the computer system, a combined regular expression by combining the plurality of regular expressions, wherein
generating the combined regular expression comprises generating the combined regular expression by performing a union operation
on the plurality of regular expressions;

generating, by the computer system, a combined finite state representation from the combined regular expression;
processing, by the computer system, the combined finite state representation to identify that a first record matches a second
record in the plurality of records;

generating a subset of the plurality of records that does not contain matches by processing the plurality of records using
the combined finite state representation; and

checking whether a new record is a duplicate before adding it to the plurality of records by processing the new record using
the combined finite state representation.

US Pat. No. 9,164,752

AUTOMATIC TRAINING PROPOSAL BASED ON SOFTWARE UPDATE ERRORS

SAP SE, Walldorf (DE)

1. A non-transitory computer-readable medium containing instructions to configure a processor to perform operations comprising:
preparing a transport request including one or more objects configured to provide an update of an application, the transport
request associated with one or more metrics, each of the one or more metrics having a metric value;

determining whether the transport request includes at least one error by at least evaluating the metric value for each of
the one or more metrics and comparing the metric value for each of the one or metrics with a threshold value; and

proposing, based on the determining, at least one training course when the transport request includes the at least one error,
wherein the evaluating the metric value includes predicting the metric value before the transport request is sent from a first
system to a second system, and

wherein the predicting the metric value includes assigning a quality rating based on a period of time during which the metric
value does not change.

US Pat. No. 9,165,050

DATA AVAILABILITY DURING COLUMNAR TABLE MERGES

SAP SE, Walldorf (DE)

13. A computer-implemented method comprising:
copying, to a shadow second delta part of a columnar table as part of a merge operation of a first delta part and a first
main part of the columnar table, any uncommitted rows in the first delta part;

writing, to a second delta part of the columnar table, any data manipulations occurring during the merge operation;
completing the merge operation, the completing comprising copying, to a second main part of the columnar table, any row in
the first main part not marked for deletion in the first delta part, and adding, to the second main part, any committed row
in the first delta part;

linking the second delta part to the shadow second delta part after completing the merge operation; and
switching to a new delta part and a new main part using an atomic set of operations, the new delta part comprising the linked
second delta part and shadow second delta part, and the new main part comprising the second main part.

US Pat. No. 9,553,766

DETERMINED CONFIGURATION UPDATE FOR EDGE COMPONENTS

SAP SE, Walldorf (DE)

1. A system for configuring an edge component, the system comprising:
the edge component having a configuration, the edge component being coupled to each of a device and a network backend system;
and

the network backend system having a source configuration used to update the configuration of the edge component,
wherein:
the configuration is implemented to adapt a data signal into a corresponding readable signal for storage on the network backend
system;

the configuration of the edge component is updated when the source configuration is changed;
the edge component includes subcomponents comprising:
a device adapter to adapt data received from the device to a readable form;
a data processor to adjust the adapted data according to network requirements; and
a network module to transmit the adjusted data to the network backend system; and
the edge component obtains the configuration from a configuration portion of the network backend system by:
providing, over the network module, a status update to the network backend system; and
querying the configuration portion of the network backend system for at least one of: component binaries, at least one subcomponent
configuration, and an edge component configuration, wherein the status update is status information from at least one of the
edge component and the subcomponents.

US Pat. No. 9,552,162

SPLITTING-BASED APPROACH TO CONTROL DATA AND STORAGE GROWTH IN A COMPUTER SYSTEM

SAP SE, Walldorf (DE)

1. A method comprising:
receiving initial content including a total number of data units for storage;
identifying a number of data chunks;
identifying a size for each of the data chunks, the size for each data chunk indicative of a number of data units for inclusion
in the respective data chunk;

splitting the initial content into the number of data chunks, each data chunk including a portion of the total number of data
units included in the initial content, the portion of the total number of data units based on the size of the data chunk;

storing each of the data chunks in memory in a column associated with a respective data chunk, each column including a plurality
of data chunks of the identified data chunk size for the data chunk associated with the respective column; and

compressing the data chunks included in the memory.

US Pat. No. 9,361,326

SELECTABLE DATA MIGRATION

SAP SE, Walldorf (DE)

1. A computerized method comprising:
determining at least one of a read frequency, a write frequency and a data volume for data persistently stored, the data having
a first format;

selecting a first type of data migration or a second type of data migration, the selecting being derived from at least one
of the read frequency, the write frequency and the data volume for the data persistently stored, the first type of data migration
comprising an incremental conversion, and the second type of data migration comprising a lazy migration;

upgrading an application from a current version to a new version, the application to access the data during execution, the
upgrading occurring during a downtime of the application;

automatically determining whether the first type of data migration or the second type of data migration was selected;
in accordance with a determination that the first type of data migration was selected, transforming the data to a second format
using the first type of data migration during an uptime of the application occurring prior to the downtime of the application;

in accordance with a determination that the second type of data migration was selected, transforming the data to the second
format using the second type of data migration during an uptime of the application occurring after the downtime of the application;
and

outputting the transformed data for storage in a machine-readable medium.

US Pat. No. 9,336,196

METHODS, SYSTEMS, AND APPARATUS FOR OPTIMIZATION USING STATISTICAL ESTIMATION

SAP SE, Walldorf (DE)

16. A non-transitory machine-readable storage medium comprising instructions that, when executed by one or more processors
of a machine, cause the machine to perform operations comprising:
computing a mean and a standard deviation of a length of a plurality of records in a dictionary;
determining a split condition based on the computed mean and the computed standard deviation; and
splitting the dictionary into a plurality of split dictionaries based on the split condition, wherein determining the split
condition comprises:

computing a performance for each combination of a selected split length and a selected block size, wherein the selected split
length is one of a plurality of candidate split lengths and the selected block size is one of a plurality of block candidate
sizes;

ranking the computed performances; and
selecting a combination of split length and block size corresponding to a highest ranking performance.

US Pat. No. 9,336,227

SELECTIVE SYNCHRONIZATION IN A HIERARCHICAL FOLDER STRUCTURE

SAP SE, Walldorf (DE)

1. A computer-implemented method, comprising:
receiving, at a processor, a request to synchronize a first folder object in a first folder structure of a first database
with a first corresponding folder object in a second folder structure of a second database, wherein the first folder structure
is configured to traverse objects stored in the first database and the second folder structure is configured to traverse objects
stored in the second database;

determining, by the processor, that the first folder object contains a first child object that is missing from the first corresponding
folder object;

identifying, by the processor, that the first child object is selected for selective synchronization;
converting, by the processor, the first child object to an orphan object, wherein the orphan object is stored in the first
database but is inaccessible by traversing the first folder structure;

receiving, by the processor, another request to synchronize a second folder object in the first folder structure with a second
corresponding folder object in the second folder structure;

determining, by the processor, that the second corresponding folder object contains a second child object that is missing
from the second folder object;

identifying, by the processor, that the second child object corresponds to the orphan object, or that the second child object
does not correspond to the orphan object;

when the second child object corresponds to the orphan object:
adopting, by the processor, the orphan object as part of the second folder object such that traversing the second folder object
includes visiting the orphan object; and

when the second child object does not correspond to the orphan object:
downloading, by the processor, the second child object from the second database to the first database.

US Pat. No. 9,304,655

GRAPHICAL USER INTERFACE (GUI) THAT RECEIVES DIRECTIONAL INPUT TO CHANGE FACE FOR RECEIVING PASSCODE

SAP SE, Walldorf (DE)

1. A non-transitory computer-readable storage medium comprising instructions stored thereon that, when executed by at least
one processor, are configured to cause a computing system to at least:
generate a graphical user interface (GUI), the GUI including:
a polyhedron, the polyhedron including at least one face and a plurality of other faces; and
a plurality of buttons inside the at least one face and the plurality of other faces, at least some of the plurality of buttons
including characters in a random or pseudorandom sequence, the characters on the plurality of other faces being the same and
in a same sequence as the characters on the at least one face, a new random or pseudorandom sequence of the characters being
generated when a new instance of the polyhedron is generated,

the GUI being configured to receive selections of the characters and directional input to the at least one face and the plurality
of other faces;

receive the selections of the characters and the directional input; and
compare the selections of the characters and the directional input to a stored passcode combination.

US Pat. No. 9,298,478

ADAPTATION OF DATA FLOW OF ONE OR MULTIPLE SYSTEMS WITHIN A SYSTEM LANDSCAPE

SAP SE, Walldorf (DE)

1. A method comprising:
generating a system landscape overview for presentation on a display including a context sensitive menu and an information
window, the system landscape overview being representative of a system landscape comprising a plurality of systems identified
by a unique identifier, the context sensitive menu enables a modification to an import to at least one of the plurality of
systems, the information window and context sensitive menu being generated in response to the modification of the import with
the context sensitive menu comprising a start time for the modification, the information window providing metadata for the
at least one of the plurality of systems, the metadata including a rule for adapting the modification to at least one of the
plurality of systems, the rule including at least one instruction and a time for adapting the modification to the at least
one of the plurality of systems;

receiving, at a processor and from the context sensitive menu, the modification comprising information representative of a
schedule for the import to the at least one of the plurality of systems;

determining, by a calculation engine, a workflow to install the import to at least one of the plurality of systems;
highlighting, based on the received modification, a first system of the plurality of systems in the system landscape overview,
the highlighting of the first system indicating a location of an error associated with the modification within the system
landscape;

receiving, from the context sensitive menu and based on the highlighting, an updated start time for adapting the import to
the at least one of the plurality of systems; and

providing the updated start time to a job scheduler to enable scheduling of the import to the at least one of the plurality
of systems.

US Pat. No. 9,213,581

METHOD AND SYSTEM FOR A CLOUD FRAME ARCHITECTURE

SAP SE, Walldorf (DE)

1. A method in a first cloud frame comprising a plurality of hardware nodes, the method comprising:
the hardware nodes of the first cloud frame conducting communications with each other using only communication channels between
the hardware nodes provided by a private communication network;

the first cloud frame forming a cluster of cloud frames by communicating with at least a second cloud frame separate from
the first cloud frame, wherein communications between the first and second cloud frames only occur across predefined communication
channels interconnected to the private communication network, including:

an application services communication channel for communications between applications running on the first cloud frame and
the second cloud frame;

an administrative services communication channel for communications between management services of the first cloud frame and
the second cloud frame;

a data management services communication channel for exchanging data between the first cloud frame and the second cloud frame.

US Pat. No. 10,055,198

SYSTEMS AND METHODS FOR PROBABLY APPROXIMATE INTENT MATCHING OF PROCUREMENT RULES

SAP SE, Walldorf (DE)

1. A method for quantifying conformity of a software snippet having a plurality of code lines, the method comprising:generating a plurality of OpsHash fingerprints of the software snippet, wherein each OpsHash fingerprint is generated from a respective code line of the software snippet;
dividing the plurality of OpsHash fingerprints into a first group containing OpsHash fingerprints generated from context code lines of the plurality of code lines, and a second group containing OpsHash fingerprints generated from operation-on-context code lines of the plurality of code lines;
applying a probably approximate matching algorithm to the first group;
generating context cardinality sets from the OpsHash fingerprints of the first group;
quantifying a match between each of the context cardinality sets and at least one of a governing definition and a rule/technique definition;
ranking the OpsHash fingerprints of the first group based on the quantifying match;
incorporating one or more code lines of the software snippet with OpsHash fingerprint ranking above a predetermined threshold into a software application; and
executing the software application.

US Pat. No. 9,430,556

SYSTEM FOR SELF-DISTINGUISHABLE IDENTIFIER AND GENERATION

SAP SE, Walldorf (DE)

1. A method that generates a unique self-distinguishable identifier, the method comprising:
retrieving, by a processor, an object having a plurality of entries, the object having an object structure which includes
a sequence of fields for entries of the object, wherein an entry of the object includes one or more filled fields with values;

processing the object to generate unique self-distinguishable identifiers from the entries of the object, wherein processing
the object comprises,

analyzing an entry of the object which includes,
concatenating the filled fields of the object structure in sequence to create a concatenated identifier string of the entry
being analyzed (analyzed entry),

comparing the concatenated identifier string of the analyzed entry with a string dictionary stored in memory, the string dictionary
containing dictionary entries of existing strings,

storing the concatenated identifier string of the analyzed entry in the string dictionary only if the concatenated identifier
string is a unique concatenated string which does not match any dictionary entry in the string dictionary, and

adding a unique sequence identifier to the concatenated identifier string only if the concatenated identifier string is a
non-unique concatenated string by matching a dictionary entry, wherein the concatenated string with the unique sequence identifier
is not added to the string dictionary; and

repeat analyzing an entry of the object until all entries in the object have been analyzed.

US Pat. No. 9,390,239

SOFTWARE SYSTEM TEMPLATE PROTECTION

SAP SE, Walldorf (DE)

1. A method comprising:
maintaining a software system configured according to at least one of a global, regional, and local software system template;
receiving a software system change including a change or addition to at least one of configuration data, programming, and
content of the software system;

when the received software system change is not with regard to the at least one of the global, regional, and local software
system templates, storing the software system change within the repository of the software system and exiting the method;

when the received software system change is with regard to the at least one of the global, regional, and local software system
templates, prior to storing the received software system change:

generating an update request including a representation of the software system change, the representation of the software
system change including an identifier of each software system modification included in the received software system change
and a value of each respective software system modification;

transmitting, via a network, the update request to an update authority to receive permission to store the software system
change; and

receiving, via the network, a response to the update request;
when the response to the update request includes an indication the software system change is not authorized, preventing the
software system change from being stored; and

when the response to the update request includes an indication the software system change is authorized, storing the software
system change within a repository of the software system.

US Pat. No. 9,378,111

METHOD AND SYSTEM FOR EASY CORRELATION BETWEEN MONITORED METRICS AND ALERTS

SAP SE, Walldorf (DE)

1. A method of correlating, for at least one managed system, over a time period, a plurality of monitored computer metrics
and a plurality of associated alerts, the method comprising:
using a computer processor,
detecting a selection of a monitored computer metric by a user,
detecting a selection of a plurality of time periods by the user;
detecting a selection of a plurality of alerts associated with the monitored computer metric, the plurality of alerts selected
by the user;

storing the detected monitored computer metric, the detected time period, and the detected plurality of alerts;
correlating the stored monitored computer metric and the stored plurality of alerts over the stored selected plurality of
time periods;

constructing a graph which displays the correlated monitored computer metric superimposed graphically with a representation
of a number of alerts per time period of the plurality of alerts over the plurality of time periods, the representation comprising
summed up alerts, of the plurality of alerts, stacked one on top of another;

routing the plurality of alerts to a component of a user interface of a client machine for presentation to the user, the component
including an inbox where all alerts are visible; and

transmitting a signal representing an image of the graph to the client machine for presentation to the user.

US Pat. No. 9,311,345

TEMPLATE BASED DATABASE ANALYZER

SAP SE, Walldorf, DE (US...

1. A method for assessing a plurality of database (DB) systems comprising:
identifying a plurality of DB systems, each implemented using a different set of hardware environments and application requirements,
the plurality of DB systems include at least one in-memory database;

for each DB system in the plurality of DB systems, storing a plurality of template files, wherein each template file in the
plurality of template files describes a different set of grammar and syntax for one or more DB statements of a DB language
corresponding to the DB system and each template file comprises a plurality of DB statements expressed in the DB language
of its corresponding DB system, wherein at least one of the DB statements is configured to define a DB schema in the corresponding
DB system using placeholders in place of actual names of data tables that comprise the DB schema;

for a given DB system:
receiving a template file from among the plurality of template files that corresponds to the given DB system;
receiving a metadata file that contains metadata for a DB schema including metadata for one or more DB tables of the DB schema
and metadata for data fields of the DB tables;

generating DB statements using the template file and the metadata file, including substituting placeholders in the template
file with actual names from the metadata file according to the grammar and syntax specified in the template file;

creating first DB statements configured to create an instance of the DB schema and second DB statements configured to perform
operations on the DB tables of the DB schema;

instantiating the DB schema on the DB system by executing the first DB statements;
executing the second DB statements to perform operations on the DB tables of the DB schema; and
reporting on the DB system's performance of execution of the second DB statements, including memory usage of the DB system
when executing the second DB statement; and

comparing performance of each DB system in the plurality of DB systems for analysis by a user.

US Pat. No. 9,298,856

INTERACTIVE DATA EXPLORATION AND VISUALIZATION TOOL

SAP SE, Walldorf (DE)

1. A computer-implemented method, comprising:
retrieving filtered data that conforms to parameter(s) in a user's search query;
determining a query context for the user's search query;
retrieving relevant data that conforms to the query context;
combining the relevant data and the filtered data,
the combined relevant and filtered data including one or more data sectors or entities;
generating an interactive presentation to display a portion of the combined relevant and filtered data from the perspective
of a data sector or entity associated with the user's search query; and

in response to user-selection of another data sector or entity in the combined relevant and filtered data,
changing the presentation to display another portion of the combined relevant and filtered data from a perspective of the
user-selected another data sector or entity in the combined relevant and filtered data.

US Pat. No. 9,275,364

SEMANTIC CONFIGURATION IN A BUSINESS PROCESS PLATFORM

SAP SE, Walldorf (DE)

1. A computer-implemented method comprising:
accessing a business process platform that includes a business process definition and a provider semantic configuration, the
business process definition modeling a business process as a workflow comprising a plurality of dependent tasks, wherein the
business process definition identifies a user interface definition, a business object definition, and business object data;

generating a group semantic configuration that extends the provider semantic configuration;
applying the group semantic configuration to one or more of the user interface definition, the business object definition,
and the business object data; and

customizing one of the plurality of dependent tasks of the workflow defined in the business process definition based on the
group semantic configuration, the customization altering a meaning of at least one element of the customized dependent task,
wherein the meaning of the customized dependent task comprises task functionality and behavior.

US Pat. No. 9,223,828

DATA FLOW GRAPH OPTIMIZATION USING ADAPTIVE RULE CHAINING

SAP SE, Walldorf (DE)

1. A computer-implemented method for implementation by one or more data processors forming part of at least one computing
system, the method comprising:
receiving, by at least one data processor, a query;
generating, by a calculation engine, an initial data flow graph comprising a plurality of nodes for executing the query, the
calculation engine operating in a calculation engine layer above a logical layer which, in turn, interacts with a physical
table pool;

optimizing, by the calculation engine using an adaptive rule chaining approach, the initial data flow graph using a model
optimizer, the model optimizer iteratively accessing at least one of a plurality of patterns to identify a matching pattern
and executing at least one optimization rule associated with the matching pattern, wherein the adaptive rule chaining approach
identifies patterns requiring less computing resources, wherein each pattern of the patterns specifies a start node within
the initial data flow graph that is used to determine whether the pattern matches, wherein said each pattern specifies how
many preceding and succeeding nodes, if any preceding and succeeding nodes are to be considered to determine whether the pattern
matches, wherein changes to a node by a rule results in a further identification of a matching pattern; and

initiating executing of the query by invoking the calculation engine to execute the optimized data flow graph, wherein the
patterns each have respective priority levels with at least one corresponding priority level being dynamically set based on
the data flow graph, and the matching pattern gives each rule a priority.

US Pat. No. 9,098,559

OPTIMIZED VISUALIZATION AND ANALYSIS OF TABULAR AND MULTIDIMENSIONAL DATA

SAP SE, Walldorf (DE)

1. A computer-implemented method comprising:
defining, by at least one data processing apparatus, a data area of a graphical user interface, the data area having at least
one dimension, the graphical user interface displaying a plurality of text boxes that are associated with respective visual
attributes of a plurality of visual attributes, the visual attributes comprising blinking and change of colors associated
with at least one text box of the plurality of text boxes;

receiving, by at least one data processing apparatus and from a user, a key performance indicator displayed on the graphical
user interface;

modifying, by at least one data processing apparatus, a value of the at least one dimension of the data area of the graphical
user interface when the at least one text box having a visual attribute based on the key performance indicator is dragged
and dropped on the graphical user interface, the visual attribute being one of the plurality of visual attributes; and

generating, by at least one data processing apparatus, an arrangement associated with the value of the at least one data dimension
that has been modified when the at least one text box has been dragged and dropped on the graphical user interface, the arrangement
being displayed on the graphical user interface.

US Pat. No. 9,304,747

AUTOMATED EVALUATION OF GRAMMARS

SAP SE, Walldorf (DE)

1. A method comprising:
accessing first grammar data associated with a first grammar and second grammar data associated with a second grammar, wherein
a grammar comprises one or more rules that define a programming language that corresponds to the grammar;

determining from the first grammar data and the second grammar data whether the first grammar and the second grammar correspond
to the same programming language, wherein determining whether the first grammar and the second grammar correspond to the same
programming language includes:

applying one or more transformational steps to both the first grammar data and the second grammar data;
after each transformational step, determining whether the first grammar data and the second grammar data correspond;
in accordance with a determination that the first grammar data and the second grammar data correspond, determining that the
first grammar and the second grammar both correspond to the same programming language; and

in accordance with a determination that the first grammar data and the second grammar data do not correspond, selecting a
next transformational step in the one or more transformational steps, wherein prior to selecting the next transformational
step:

determining whether there are any remaining transformational steps, and
in accordance with a determination that there are no remaining transformational steps, determining that the first grammar
and the second grammar do not correspond to the same programming language.

US Pat. No. 9,231,830

INTERCONNECTED LANDSCAPE GRAPHICAL INTERFACE GENERATOR

SAP SE, Walldorf (DE)

1. A method comprising:
obtaining a landscape description document on a mobile device, the landscape description document identifying resource elements
and their connections in a computing infrastructure, wherein the landscape description document is provided to a server by
a server client device and is provided by the server to the mobile device, and wherein the landscape description document
is representative of a computing infrastructure of the server client device;

converting the resource elements on the mobile device into landscape user interface graphical representations of the elements;
and

generating an interconnected landscape interface on the mobile device using the graphical representations and connection information
from the landscape description document, wherein the interconnected landscape interface includes landscape user interface
graphical representations of a first resource element including a label describing the first resource element, a graphical
representation of a first connector pointing to a graphical representation of a second resource element including a label
describing the second resource element, on which the first resource element runs, the first connector graphical representation
labeled to describe an installed on relationship between the first resource element and the second resource element, wherein
the labels are derived from the landscape description document, wherein converting the resource elements into graphical landscape
user interface graphical representations includes retrieving geometric shaped landscape skins from a library of skins correlated
to types of resource elements identified in the landscape description document, the method further comprising generating a
graphical representation of a second connector between the first resource element and a graphical representation of a third
resource element including a label describing the third resource element, the graphical representation of the second connector
labeled to describe that the first resource element uses the third resource element, and wherein the graphical representations
in the landscape are linked to further graphical representations to provide an interactive graphical interface to the computing
infrastructure such that selection of a graphical representation pops up a display of additional information about the corresponding
resource element derived from the landscape description document.

US Pat. No. 9,223,484

SELECTOR CONTROL FOR USER INTERFACE ELEMENTS

SAP SE, Walldorf (DE)

1. A computer program product comprising a non-transitory computer-readable storage medium storing one or more programs, the
one or more programs comprising instructions that, when executed by at least one programmable processor, cause the at least
one programmable processor to perform operations comprising:
a first detecting of a first user input at a first location within a user interface, the first location intersecting one or
more of a boundary and an internal area of each of a plurality of user interface elements located within a single window displayed
in the user interface, wherein a shape of each of the plurality of user interface elements are circular;

a first identifying, based on the first detecting, of a first user interface element of the plurality of user interface elements
as active, the first identifying comprising presenting a visual indicator associated with the first user interface element,
the first user interface element overlying and occluding at least part of a second user interface element of the plurality
of user interface elements;

a second identifying of a second user interface element of the plurality of user interface elements as active instead of the
first user interface element, the second identifying comprising presenting a second visual indictor associated with the second
user interface element, the second identifying further comprising showing the second user interface element in the user interface
without the first user interface element overlying and occluding the at least part of the second user interface element;

a second detecting of a second user input at a second location in the user interface determined from the second identifying,
the second location intersecting one or more of the boundary and the internal area of the second user interface element; and

performing a function on the active second user interface element in response to receiving a further user input.

US Pat. No. 9,135,585

MANAGING CONSISTENT INTERFACES FOR PROPERTY LIBRARY, PROPERTY LIST TEMPLATE, QUANTITY CONVERSION VIRTUAL OBJECT, AND SUPPLIER PROPERTY SPECIFICATION BUSINESS OBJECTS ACROSS HETEROGENEOUS SYSTEMS

SAP SE, Walldorf (DE)

1. A non-transitory computer readable medium including program code for providing a message-based interface for exchanging
information about libraries of properties that represent object qualities, which are configured for reuse in further describing
instances or groups of business objects in specific application areas, the non-transitory computer readable medium comprising:
program code for receiving via a message-based interface derived from a common business object model, where the common business
object model includes business objects having relationships that enable derivation of message-based interfaces and message
packages, the message-based interface exposing at least one service as defined in a service registry and from a heterogeneous
application executing in an environment of computer systems providing message-based services, a first message for requesting
information about libraries of properties that represent object qualities, which are configured for reuse in further describing
instances or groups of business objects in specific application areas, that includes a first message package derived from
the common business object model, the first message package hierarchically organized in memory as and including:

at a first hierarchical level within the first message package a property library query message entity; and
at the first hierarchical level within the first message package, a property library package, where the property library package
includes, at a second hierarchical level within the first message package, a property library entity, a name package, a property
data type package, a property package, and a property group package, where the property library entity includes, at a third
hierarchical level within the first message package, a universally unique identifier (UUID) and an identifier (ID);

program code for processing the first message based on the hierarchical organization of the first message package, where processing
the first message includes unpacking the first message package based on the hierarchical organization of the first message
package, the specific grouping and order of the hierarchical elements, and the first message package's derivation from the
common business object model, wherein the particular hierarchical organization of the first message package and the specific
grouping and order of the hierarchical elements are used at least in part to identify the first message; and

program code for sending a second message to the heterogeneous application responsive to the first message, where the second
message includes a second message package derived from the common business object model to provide consistent semantics with
the first message package.

US Pat. No. 9,137,162

NETWORK TRAFFIC ROUTING OPTIMIZATION

SAP SE, Walldorf (DE)

1. A computer-implemented method comprising:
calculating a direct connection cost for network traffic between two points in a network, the network including one or more
nodes of an accelerated application delivery (AccAD) network;

calculating an AccAD connection cost for the network traffic between the two points in the network using at least one node
of the AccAD network;

comparing the calculated direct connection cost and the AccAD connection cost; and
determining whether the direct connection cost is greater than the sum of the AccAD connection cost and a minimum cost threshold
value, wherein the minimum cost threshold value is added to the AccAD connection cost to generate at least one virtual neighborhood
of AccAD network nodes and to prevent accelerated application delivery within the at least one virtual neighborhood by restricting
accelerated application delivery to between only the most costly paths through the AccAD network.

US Pat. No. 9,324,239

AUTHORING TOOL TO STRUCTURE AND CREATE A COMPUTER-BASED TRAINING COURSE, AND HAVING ROLE-SPECIFIC FUNCTIONS

SAP SE, Walldorf (DE)

1. A computer-implemented method to configure an authoring tool to author a computer-based training course, the method including:
storing in a computer device sets of allocation data, wherein each of the sets of allocation data corresponds to a different
respective function in a set of functions of an authoring tool, wherein each of the sets of allocation data includes allocation
settings which each correspond to a different respective one of an instructional design role and a content definition role,
wherein the instructional design role and the content definition role are each for a user to assume with respect to the authoring
tool, each of the allocation settings specifying a respective ability to customize an allocation of the function which corresponds
to the set of allocation data to the role which corresponds to the allocation setting;

receiving an indication of a selection by the user of one of the instructional design role and the content definition role;
in response to the received indication of the role selection,
the computer device generating, based on the allocation settings of the sets of allocation data, a list of one or more functions
in the set of functions available to be selected for allocation to the one of the instructional design role and the content
definition role, and

presenting to the user the list of one or more functions in the set of functions;
receiving an indication of a selection by the user of one of the one or more presented functions; and
in response to the received indication of the function selection, allocating the selected function to the selected role, the
allocating to customize a graphical user interface for the selected role, the customizing to include the selected function
in the graphical user interface when the user assumes the selected role, wherein the selected function is available in the
graphical user interface to be selectively applied by the user for performing an operation on training course information.