Patent Publication Number: US-8533257-B2

Title: System and method for interfacing with an enterprise resource planning system

Description:
BACKGROUND 
     The present invention relates generally to the field of data communication. More particularly, the invention relates to a system and method for facilitating user-interaction with an Enterprise Resource Planning (ERP) system or a module of such a system without requiring a proprietary format associated with the ERP system. 
     An ERP system typically includes a centralized database and employs a common computing platform. An ERP system may be used to consolidate all of the operations of a business into an enterprise-wide system environment that is consistent or uniform throughout the enterprise. An ERP system may generally provide features for resource management. Indeed, an ERP system may be described as an integrated computer-based system that facilitates management of resources. The resources managed by an ERP system may include internal or external resources such as materials, tangible assets, financial resources, and human resources. A typical purpose for employing an ERP system is to facilitate information flow among internal and/or external entities. For example, businesses often utilize ERP systems to facilitate sharing and transmission of information between components of the business and outside entities. 
     An ERP system may be resident on a centralized server. However, an ERP system may also be distributed over various servers, which enables a business to customize and assemble different components without requiring inclusion of multiple copies of expensive systems in different areas. Indeed, an ERP system may be distributed across modules (e.g., hardware and software units) that provide various different services. Such modules may communicate via a local area network, an extended network, or the like. Communication with such modules may require that a proprietary format associated with the ERP system be utilized. However, it is now recognized that communication between applications external to an ERP system and certain modules of an ERP system may be desirable without requiring such a proprietary format. 
     BRIEF DESCRIPTION 
     Briefly, present embodiments are directed to facilitating integration of Enterprise Resource Planning (ERP) systems with external applications. Such integration is achieved in accordance with present techniques by creating and/or utilizing a user control in a software framework, which may be stored on a non-transitory computer readable medium and implemented by a processor of a device outside of the ERP system. In accordance with present techniques, the user control is used in the design of other applications external to the ERP system, and enables the external applications to interact with the aspects of the ERP system to perform product configuration. In one embodiment, the user control is configured to receive configurable material and an indication regarding whether a new configuration or a reconfiguration is being requested from an external application. The user control then converts the configurable material into a different format and submits the relevant information along with relevant address information to the ERP system. Specifically, the user control communicates with a server-side scripting component of the ERP system. The server-side scripting component communicates with a database and configurator of the ERP system via an Application Programming Interface (API). Based on the information from the user control and interaction with the database and configurator, the server-side scripting component provides a response object to the user control in a particular data representation or format. The user control converts the response object into a different data format and supplies it to the external application. In some embodiments, the information provided to the server-side scripting component via the user control may include an indication of whether or not a background determination is requested, and the server-side scripting component may respond with user interface information when a background determination is not requested. 
    
    
     
       DRAWINGS 
       These and other features, aspects, and advantages of the present invention will become better understood when the following detailed description is read with reference to the accompanying drawings in which like characters represent like parts throughout the drawings, wherein: 
         FIG. 1  is a block diagram of a network including an ERP system in accordance with present techniques; and 
         FIG. 2  is a block diagram of a user control configured to coordinate sharing of information between an external application and an ERP system in accordance with present techniques. 
     
    
    
     DETAILED DESCRIPTION 
     As discussed in detail below, embodiments of the present technique function to provide data communication and user interaction with an ERP system and/or a particular module of an ERP system in a non-proprietary format. In other words, present techniques facilitate communication between the ERP system and applications that are not associated with the ERP system, wherein the communication received and transmitted by the unassociated application proceeds via a format that is not proprietary with respect to the ERP system. In particular, one embodiment of the present technique is directed to facilitating interaction with an ERP system known as SAP (Systems Applications and Products in Data Processing), which is a product of SAP AG, a software corporation headquartered in Walldorf, Germany. SAP is typically divided into modules including Financial Accounting (FI), Controlling (CO), Production Planning (PP), Materials Management (MM), Sales and Distribution (SD), and so forth. One useful aspect or module of some SAP systems is the SAP Internet Pricing and Configurator (IPC), which enables users to configure products online and compare pricing information. Specifically, the SAP IPC, which may also be referred to as AP7, enables users to compare the prices of certain products across various catalogs and market places. The SAP IPC also typically includes a configurable product accrual function or shopping basket function. 
     Interaction between non-SAP applications and the SAP IPC traditionally requires development of a specialized user-interface for each non-SAP application, wherein the specialized user-interface employs a proprietary format associated with SAP. Such specialized user-interfaces are typically configured to coordinate with an Application Programming Interface (API) associated with the SAP IPC. Further, interaction between a non-SAP application and the SAP IPC generally requires modification or customization of SAP. It is now recognized that it is desirable to integrate the proprietary SAP IPC with non-SAP applications without using SAP&#39;s proprietary communication format with respect to the non-SAP applications. Further, it is now recognized that it is desirable to perform such a function without requiring customization of SAP. 
     As indicated above, present embodiments enable integration of the SAP IPC with non-SAP applications (e.g., computer programs and/or devices), which may be referred to as “external applications.” Specifically, present embodiments facilitate integration of the User Interface and Engine of the SAP IPC with external applications. Such integration is achieved in accordance with present techniques by creating and/or utilizing a user control in a software framework, which may be stored on a non-transitory computer readable medium (e.g., a hard drive, a computer disk, ROM, flash drive) and implemented by a processor of a device (e.g., laptop, desktop, server, control system) outside of an ERP system (e.g., an SAP system). In one embodiment, the Microsoft.NET platform may be employed as the software framework for the user control. In accordance with present techniques, the user control is used in the design of other non-SAP applications (e.g., web pages), and enables the external applications to interact with the SAP IPC User Interface to perform product configuration. Specifically, the user control is configured to receive configurable material (e.g., KMAT) and an indication regarding whether a new configuration or a reconfiguration is being requested from an external application. The user control then submits an HTML (Hyper Text Markup Language) form including the relevant information along with relevant address information to the SAP system. Specifically, the user control communicates with a Java Server Pages (JSP) component, which is provide by the SAP system and communicates with the SAP IPC via an API. Based on the information from the user control and interaction with the SAP IPC, the JSP component provides a response object to the user control in a particular data representation (e.g., name-value pair). The user control converts the response object into XML-based configuration data that is supplied to the external application. In some embodiments, the information provided to the JSP component via the user control may include an indication of whether or not a background determination is requested, and the JSP component may respond with user interface information in HTML when a background determination is not requested. 
     References in the specification to “one embodiment,” “an embodiment,” or “an exemplary embodiment,” indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to affect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described. 
     Turning now to the drawings and referring to  FIG. 1 , a block diagram of a system  100  in accordance with present embodiments is illustrated. The system includes an ERP system  102  that is configured to communicate with external computers  104  and internal computers  106 . A typical arrangement of the ERP system  102  may include a three-tiered architecture. For example, in the illustrated embodiment, the ERP system  102  includes a presentation tier, a logic tier, and a data tier. Each tier may include one or more servers and/or electronic data storage. In  FIG. 1 , the presentation tier is represented by a web server  108 , which includes a server-side scripting language component. Specifically, in the illustrated embodiment, the server-side scripting language component  110  is a JSP component  110 . The logic tier is represented by an application server  112 , which includes a pricing data and configurator component. Specifically, in the illustrated embodiment, the pricing data and configurator component includes an IPC  114  such as that provided by SAP. The data tier includes a database  116 . It should be noted that all of these components may be resident on a single physical server or distributed over various different physical servers. Further, it should be noted that the pricing data and configurator component or IPC  114  may include all or a portion of the database  116 . 
     The web server  108  may provide a user interface for the internal computers  106  and the outside computers  104 . The internal computers  106  may directly access the web server via a local area network or the like, while the outside computers  104  may access the web server via the Internet  122  or the like. Cumulatively, the outside computers  104  and the internal computers  106  may be referred to as user computers  124 . The main function of the web server  108  may include translating tasks and results into data and graphical representations (e.g., text and figures) that a user is capable of readily understanding. To facilitate achieving this purpose, in the illustrated embodiment, the web server  108  includes the JSP component  110 . The JSP component  110  communicates with the IPC  114  and user controls  126  in accordance with present embodiments. The user controls  126  reside on each of the user computers  124  and enable communication outside of a proprietary format of the ERP system  102 . The JSP component  110  is a Java-based technology that utilizes server-side scripting language to provide dynamically generated web pages based on HTML, XML, or other document types. The JSP component  110  performs tasks on the server-side before providing generated web pages. Further, the JSP component  110  enables interleaving of certain code and actions with static web markup content. This results in a page being compiled and executed on the web server  108  to deliver a document. 
     The application server  112  performs various tasks and may include various different applications. Among other things, the application server  112  operates to coordinate applications, process commands, perform calculations, perform logical operations, make evaluations, and so forth. The application server  112  also transfers and processes data between the web server  108  and the database  116 . For example, the application server  112  (or features of the application server) may access the database  116  based on information provided via the web server  108 . Specifically, for example, data associated with a desired product may be submitted from one of the user computers  124  to the web server  108 , which provides the data to the application server  112  and the IPC  114 . In turn, the IPC  114  may provide pricing information based on a configuration function and information stored in the database  116 . Depending on the demands of the application server  112 , the database  116  stores and retrieves data from a file system or the like. Desired information is passed to the application server  112  for processing and may eventually return for storage in the database  116 . 
     As indicated above, in the illustrated embodiment, the application server  112  includes the IPC  114 , which may include a database component and a configurator. Pricing data and configurator components, such as the IPC  114 , are typically used in various different ERP system applications to configure products. Indeed, numerous SAP applications may utilize the IPC  114 . The IPC  114  is generally associated with a Customer Relationship Management (CRM) component of SAP. Thus, the IPC  114  may be described as an SAP CRM concept that is used to get price information about a sales order, quote, or contract being created by a customer. The stored price information and so forth may be considered the database portion of the IPC  114 . The configurator part of the IPC  114  may be considered to be an active component that assists customers in deciding on the designation of various characteristics of products. For example, the IPC  114  may be utilized when a customer is configuring a car for purchase over the Internet. When designating the desired car, the user may provide values for certain characteristics (e.g., a color, a model, and an indication of “new” or “used”) to the IPC  114 . The IPC  114  may take this information and provide a response indicative of price, availability, and so forth. For example, the IPC  114  may indicate that because the customer selected a specific color, only certain model types are available. As another example, the IPC  114  may indicate that a truck is available in the designated color for a specific price. 
     In the system  100  of  FIG. 1 , it should be noted that the user computers  124  are considered to be external to the ERP system  102 . In other words, the user computers  124  are not integrated with the ERP system  102  and do not utilize the proprietary format of the ERP system  102 . Traditionally, the IPC  114  limits accessibility to when the proprietary format of the ERP system  102  is employed. However, in accordance with present embodiments, the user computers  124  include the user controls  126  stored in a memory of each user computer  124  to enable communication in a non-proprietary format with respect to the user computers  124 . As will be discussed in further detail below, the user controls  126  communicate with the JSP component  110 . In conjunction with other aspects of present techniques, this enables communication between the user computers  124  and the IPC  114  in a non-proprietary format. Present embodiments facilitate deployment of a common product configurator platform across multiple configurator applications that are external to the ERP system  102 , and this will reduce the development cycle for certain products and reduce the time to market for certain new product development for businesses utilizing certain ERP systems, such as the ERP system  102 . 
       FIG. 2  is a block diagram of a user control  200  coordinating the sharing of information between an external application  202  and an ERP system  204 . The user control  200  is illustrated as a software feature and may include various modules (e.g., assembled code or instructions) for performing various functions in accordance with present embodiments. For example, as discussed below, the user control  200  may operate to transmit and receive data, translate data, and provide a user interface. It should be understood that such actions may be performed by modules that are configured for such tasks. The external application  202  may include a software application or device that is separate from the ERP system  204 . The ERP system  204  may include features such as those of the ERP system  102  in  FIG. 1 . Further, the ERP system  204  may include SAP. 
     Specifically, in  FIG. 2 , the user control  200  is illustrated as providing a conduit and translation of information passing between the external application  202  and a JSP component  206  of the ERP system  204 . In turn, the JSP component  206  is receiving and transmitting data to an IPC component  208  of the ERP system  204  via an Application Programming Interface (API)  210 , which is a software implemented interface that enables interaction between the JSP component  206  and the IPC component  208 . Specifically, the API  210  is implemented by the JSP component  206  and the IPC component  208  to determine respective vocabularies and calling conventions of each, which the API  210  uses to access features of the IPC component  208 . These features of the IPC component  208  may thus be utilized by the user control  200  via the JSP component  206 . The API  210  generally requires interactions that utilize a proprietary format of the ERP system  204 . 
     Traditionally, external programs and devices such as the external application  202  have accessed the IPC component  208  directly through the API  210 . However, this required utilization of the proprietary format associated with the ERP system  204 , and creation of a custom user interface. In contrast, in accordance with present embodiments, implementation of the user control  200  on the external application  202  enables communication without using the proprietary format and allows use of the same user interface available in SAP IPC. Among other things, this is achieved by enabling the user control  200  to communicate with the external application  202  and the JSP component  206 . The user control  200  communicates with the external application  202  using a widely recognized encoding format. For example, in one embodiment, the user control  200  utilizes XML, which is a set of rules for encoding documents in a form that is machine-readable. It may be beneficial to utilize XML between the user control  200  and the external application  202  because XML is widely used and will likely be available for numerous applications. The user control  200  may translate XML-based data received from the external application  202  into a format that the JSP component  206  is capable of receiving and/or utilizing. Specifically, in one embodiment, the user control  200  translates XML data into an HTML form for submission to the JSP component  206 , which is capable of handling data presented as an HTML form. Further, the user control  200  may receive and interpret a response from the JSP component  206  provided in a particular data representation format and provide the external application  202  with the response in the encoding format recognized by the external application  202 . Specifically, for example, the JSP component  206  may provide a response as a name-value pair or attribute-value pair representation and the user control  200  may translate the response into XML data and transmit the translated response to the external application  202 . 
     In the illustrated embodiment, the user control  200  and the external application  202  are stored on a memory  220  and operated by a processor  222  of a computer  224  (e.g., a laptop or desktop computer). In operation, the user control  200  acquires or receives data from the external application  202 . In other words, data is transmitted from the external application  202  to the user control  200 . Various data transmissions are illustrated in  FIG. 2  as arrows. The transmission of data from the external application  202  to the user control  200  is represented by arrow  212 . Specifically, the external application  202  provides material to the user control  200  as configuration data in a standard encoding format such as XML. In one embodiment, the material includes configurable material or KMAT, which may be beneficial over other material types because a large number of combinations of features may be selected for a product. The configurable material includes characteristics, values, and rules. For example, a characteristic may include “color,” a value may include “red,” and a rule may include “only model-A is available when red is the value of color.” Configurable material such as this may be utilized in conjunction with the IPC component  208  to define aspects of a particular product and generate information about availability, price, and so forth. It should be noted that the user control  200  may provide a user interface that enables customization of the configurable material. Indeed, in one embodiment, the user control  200  is capable of receiving specific user selections of characteristics, values, and rules via a user interface provided by the user control  200 . 
     In addition to the configurable material, the data transmission  212  also includes certain discrete variable indications regarding functions to be performed by the user control  200 . For example, the data transmission  212  includes an indication as to whether a new configuration is being requested or a reconfiguration of an existing configuration is being requested. This indication may be provided by selecting a “start configuration” button or a “reconfigure” button in a user interface provided in accordance with present embodiments. If a user indicates that a new configuration is desired (e.g., selects the “start configuration” button), a new configuration is initiated. If the user indicates that a reconfiguration is desired (e.g., selects the “reconfigure” button), an indicated existing configuration is provided for editing. Further, in one embodiment, the data transmission  212  includes an indication of whether a background determination is desired. This may also be indicated by selecting a button or the like. This indication relates to whether a user interface (e.g., a graphical data entry feature) is provided for particular changes or selections, as will be discussed in further detail below. 
     The user control  200  converts the information from the data transmission  212  into information that the JSP component  206  is capable of handling (e.g., an HTML form). Accordingly, the characteristics, values, and rules provided by the data transmission  212  are converted into an HTML form that is then transmitted from the user control  200  to the JSP component  206 . The data transmission including this converted or translated information is represented by arrow  230  in  FIG. 2 . Specifically, in the illustrated embodiment, the configuration material and so forth from the data transmission  212  is converted into an HTML form and provided to the JSP component  206  based on a specified address of the JSP component  206 . Indeed, the data transmission  230  also includes instructions regarding delivery of the data provided therein. Specifically, the data transmission  230  may indicate that data should be provided to a particular landscape of a particular client at a specific address. For example, the data transmission  230  may be directed to a CRM client and a development/sandbox server of the ERP system  204 . Further, the data transmission includes an address of the user control component  200  (e.g., hookURL). 
     As discussed above, the JSP component  206  is configured to cooperate with the IPC component  208  via the API  210 . Specifically, in the illustrated embodiment, the JSP component  206  utilizes the information provided via the data transmission  230  to activate the IPC component  208  via the API  210  and to acquire a response from the IPC component  208  that is based on the characteristics, values, and rules set forth in the HTML form of the data transmission  230 . Once the results from the IPC component  208  based on the information in the HTML form are obtained, the JSP component  206  makes them available as a response object, as represented by data transmission  232 . Specifically, the user control  200  accesses this response object and translates it from a data representation provided by the JSP component  206  into a data format that is utilized by the external application  202 . For example, the user control  200  may receive the response object as a name-value pair in the data transmission  232  and convert the response object into XML. After translation, the data from the response object is provided to the external application, as represented by data transmission  234 . 
     As discussed above, in some embodiments, the information provided to the JSP component  206  via the user control  200  may include an indication of whether or not a background determination is requested, as represented by the data transmission  212 . The indication may be selected in a separate user interface as a check box or the like. If the box is checked by the user a background determination will be performed without potentially time consuming and inefficient utilization of a user interface. For example, if a user wants to configure multiple features with a single value of a characteristic, the user may prefer to do so in a background determination so that initiation of a user interface for each feature is not required. As a specific example, a user may be configuring a cabinet for a motor control center. One characteristic of each component of the cabinet may be a “name display” that has a value of either “yes” or “no.” In other words, a user can select to either provide a component with a “name display” or not. If a user wishes to exclude the “name display” on every component, the user may select a value of “no” for the “name display” characteristic for all components and utilize a background determination, which may avoid utilization of a user interface for each component that is being modified. 
     When a background determination is not requested, the JSP component  206  provides HTML data, as represented by transmission  240 . The HTML data corresponds to the provision of a user interface for a particular configuration or the like. In other words, the HTML data enables the display and utilization of a user interface for configuration purposes. The HTML data is received by the user control  200  and is then simply passed along unchanged to the external application  202 , as represented by data transmission  242 . It should be noted that the capability of designating a background determination may require modification of at least one component of the ERP system  204 . 
     While only certain features of the invention have been illustrated and described herein, many modifications and changes will occur to those skilled in the art. It is, therefore, to be understood that the appended claims are intended to cover all such modifications and changes as fall within the true spirit of the invention.