Methods and systems may be associated with a cloud platform computing environment. A mapping expression data store may contain mapping expressions previously created by customer tenants of the cloud platform. Each mapping expression may be associated with at least one source mapping element and at least one target mapping element. A mapping expression generator may receive, from a user of a first customer tenant, a mapping expression search request that includes at least one requested source mapping element and at least one requested target mapping element. The mapping expression generator may then search the mapping expression data store based on the at least one requested source mapping element and at the least one requested target mapping element and output a result of the search to the user. The result of the search may include at least one mapping expression created by a customer tenant other than the first customer tenant.
|
11. A computer-implemented method associated with a cloud platform computing environment, comprising:
providing a mapping expression data store containing previously created mapping expressions, each previously created mapping expression including at least one source field, at least one target field and at least one function that transforms the source field into the target field;
receiving from individual customer tenant systems, a set of mapping expressions previously created by a plurality of customer tenants and previously stored on the individual customer tenant systems;
determining a source field and a target field for each mapping expression in the set of received mapping expressions;
indexing the determined source field and the determined target field in the mapping expression data store, wherein the indexed source field and the indexed target field are stored in a mapping expression data store as part of contained mapping expressions;
receiving, from a user of a first customer tenant, a mapping expression search request, via selection at a user interface, to search for previously created mapping expressions, the mapping expression search request including at least one requested source field as a source mapping element and at least one requested target field as a target mapping element;
validating the request includes selection of the at least one requested source field and the at least one requested target field;
responsive to the validation, identifying, in the mapping expression data store, at least one mapping expression including both the at least one requested source mapping element and at the least one requested target mapping element; and
outputting a result of the identification to the user, the result of the identification including at least one previously created mapping expression created by a customer tenant other than the first customer tenant, the output result including the at least one source field selected at the user interface, the at least one target field selected at the user interface, and the at least one function that transforms the source field into the target field as the previously created mapping expression.
17. A non-transitory, computer readable medium having executable instructions stored therein that, when executed by a computer processor cause the processor to perform a method associated with a cloud platform computing environment, the method comprising:
providing a mapping expression data store containing previously created mapping expressions, each previously created mapping expression including at least one source field, at least one target field and at least one function that transforms the source field into the target field;
receiving, from individual customer tenant systems, a set of mapping expressions previously created by a plurality of customer tenants and previously stored on individual customer tenant systems;
determining a source field and a target field for each mapping expression in the set of received mapping expressions;
indexing the determined source field and the determined target field in the mapping expression data store, wherein the indexed source field and the indexed target field are stored in the mapping expression data store as part of the contained mapping expressions;
receiving, from a user of a first customer tenant, a mapping expression search request, via selection at a user interface, to search for previously created mapping expressions, the mapping expression search request including at least one requested source field as a source mapping element and at least one requested target field as a target mapping element;
validating the request includes selection of the at least one requested source field and the at least on requested target field;
responsive to the validation, identifying in the mapping expression data store, at least one mapping expression including both the at least one requested source mapping element and at the least one requested target mapping element; and
outputting a result of the identification to the user, the result of the identification including at least one previously created mapping expression created by a customer tenant other than the first customer tenant, the output result including the at least one source field selected at the user interface, the at least one target field selected at the user interface, and the at least one function that transforms the source field into the target field as the previously created mapping expression.
1. A system associated with a cloud platform computing environment, comprising:
a mapping expression data store containing mapping expressions previously created by a plurality of customer tenants of the cloud platform, each mapping expression including at least one source mapping element and at least one target mapping element and at least one function that transforms the at least one source mapping element into the at least one target mapping element; and
a mapping expression generator and a mapping parser coupled to the mapping expression data store, including:
a computer processor, and
computer memory, coupled to the computer processor, storing instructions that, when executed by the computer processor cause the processor to:
(i) receive, at the mapping parser, from individual customer tenant systems, a set of mapping expressions previously created by the plurality of customer tenants and previously stored on individual customer tenant systems;
(ii) determine a source field and a target field for each mapping expression in the set of received mapping expressions;
(iii) index the determined source field and the determined target field in the mapping expression data store, wherein the indexed source field and the indexed target field are stored in the mapping expression data store as part of the contained mapping expressions;
(iv) receive, from a user of a first customer tenant, a mapping expression search request, via selection at a user interface, to search for previously created mapping expressions, the mapping expression search request including at least one requested source field as a source mapping element and at least one requested target field as a target mapping element,
(v) validate the request includes selection of the at least one requested source field and the at least one requested target field,
(vi) responsive to the validation, identify, in the mapping expression data store, at least one mapping expression including both the at least one requested source mapping element and the at least one requested target mapping element, and
(vii) output a result of the identification to the user, the result of the identification including at least one previously created mapping expression created by a customer tenant other than the first customer tenant, the output result including the source field selected at the user interface, the target field selected at the user interface, and the at least one function that transforms the source field into the target field as the previously created mapping expression.
2. The system of
3. The system of
4. The system of
5. The system of
6. The system of
7. The system of
8. The system of
9. The system of
10. The system of
12. The method of
13. The method of
14. The method of
15. The method of
16. The method of
18. The medium of
receiving, from the user, a sample file including sample source mapping elements and sample target mapping elements and
testing the result of the search using the sample file before outputting the result of the search to the user.
19. The medium of
20. The medium of
|
An enterprise may utilize a cloud platform integration environment to let users perform tasks. For example, the enterprise might let various users execute an application via a cloud computing environment to process purchase orders, adjust human resources information, generate invoices, etc. In some cases, the cloud computing environment will support multiple tenants or customers. A cloud platform integration environment may offer tools to help integrate systems (e.g., an accounting system, a human resources system, etc.) and let those systems exchange information with each other. These tools may include information flows and/or adapters deployed on virtual machines. To help facilitate an accurate exchange of information, message mapping expressions may be defined to create appropriate target data elements from one or more source data elements. These message mapping expressions, however, can be difficult and time consuming for a customer to create—especially when a substantial number of data elements are involved.
It would therefore be desirable to facilitate creation of mapping expressions for a cloud computing environment in a secure, automatic, and efficient manner.
According to some embodiments, methods and systems may be associated with a cloud platform computing environment. A mapping expression data store may contain mapping expressions previously created by customer tenants of the cloud platform. Each mapping expression may be associated with at least one source mapping element and at least one target mapping element. A mapping expression generator may receive, from a user of a first customer tenant, a mapping expression search request that includes at least one requested source mapping element and at least one requested target mapping element. The mapping expression generator may then search the mapping expression data store based on the at least one requested source mapping element and at the least one requested target mapping element and output a result of the search to the user. The result of the search may include at least one mapping expression created by a customer tenant other than the first customer tenant.
Some embodiments comprise: means for receiving, from a user of a first customer tenant, a mapping expression search request that includes at least one requested source mapping element and at least one requested target mapping element; means for searching a mapping expression data store based on the at least one requested source mapping element and at the least one requested target mapping element, the mapping expression data store containing mapping expressions previously created by a plurality customer tenants of a cloud platform, each mapping expression being associated with at least one source mapping element and at least one target mapping element; and means for outputting a result of the search to the user, the result of the search including at least one mapping expression created by a customer tenant other than the first customer tenant.
Some technical advantages of some embodiments disclosed herein are improved systems and methods to facilitate creation of mapping expressions associated with a cloud computing environment in a secure, automatic, and efficient manner.
In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of embodiments. However, it will be understood by those of ordinary skill in the art that the embodiments may be practiced without these specific details. In other instances, well-known methods, procedures, components and circuits have not been described in detail so as not to obscure the embodiments.
One or more specific embodiments of the present invention will be described below. In an effort to provide a concise description of these embodiments, all features of an actual implementation may not be described in the specification. It should be appreciated that in the development of any such actual implementation, as in any engineering or design project, numerous implementation-specific decisions must be made to achieve the developers' specific goals, such as compliance with system-related and business-related constraints, which may vary from one implementation to another. Moreover, it should be appreciated that such a development effort might be complex and time consuming, but would nevertheless be a routine undertaking of design, fabrication, and manufacture for those of ordinary skill having the benefit of this disclosure.
A cloud platform integration environment, such as the SAP® Cloud Platform Integration (“CPI”) environment may provide customer tools to integrate systems and help the systems communicate with each other. To integrate a system, a customer may create an information flow and use adapters to help the systems communication with each other. These flows may then be deployed on Virtual Machines (“VMs”). After a flow is deployed, different systems in a customer's organization may communicate with each other and help the customer run the business smoothly.
A cloud platform integration environment may offer several components that are each responsible for performing a different operation. For example, one such component is message mapping. Message mapping is responsible for transforming an incoming source Extensible Markup Language (“XML”) to a target XML of a different form. For example,
Message mapping may offer a set of standard functions and/or custom functions to help achieve this type of result (and “Concat” is one such function). For example,
To reduce the overhead associated with building such complex mapping expressions, some embodiments described herein provide a mapping expression generator. The mapping expression generator may help automatically provide an appropriate mapping expression for a user based on source xpath and target xpath elements that match values given by the user. For example,
As used herein, devices, including those associated with the system 400 and any other device described herein, may exchange information via any communication network which may be one or more of a Local Area Network (“LAN”), a Metropolitan Area Network (“MAN”), a Wide Area Network (“WAN”), a proprietary network, a Public Switched Telephone Network (“PSTN”), a Wireless Application Protocol (“WAP”) network, a Bluetooth network, a wireless LAN network, and/or an Internet Protocol (“IP”) network such as the Internet, an intranet, or an extranet. Note that any devices described herein may communicate via one or more such communication networks.
The mapping expression generator 420 may store information into and/or retrieve information from various data stores (e.g., the mapping expression data store 430), which may be locally stored or reside remote from the mapping expression generator 420. Although a single mapping expression generator 420 and mapping expression data store 430 are shown in
A user or administrator may access the system 400 via a remote device (e.g., a Personal Computer (“PC”), tablet, or smartphone) to view information about and/or manage operational information in accordance with any of the embodiments described herein. In some cases, an interactive graphical user interface display may let an operator or administrator define and/or adjust certain parameters (e.g., to define how systems interact) and/or provide or receive automatically generated recommendations or results from the system 400. The mapping expression data store 430 may contain electronic data records 432 associated with a mapping expression created by various customers (e.g., with each record containing an expression identifier 434, a source field 436, a target field 438, etc.).
At (A), the user 410 may provide a set of desired source fields and desired target fields to the mapping expression generator 420. The mapping expression generator 420 may then search the mapping expression data store 430 at (B) looking for records 432 that have matching source fields 436 and target fields 438. The results of this search may then be output at (C) to help automate the mapping expression creation process for the user 410.
At S510, the system may receive, from a user of a first customer tenant, a mapping expression search request that includes at least one requested source mapping element and at least one requested target mapping element. According to some embodiments, the source mapping elements are source XML elements and the target mapping elements are target XML elements. At S520, the system may search a mapping expression data store based on the at least one requested source mapping element and at the least one requested target mapping element. The mapping expression data store may contain, for example, mapping expressions previously created by a plurality customer tenants of a cloud platform (each mapping expression being associated with at least one source mapping element and at least one target mapping element).
At S530, the system may output a result of the search to the user. The result of the search may include, for example, at least one mapping expression created by a customer tenant other than the first customer tenant. According to some embodiments, the result of the search includes multiple potential mapping expressions. Moreover, the mapping expression generator might further receive, from the user, a sample file including sample source mapping elements and sample target mapping elements. In this case, the mapping expression generator may test the result of the search using the sample file before outputting the result of the search to the user. For example, at least some of the multiple potential mapping expressions might be removed from the result of the search based on tests using the sample file. In other embodiments, at least some of the multiple potential mapping expressions are removed from the result of the search based on a performance parameter (e.g., speed, resources, memory, disk space, processing power, etc.).
In this way, a mapping expression generator may crowdsource mapping expressions created by multiple cloud platform customers.
At S606, a mapping expression generator searches crowdsourced mapping expressions that match the source and target xpath. If a single match is found at S608, it is executed at S610 using the sample XML provided by user. If the result of the execution does not match the desired output specified by the user at S612, the process ends at S614 and there is no recommendation to the user. If the result of the execution does match the target value specified by the user at S612, the system marks this expression as a match and generates the mapping expression automatically on the User Interface (“UI”) at S616. That is, if the single expression was able to produce the expected result, then this expression is rendered directly in the UI mapping expression editor.
If multiple expressions do not match the user provided source and target xpath at S618, the process ends at S614 and there is no recommendation to the user (that is no previously defined messaging mapping expression matches were found). If multiple expressions match the user provided source and target xpath at S618, all the matching expressions are merged into a single file and that is executed at S620 using the sample payload provided by the user. After execution, expressions that were able to produce the results as expected by the user are selected and displayed to the user at S622. If there are multiple expressions that were able to produce the target values provided by user, then all of these expressions may be sent to the UI (and the user can select one of the expressions to be automatically added to the mapping editor).
As a first step, the system 800 may crowd source all mapping expressions created by all if the customer tenants. These mappings may be parsed by the mapping parser 812, and individual expressions may be extracted by the indexing platform 820. For each of these expressions, the system may determine the source and target xpath and all of this information may be indexed in the director 828.
When a new or existing customer or user 802 is trying to map a source and target using mapping expression editor 846, he or she can use a feature where the user selects a source 842 and target 844 xpath to be mapped. According to some embodiments, the user may also specify a sample input and an expected target output. The user 802 may select a “suggest” icon and the request will be sent to the back-end server 830.
In the server 830, several operations may be performed. For example, the request from the UI may be validated for mandatory information required to search the mapping expressions in the indexing platform 820 directory 828. The search may be performed on the directory 828, for example, using the source and target xpath as a key. If the directory 828 doesn't return any search result, the user 802 will be notified.
If the directory 828 returns any search result, the back-end server 830 may perform a check to determine if single or multiple expressions were returned. If a single expression was returned, it may then be forwarded to the next step for further execution. If Multiple expressions were returned, then of all these expressions may be merged into a single file which is then forwarded to the next step for further execution.
A mapping runtime may be responsible for executing the mapping expression returned from indexing platform 820 using the input provided by the user. After the execution of each of the expressions, the corresponding result is compared against the target value expected by the user 802. If there are matches, then those mapping expressions are transformed into a UI model and sent to the mapping expression editor 846 in the UI for rendering. If there is a single expression that was able to produce the target value provided by the user 802, then this mapping expression is automatically rendered in UI. If there are multiple matches, then all of these mapping expressions are rendered in UI and the user 820 can select expressions as desired (e.g., based on how well each expression performed in terms of execution time, required resources, etc.).
Note that the embodiments described herein may also be implemented using any number of different hardware configurations. For example,
The processor 1110 also communicates with a storage device 1130. The storage device 1130 may comprise any appropriate information storage device, including combinations of magnetic storage devices (e.g., a hard disk drive), optical storage devices, mobile telephones, and/or semiconductor memory devices. The storage device 1130 stores a program 1112 and/or a mapping expression engine 1114 for controlling the processor 1110. The processor 1110 performs instructions of the programs 1112, 1114, and thereby operates in accordance with any of the embodiments described herein. For example, the processor 1110 may receive, from a user of a first customer tenant, a mapping expression search request that includes at least one requested source mapping element and at least one requested target mapping element. The processor 1110 may then search a mapping expression data store 1200 based on the at least one requested source mapping element and at the least one requested target mapping element and output a result of the search to the user. The result of the search may include, for example, at least one mapping expression created by a customer tenant other than the first customer tenant.
The programs 1112, 1114 may be stored in a compressed, uncompiled and/or encrypted format. The programs 1112, 1114 may furthermore include other program elements, such as an operating system, clipboard application, a database management system, and/or device drivers used by the processor 1110 to interface with peripheral devices.
As used herein, information may be “received” by or “transmitted” to, for example: (i) the platform 1100 from another device; or (ii) a software application or module within the platform 1100 from another software application, module, or any other source.
In some embodiments (such as the one shown in
Referring to
The user identifier 1202 and customer might be a unique alphanumeric label that is associated with a user who is searching for a previously defined message mapping expression (e.g., defined by other customers). The source elements 1204 and target elements 1206 may be entered by the user and provide information that can be used to search through previously indexed mapping expressions. The sample file 1208 may provide test inputs and outputs that can be used to evaluate potential matches. The mapping expressions 1210 may represent successful matches that have been found by the system and are therefore available to the user.
Thus, embodiments may facilitate creation of mapping expressions associated with a cloud computing environment in a secure, automatic, and efficient manner. The following illustrates various additional embodiments of the invention. These do not constitute a definition of all possible embodiments, and those skilled in the art will understand that the present invention is applicable to many other embodiments. Further, although the following embodiments are briefly described for clarity, those skilled in the art will understand how to make any changes, if necessary, to the above-described apparatus and methods to accommodate these and other embodiments and applications.
Although specific hardware and data configurations have been described herein, note that any number of other configurations may be provided in accordance with some embodiments of the present invention (e.g., some of the information associated with the databases described herein may be combined or stored in external systems). Moreover, although some embodiments are focused on particular types of message mapping expressions, any of the embodiments described herein could be applied to other types of applications. Moreover, the displays shown herein are provided only as examples, and any other type of user interface could be implemented.
The present invention has been described in terms of several embodiments solely for the purpose of illustration. Persons skilled in the art will recognize from this description that the invention is not limited to the embodiments described, but may be practiced with modifications and alterations limited only by the spirit and scope of the appended claims.
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
10027596, | Apr 27 2016 | EMC IP HOLDING COMPANY LLC | Hierarchical mapping of applications, services and resources for enhanced orchestration in converged infrastructure |
10402380, | May 09 2018 | CARECLOUD CORPORATION | Interactive user interface for schema transformation |
10452646, | Oct 26 2017 | SAP SE | Deploying changes in a multi-tenancy database system |
10467237, | Nov 12 2012 | Pinterest, Inc. | Object relationships and similarities based on user context |
5560005, | Feb 25 1994 | WebMD Corporation | Methods and systems for object-based relational distributed databases |
7720873, | Jun 21 2007 | International Business Machines Corporation | Dynamic data discovery of a source data schema and mapping to a target data schema |
7853553, | Mar 26 2001 | Oracle America, Inc | Engine for converting data from a source format to a destination format using user defined mappings |
7865531, | Aug 27 2007 | SAP SE | Method and system for providing value help features to input fields generated for dynamically selected columns |
8086560, | Jan 31 2006 | International Business Machines Corporation | Schema mapping specification framework |
8122055, | Apr 26 2007 | Microsoft Technology Licensing, LLC | Hosted multi-tenant application with per-tenant unshared private databases |
9201558, | Nov 03 2011 | ACTIAN CORP | Data transformation system, graphical mapping tool, and method for creating a schema map |
9336327, | Nov 30 2007 | Microsoft Technology Licensing, LLC | Mapping and query translation between XML, objects, and relations |
9430114, | Nov 03 2011 | ACTIAN CORP | Data transformation system, graphical mapping tool, and method for creating a schema map |
20020091702, | |||
20030014617, | |||
20030120665, | |||
20030149934, | |||
20030167274, | |||
20030177481, | |||
20040015783, | |||
20040078386, | |||
20040158567, | |||
20050005261, | |||
20050028084, | |||
20050160110, | |||
20050257193, | |||
20060101073, | |||
20060161869, | |||
20060167909, | |||
20060230033, | |||
20060271506, | |||
20070150495, | |||
20070156650, | |||
20070156737, | |||
20070179939, | |||
20070198539, | |||
20070220022, | |||
20070226196, | |||
20080091700, | |||
20080320012, | |||
20090049056, | |||
20090077014, | |||
20090077114, | |||
20090150367, | |||
20090249187, | |||
20100070500, | |||
20100082387, | |||
20100161627, | |||
20100235322, | |||
20100262836, | |||
20110213816, | |||
20110302133, | |||
20120084330, | |||
20120143819, | |||
20120330960, | |||
20130297661, | |||
20130325789, | |||
20140032617, | |||
20140075280, | |||
20140095519, | |||
20140324857, | |||
20150100542, | |||
20150261824, | |||
20170004201, | |||
20170060919, | |||
20170075984, | |||
20170124069, | |||
20170235887, | |||
20180129374, | |||
20180196859, | |||
20180225317, | |||
20180278725, | |||
20190163679, | |||
20190171651, | |||
20190188035, | |||
20190197137, | |||
20190384750, | |||
20190384836, | |||
20190385129, | |||
20190386831, | |||
20200026532, | |||
20200301902, | |||
20200334270, | |||
20210117437, | |||
20210149854, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Nov 09 2020 | MP, DEEPAK | SAP SE | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 054326 | /0731 | |
Nov 10 2020 | SAP SE | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Nov 10 2020 | BIG: Entity status set to Undiscounted (note the period is included in the code). |
Date | Maintenance Schedule |
Dec 24 2027 | 4 years fee payment window open |
Jun 24 2028 | 6 months grace period start (w surcharge) |
Dec 24 2028 | patent expiry (for year 4) |
Dec 24 2030 | 2 years to revive unintentionally abandoned end. (for year 4) |
Dec 24 2031 | 8 years fee payment window open |
Jun 24 2032 | 6 months grace period start (w surcharge) |
Dec 24 2032 | patent expiry (for year 8) |
Dec 24 2034 | 2 years to revive unintentionally abandoned end. (for year 8) |
Dec 24 2035 | 12 years fee payment window open |
Jun 24 2036 | 6 months grace period start (w surcharge) |
Dec 24 2036 | patent expiry (for year 12) |
Dec 24 2038 | 2 years to revive unintentionally abandoned end. (for year 12) |