# Patent

## Title
Method and apparatus for accessing an enterprise resource planning system via a mobile device

## Abstract

A method and apparatus for accessing an enterprise resource planning system via a mobile device is described. In one embodiment, the method includes parsing data from a host application access application into at least one object in an application-specific format, converting the data into an intermediate format that is compatible with a mobile device and communicating the converted data to the mobile device.

## Background
RELATED APPLICATION
The present application is a continuation of U.S. patent application Ser. No. 15/236,295 filed 12 Aug. 2016 and issued as U.S. Pat. No. 9,661,096, which is a continuation of U.S. patent application Ser. No. 14/981,492 filed 28 Dec. 2015 and issued as U.S. Pat. No. 9,420,054, which is a continuation of U.S. patent application Ser. No. 14/667,583 filed 24 Mar. 2015, and issued as U.S. Pat. No. 9,225,804, which is a continuation of U.S. patent application Ser. No. 13/083,988 filed 11 Apr. 2011, and issued as U.S. Pat. No. 8,990,427, which claims the benefit of U.S. provisional patent application No. 61/342,372, filed 13 Apr. 2010, each of which is incorporated herein by reference in its entirety.


BACKGROUND
Field of the Invention
Embodiments of the present invention generally relate to remote database access and, more particularly, to a method and apparatus for accessing an Enterprise Resource Planning server via a mobile device.
Related Art
Computer systems exist that enable a user to remotely access computer information, e.g., an ERP server. Such ERP servers often use complex client applications to interface with data stored on the ERP server. These complex client applications are typically designed to execute on full desktop computers. As such, mobile devices such as personal digital assistants (PDAs), cellular phones, smart phones, net books, tablet computers, and the like generally lack processing power to effectively run these client applications. These devices also typically lack display panel space and input options, resulting in different usage patterns. Desktop interfaces are typically more complex, varied, and exploratory, while mobile interfaces prioritize quick access and ease of use for a specific purpose.
While specific server applications for converting data into the various communication formats used by these mobile devices may be developed, the myriad of different mobile device formats makes this approach cost prohibitive. Since such devices also lack the processing power needed to execute full database interface applications, there is no effective way for these mobile devices to access these ERP servers. Therefore, there exists a need in the art for a method and apparatus for accessing an enterprise resource planning server via a mobile device.
SUMMARY
Embodiments of the present invention comprise a method and apparatus for accessing an Enterprise Resource Planning (“ERP”) server via a mobile device. In one embodiment, the method includes processing data from a host application access application, converting the processed data into an intermediate format that is compatible with a mobile device and communicating the converted data to the mobile device.
In one embodiment, the apparatus comprises a server application for processing data from a host application access application, converting the processed data into an intermediate format that is compatible with a mobile device and communicating the converted data to the mobile device. In one embodiment, the host application access application performs interface operations with an ERP server. In one embodiment, a native client for the mobile device renders the converted data according to one or more rules.



BRIEF DESCRIPTION OF THE DRAWINGS
So that the manner in which the above recited features of the present invention can be understood in detail, a more particular description of the invention, briefly summarized above, may be had by reference to embodiments, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only typical embodiments of this invention and are therefore not to be considered limiting of its scope, for the invention may admit to other equally effective embodiments.
FIG. 1 is a depiction of a block diagram depicting a computer network in which an embodiment of the present invention is used;
FIG. 2 is a flow diagram of a method for providing an interface to an ERP server for a mobile device in accordance with embodiments of the present invention;
FIG. 3 is a flow diagram of a method for displaying an interface for an ERP server using a mobile device in accordance with embodiments of the present invention; and
FIG. 4 is a flow diagram of a method for accessing an ERP server using a mobile device in accordance with embodiments of the present invention.



DETAILED DESCRIPTION
FIG. 1 is a block diagram depicting a system 100 for providing an interface for an enterprise resource planning (“ERP”) server 104 using a mobile device 108 in accordance with embodiments of the present invention. In some embodiments, the system comprises a server 102, an ERP server 104, a network 106, and a mobile device 108. The server 102 sends and receives data with the ERP server 104 during which the server 102 converts such data to an intermediate format. The server 102 sends the converted data to the mobile device 108 via the network 106.
The server is a computing device such as those generally known in the art. The server 102 comprises a central processing unit (CPU) 110, support circuits 112, and a memory 114. The CPU 110 may comprise one or more commercially available microprocessors or microcontrollers that facilitate data processing and storage. The various support circuits 112 are utilized to facilitate the operation of the CPU 110 and include such circuits as clock circuits, power supplies, cache, input/output circuits and devices, and the like. The memory 114 may comprise random access memory, read only memory, removable storage, optical disk storage, disk drive storage, and combinations thereof. The memory 114 stores an operating system 122, a server application 124, and a host application access application 126. In operation, the CPU 110 executes the operating system 122 to control the general utilization and functionality of the server 102.
The memory 114 also comprises a server application 124. The server application 124 converts data to and from an intermediate format suitable for use by the mobile device 108. The server application 124 also facilitates communication with the mobile device 108 via the network 106. In some embodiments, the server application 124 communicates with the mobile device via the hyper-text transfer protocol (HTTP), but one of ordinary skill in the art would recognize that other application layer protocols such as telnet, secure socket layer (SSL), rlogin, and the like could be used for this purpose. The server application 124 converts data received from the host application access application 126 into an intermediate format suitable to send to the mobile device 108. The server application 124 also converts data received in an intermediate format from the mobile device 108 into a format suitable for transmission to the host application access application 126.
In some embodiments, the server application 124 identifies the particular type of mobile device and creates custom device specific controls for the particular mobile device from the standard interface provided by the host application access application 126. In some embodiments, the server application 124 comprises a scripting engine 138 with a scripting environment/application programming interface (“API”) 140 that executes one or more customization scripts 123. These customization scripts 123 modify behavior and screen content prior to conversion and transmission to the native client 130. Optionally, the server application 124 may also preserve sessions across native client invocations; thereby preserving the connection to the ERP system 104.
The memory 114 further comprises a host application access application 126. The host application access application 126 is a front end for the ERP server 104 as commonly known in the art. Such front ends provide access to the data and functionality provided by the ERP server 104. The host application access application 126 sends and receives commands and data to and from the server application 124 in an application server specific format.
The ERP server 104 provides business and/or enterprise management functionality to the host application access application 126. The ERP server 104 may allow a user to access data, execute programs, generate reports, and various other data access and integration tasks as known in the art. In some embodiments, the ERP server 104 is a Systems, Applications, and Products (SAP) server as provided by SAP AG of Walldorf, Germany.
The server 102 is coupled to the mobile device 108 via a network 106. The network 106 comprises a communication system that connects computers by wire, cable, fiber optic and/or wireless link facilitated by various types of well-known network elements, such as hubs, switches, routers, and the like. The network 106 may employ various well-known protocols to communicate information amongst the network resources. For example, the network 106 may be a part of the Internet or Intranet using various communications infrastructure, such as Ethernet, Wi-Fi, WiMax, General Packet Radio Service (GPRS), and the like.
The mobile device 108 is a mobile device as commonly known in the art. Such mobile devices include personal digital assistants (PDAs), cellular phones, smart phones, net books, tablet computers, and the like. In some embodiments, one or more native applications reside on the mobile device 108 to render data received from the server application 124 on the device, to wait for data entry, to take into account interruptions inherent in mobile devices (such as an incoming phone call received by a cellular phone), to perform session continuation after such an interruption, and the like.
The mobile device 108 is comprised of a CPU 116, support circuits 118, and a memory 120. The CPU 116 may comprise one or more commercially available microprocessors or microcontrollers that facilitate data processing and storage. The various support circuits 118 are utilized to facilitate the operation of the CPU 116 and include such circuits as clock circuits, power supplies, cache, input/output circuits and devices, and the like. The memory 120 may comprise random access memory, read only memory, removable storage, optical disk storage, disk drive storage, and combinations thereof. The memory 120 stores an operating system 128, and a native client 130. In operation, the CPU 110 executes the operating system 122 to control the general utilization and functionality of the mobile device 108.
The memory 120 also comprises a native client 130. The native client 130 allows a user to access the ERP server 104 by sending and receiving data and commands to and from the server application 124. The native client 130 is configured to execute on the specific type of mobile platform, such as a particular type of cellular phone or PDA. In some embodiments, the server application 124 alters data sent to the mobile device 108 to a format specific for the interface provided by the mobile device. In some embodiments the native client 130 may execute a series of rules that provides the best interpretation of data sent by the server application 124. For example, rows of buttons might be automatically converted into a table control if the mobile device was an IPHONE provided by APPLE COMPUTERS of Cupertino, Calif. Depending on the customization scripts 123, the native client 130 will render the screen and enable navigation that is native to the mobile device 108. The native client 130 may also utilize an efficient state driven polling loop that utilizes standard HTTP through the network 106. Various native clients 130, tailored for the individual mobile device 108 using custom script interpretations, enable a single version of a customization script 123 to be utilized across a variety of types of mobile devices 108.
FIG. 2 is a flow diagram depicting a method 200 for providing an interface to an ERP server on a mobile device in accordance with embodiments of the present invention. The method begins at step 202.
At step 204, data is received from the ERP server 104. In some embodiments, this data is received via the host application access application 126 and sent to the server application 124. Such data is typically in a format specific to the ERP server 104 and the host application access application 126. In some embodiments, the server application 124 extracts the data from an interface provided by the host application access application 126, such as by reading values contained within particular fields, accessing transaction logs created by the host application access application 126, or another method as commonly known in the art. Once the data has been extracted and/or received, the method proceeds to step 205.
At step 206, the server application 124 parses and converts the data into an intermediate format. Examples of such an intermediate format include JavaScript Object Notation (JSON) or Extensible Markup Language (XML). By translating the data into an intermediate format, the server application 124 advantageously removes the necessity for the mobile device 108 to translate directly from the host application access application-specific format, a task that traditionally involves a significant amount of processing power. Once the data is translated to the intermediate format, the method proceeds to step 208.
In some embodiments, the server application 124 processes a data stream of ERP data in binary format that is received from the host application access application 126 and recognizes structured data (e.g., name/value pairs, an array of ordered values, a Boolean, a string of characters and/or the like). For example, the server application 124 parses the binary data stream into JavaScript objects by identifying specific markers that signify each new object. The JavaScript objects are suitable for transmission to the mobile phone 108 because such objects are compatible with native mobile applications. The server application 124 builds a data structure (e.g., an array or tree) that stores a list of the JavaScript objects. As an example, each of the JavaScript objects may include customer contact information in the form of attributes (i.e., keys), such as first name, last name, age, phone number (e.g., work and home phone numbers as sub-objects), address and/or the like) having values of various data types.
At step 206, the script engine 138 executes customization scripts 123 that manipulate the data to alter and optimize the user interface that will eventually be presented on the mobile device 108 according to some embodiments. These customization operations may include renaming, adding and deleting data as received by the host application access application 126.
The customization scripts 123 remove various unnecessary fields from an invoice and retain important data fields, such as customer contact information, billing type, sales/delivery documents, payer information and/or the like according to some embodiments. Some data fields are displayed as a list and expandable into more details if desired (i.e., clicked). For example, billing items are listed along with corresponding pricing elements, which can be expanded with long text describing a specific billing item. Action items may be used to select the specific billing item and/or modify any information (e.g., price). In some embodiments, the customization scripts 123 also determine positioning of the data fields and action items on a display screen.
At step 208, the server application 124 transmits the converted data to the mobile device 108. While in the present example the server application 124 is discussed as transmitting the data, one of ordinary skill in the art would recognize that a separate web server executing on the server 102 or another networked computer would also be able to perform the same task. In some embodiments the server application 124 transmits the converted data via HTTP. In some embodiments, the server application 124 may perform additional translation functions depending upon the type of mobile device to which the data will be transmitted. The method ends when the data has been transmitted.
FIG. 3 is a flow diagram depicting a method 300 for accessing an ERP server using a mobile device in accordance with embodiments of the present invention. The method begins at step 302. At step 304, the native client 130 executing on the mobile device 108 receives converted data from the server 102, where the data is encoded in an intermediate format such as JSON, XML, or the like. At step 306, the native client 130 executes a series of rules to recognize certain constructs (e.g., data structures, such as objects, integers, arrays and/or the like) and render those constructs as native controls on the mobile device, such as the IPHONE example discussed with respect to FIG. 1. The native client 130 uses the converted data to generate an interface for the customization script 123 that is representative of the ERP server 104. In some embodiments, the interface is generated and updated in a manner consistent with commonly assigned U.S. patent application Ser. No. 12/590,760, and/or U.S. patent application Ser. No. 12/288,460, which are herein incorporated by reference.
In some embodiments, the native client 130 displays the converted data on the mobile phone 108 by rendering each object using a native control. Instead of displaying ERP data in an application-specific format on the mobile phone 108, the ERP data is converted into an intermediate format that is recognizable to the native client 130. Accordingly, the native client 130 may utilize one or more native controls (i.e., applications) to render the converted data locally in order to display the objects in a suitable layout for the mobile phone 108. The native client 130 may configure the converted data as a table of key/value pairs. For example, the native client 130 may display a billing due list of billing items along with each pricing date, billing date and billing document. Furthermore, each billing item is coupled to action items, such as display the billing document, issue the billing document to an accounting department and/or the like. As another example, the native client 130 may render down payment requests for recent sales orders.
At least a portion of the converted data may be augmented with a native operation on the mobile phone. For example, customer contact information may indicate a first name, a last name, an address and at least one phone number, which are displayed in a known or compatible layout (e.g., a mailing address layout or a table format). Furthermore, a particular phone number may be coupled with a link to a function for dialing the particular phone number or a function to save the particular phone number in memory (e.g., a mobile phone book for storing the customer contact information). As another example, clicking on the display or otherwise activating a link associated with the address may execute a map application that produces a real-time map of an area surrounding location associated with the address.
FIG. 4 is a flow diagram depicting a method 400 for forwarding data to an ERP server from a mobile device in accordance with embodiments of the present invention. The method begins at step 402.
At step 404, the server application 124 receives data from the mobile device 108. In some embodiments, the data is received in an intermediate format such as JSON or XML. The data received by the server application may represent various interface commands, operations, or data entry fields, such as mouse clicks, drag-selects, character/data entries, and the like.
At step 406, the data is converted to an interface-specific format as used by the host application access application 126. The server application 124 translates the interface operations received in the intermediate format into the corresponding interface operations performed on the host application access application 126. In some embodiments, the server application 124 may provide these operations transparently such that the host application access application 126 is unaware that the actions are not being performed locally on the server. In some embodiments, the server application 124 may translate the interface operations directly into data entry/access commands that are sent to the host application access application 126, and the host application access application 126 may be aware that said interface operations were performed remotely by a mobile device.
At step 408, the data converted into an interface-specific format is sent to the host application access application 126 for execution and/or access on the ERP server 104. The method ends at step 410 when the interface operations have been sent to the host application access application.
The foregoing description of embodiments of the invention comprises a number of elements, devices, circuits and/or assemblies that perform various functions as described. These elements, devices, circuits, and/or assemblies are exemplary implementations of means for performing their respectively described functions. In some embodiments, the server application 124 represents a means for accessing an enterprise resource planning system via a mobile device. Collectively, the server application 124, the customization scripts 123 and/or the native client 130 may form a means for accessing an enterprise resource planning system via a mobile device.
While the foregoing is directed to embodiments of the present invention, other and further embodiments of the invention may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow.

## Claims

1. A method, comprising:
utilizing a processor for converting intermediate format data received from a mobile device into an enterprise resource planning server interface format, the converting the intermediate format data received from the mobile device into the enterprise resource planning server interface format comprises translating interface operations from the intermediate format data received from the mobile device into corresponding interface operations of a host application access application executed on the enterprise resource planning server; and
providing the converted intermediate format data to the host application access application executed on the enterprise resource planning server.

2. The method of claim 1, further comprising:
identifying a type of the mobile device; and
creating one or more native controls for the mobile device type from a standard interface.

3. The method of claim 2, wherein at least one native control comprises a native operation for one of dialing a phone number or saving a phone number in memory or presenting a map associated with an address.

4. The method of claim 1, further comprising preserving a connection to the enterprise resource planning server by preserving one or more sessions.

5. The method of claim 1, wherein the intermediate format is in one of JSON and XML.

6. The method of claim 1, wherein the intermediate format data received from the mobile device is generated from native controls of the mobile device.

7. A non-transitory computer readable medium, storing instructions for executing a process, the instructions comprising:
converting intermediate format data received from a mobile device into an enterprise resource planning server interface format, the converting the intermediate format data received from the mobile device into the enterprise resource planning server interface format comprises translating interface operations from the intermediate format data received from the mobile device into corresponding interface operations of a host application access application executed on the enterprise resource planning server; and
providing the converted intermediate format data to the host application access application executed on the enterprise resource planning server.

8. The non-transitory computer readable medium of claim 7, the instructions further comprising:
identifying a type of the mobile device; and
creating one or more native controls for the mobile device type from a standard interface.

9. The non-transitory computer readable medium of claim 8, wherein at least one native control comprises a native operation for one of dialing a phone number or saving a phone number in memory or presenting a map associated with an address.

10. The non-transitory computer readable medium of claim 7, the instructions further comprising preserving a connection to the enterprise resource planning server by preserving one or more sessions.

11. The non-transitory computer readable medium of claim 7, wherein the intermediate format is in one of JSON and XML.

12. The non-transitory computer readable medium of claim 7, wherein the intermediate format data received from the mobile device is generated from native controls of the mobile device.

13. An apparatus, comprising:
a processor, configured to:
convert intermediate format data received from a mobile device into an enterprise resource planning server interface format, the converting the intermediate format data received from the mobile device into the enterprise resource planning server interface format comprises translating interface operations from the intermediate format data received from the mobile device into corresponding interface operations of a host application access application executed on the enterprise resource planning server; and
provide the converted intermediate format data to the host application access application executed on the enterprise resource planning server.

14. The apparatus of claim 13, wherein the processor is further configured to:
identify a type of the mobile device; and
create one or more native controls for the mobile device type from a standard interface.

15. The apparatus of claim 14, wherein at least one native control comprises a native operation for one of dialing a phone number or saving a phone number in memory or presenting a map associated with an address.

16. The apparatus of claim 13, wherein the processor is further configured to preserve a connection to the enterprise resource planning server by preserving one or more sessions.

17. The apparatus of claim 13, wherein the intermediate format is in one of JSON and XML.

18. The apparatus of claim 13, wherein the intermediate format data received from the mobile device is generated from native controls of the mobile device.