The present disclosure relates in general to systems and methods for managing enterprise information on a distributed computer system, and more specifically to systems and methods for monitoring of occurrence of certain events conforming to certain defined rules in one or more enterprise resource planning (ERP) systems and providing appropriate notifications.
ERP systems often include software solutions that integrate information and processes within and across different areas of an organization. In this way enterprise-wide information can be viewed and enterprise-wide decisions may be made and implemented. ERP systems are associated with massive volumes of data. In ERP systems, information from users, customers, managers, and other stakeholders is continuously generated, collected, and processed. Continual tracking of all the various elements and their associated data within an organization can be overwhelming. Problems with users and systems are analyzed by querying information from a database and viewing reports or displaying results from queries on digital dashboards or running audits to detect anomalies from standard performance. But these processes lead to delays in analyzing incidents and missed training opportunities, and when the incidents are threats to the infrastructure or system, these delays can be costly in terms of financial and human resources.
Disclosed herein are systems and methods addressing the shortcomings of the art, and may provide any number of additional advantages, such as increasing productivity, reducing delay in detection and handling of threats, dynamically scale systems to address real time workload changes, proactively alert based on trends in response time degradation, offering real-time training, and acquiring a competitive business advantage. The system and methods described herein provide notifications of events that occur in the ERP system and satisfy certain user-defined rules.
Certain embodiments include a method of detecting events in an enterprise resource planning system. The method includes receiving, by a server, from an authorized device of an enterprise resource planning system a plurality of criteria defining a rule and stored as a first plurality of records in an event management database, wherein the plurality of criteria were selected by a user via a graphical user interface in a rule composition graphical user interface that presents transaction, batch, and access each as a rule type option, and name, operator and value as the plurality of criteria and receiving, by the server, a plurality of information associated with a first plurality of events occurring at a plurality of user devices in the enterprise resource planning system. Further the method comprises filtering, by the server, the first plurality of events to identify a second plurality of events by comparing the plurality of information associated with the first plurality of events with all of the plurality of criteria associated with the rule, wherein one or more of the plurality of information associated with the second plurality of events satisfies all of the plurality of criteria associated with the rule and retrieving, by the server, from the event management database in response to identifying the second plurality of events a second plurality of records defining a notification profile associated with the rule, wherein the notification profile includes one or more preferences for notification format, and one or more designated recipient devices. Finally, the method includes formatting, by the server, the one or more of the plurality of information associated with the second plurality of events to generate one or more notifications based on the notification profile and transmitting, by the server, the one or more notifications to the one or more designated recipient devices to present a first notification of the one or more notifications via the graphical user interface wherein the first notification includes a date, the rule, and event details for each event of the second plurality of events, wherein selecting the event details presents an event details graphical user interface.
Certain embodiments include a system for detecting events in an enterprise resource planning system. The system includes an event management database and a processor communicatively coupled to the event management database. The processor may be configured to receive from an authorized device of an enterprise resource planning system a plurality of criteria defining a rule and stored as a first plurality of records in an event management database, wherein the plurality of criteria were selected by a user via a graphical user interface in a rule composition graphical user interface that presents transaction, batch, and access each as a rule type option, and name, operator and value as the plurality of criteria and receive a plurality of information associated with a first plurality of events occurring at a plurality of user devices in the enterprise resource planning system. The processor may be further configured to filter the first plurality of events to identify a second plurality of events by comparing the plurality of information associated with the first plurality of events with all of the plurality of criteria associated with the rule, wherein one or more of the plurality of information associated with the second plurality of events satisfies all of the plurality of criteria associated with the rule and retrieve from the event management database in response to identifying the second plurality of events a second plurality of records defining a notification profile associated with the rule, wherein the notification profile includes one or more preferences for notification format, and one or more designated recipient devices. The processor may finally be configured to format the one or more of the plurality of information associated with the second plurality of events to generate one or more notifications based on the notification profile and transmit the one or more notifications to the one or more designated recipient devices to present a first notification of the one or more notifications via the graphical user interface wherein the first notification includes a date, the rule, and event details for each event of the second plurality of events, wherein selecting the event details presents an event details graphical user interface.
Numerous other aspects, features and benefits of the present disclosure may be made apparent from the following detailed description taken together with the drawing figures. The systems can include less components, more components, or different components depending on desired analysis goals. It should be further understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are intended to provide further explanation of the invention as claimed.
The present disclosure can be better understood by referring to the following figures. The components in the figures are not necessarily to scale. The emphasis is instead placed upon illustrating the principles of the disclosure. In the figures, reference numerals designate corresponding parts throughout the different views.
Reference will now be made to the exemplary embodiments illustrated in the drawings, and specific language will be used here to describe the same. It will nevertheless be understood that no limitation of the scope of the invention is thereby intended. Alterations and further modifications of the inventive features illustrated here, and additional applications of the principles of the inventions as illustrated here, which would occur to one skilled in the relevant art and having possession of this disclosure, are to be considered within the scope of embodiments.
As used here, the following terms may have the following definitions:
An “event” refers to an occurrence of a transaction that matches certain criteria. A simple event is a one-time occurrence that matches certain criteria. Examples of simple events, without limitations, include a user named Chris logging into the system successfully, an employee attempting benefit enrollment from his desk, an employee attempting to login at a computer at Best Buy, or a clerk at the general ledger department receiving security errors while trying to view human resource data.
A compound event includes multiple occurrences of simple events, and in certain embodiments, the complex events may include Time-Box and Index functionalities.
“Time boxing,” as used herein, refers to the addition of a time criteria to trigger notification based on complex events. Time boxing allows users create to create rules for notification following multiple occurrences of simple events. Examples, without limitations, include five or more transactions in the accounts payable system with a response time of more than 2 seconds within a one-minute period, ten or more unsuccessful login attempts occurring from Eastern Europe within a five-minute period, and two batch jobs in the human resources queue having gone into a “needs recovery” status within that last hour.
“Indexing,” further extends Time Boxing by allowing these time boxed events to be grouped by additional criteria. Examples, without limitations, include any individual user in the accounts payable system that gets the same error on the invoice application five times within a five minute period, or any human resources clerk that views more than ten employee master records within an hour.
An “event management engine” refers to one or more software modules that handle data, execute rules, and perform data matching by using appropriate logic, including but not limited to software that monitor any of the ERP systems for simple or compound events and provide proactive notifications to designated or authorized parties.
Certain embodiments include early exposure of events that are pervasive within the ERP systems. The event management system consists of an event management engine, which provides a rule composer module for defining rules, and a notification module to send alerts via a browser, app, email, or text message.
Certain embodiments include a method of detecting events in an enterprise resource planning system. The method includes receiving, by an event management engine, from an authorized device of an enterprise resource planning system a plurality of criteria defining a rule and stored as a first plurality of records in an event management database; receiving a plurality of information associated with a first plurality of events occurring at a plurality of user devices in the enterprise resource planning system; filtering the first plurality of events to identify a second plurality of events by comparing the plurality of information associated with the first plurality of events with all of the plurality of criteria associated with the rule, wherein one or more of the plurality of information associated with the second plurality of events satisfies all of the plurality of criteria associated with the rule; retrieving from the event management database in response to identifying the second plurality of events a second plurality of records defining a notification profile associated with the rule, wherein the notification profile includes one or more preferences for notification format, one or more designated recipient devices, and a notification schedule; formatting the one or more of the plurality of information associated with the second plurality of events to generate one or more notifications based on the notification profile; and transmitting the one or more notifications over an electronic communication network to user interfaces of the one or more designated recipient devices according to the notification schedule. The notification can be a text message. The notification can be an electronic mail.
Certain embodiments include a system for detecting events in an enterprise resource planning system. The system includes an event management database; one or more processors communicatively coupled to the event management databases; and non-transitory computer-readable medium positioned in communication with the one or more processors and having computer program stored thereon including a set of instructions. These instructions when executed by one or more processors cause the one or more processors to perform operations of receiving, by an event management engine, from an authorized device of an enterprise resource planning system a plurality of criteria defining a rule and stored as a first plurality of records in an event management database; receiving a plurality of information associated with a first plurality of events occurring at a plurality of user devices in the enterprise resource planning system; filtering the first plurality of events to identify a second plurality of events by comparing the plurality of information associated with the first plurality of events with all of the plurality of criteria associated with the rule, wherein one or more of the plurality of information associated with the second plurality of events satisfies all of the plurality of criteria associated with the rule; retrieving from the event management database in response to identifying the second plurality of events a second plurality of records defining a notification profile associated with the rule, wherein the notification profile includes one or more preferences for notification format, one or more designated recipient devices, and a notification schedule; formatting the one or more of the plurality of information associated with the second plurality of events to generate one or more notifications based on the notification profile; and transmitting the one or more notifications over an electronic communication network to user interfaces of the one or more designated recipient devices according to the notification schedule.
The event management system can empower businesses to detect fraud, reduce risk, improve compliance, and improve human productivity by proactively managing events in the ERP system. Businesses cannot afford the consequences of a data breach, revenue loss, or simply inefficient processes. The proactive notifications and on-demand reporting features of the event management system allows decision-makers to identify and respond in real-time to events that have been determined to be critical to the success of a particular team, department, or the organization. The event management system may function as part of comprehensive fraud detection program, as authorized users can create simple or compound event alerts, monitor user access and errors, and be notified upon the occurrence of simple or compound events, thereby identifying and isolating a threat by defined criteria. Authorized users may also tap into rule-based pattern recognition features of the event management system to alert decision-makers to rapidly identify, track, and investigate potentially harmful events, and minimize both threat and response time. The event management system can also be designed to alert a systems manager when an employee has certain number of login errors consecutively within a designated amount of time. The event management system can additionally be used to trigger additional infrastructure to be provisioned to improve user experience or alert administrator of degradation in performance.
The event management system provides complete flexibility in creating notifications for any event occurring in the ERP system. Using event management system, authorized users or teams may receive real-time alerts and specialized views to devices of choice. Designated or authorized individuals/teams may create and customize simple or compound rules and alerts in the event management system as required to meet their needs. These alerts and notifications may be customized in formats, such as reports, for designated individuals within the company. The event management system may provide more detailed alerts to certain designated or authorized individuals or teams, such as including pertinent ERP data providing ability for immediate action.
The event management system may be configured to deliver real-time, on-demand and at-a-glance notifications. These notifications can confirm with real-time data any perceptions of performance issues within a system or regarding an individual, and thus minimize response time and potential data loss. The event management system can be configured to optimize workflow and batch jobs with alerts on failed or delayed computing. Another advantage of real-time notifications using the event management system lies in maximizing training opportunities based on customizable human interaction with the system, therefore a user having issues can be identified and corrective responses can be undertaken close to the occurrence of the issues. Critical trends that can hinder process execution and efficiency, such as a high volume of incorrect orders from a specific client can be addressed with minimal loss of time and effort.
The event management system can be configured to apply rules to data to and from other organizational systems that are communicatively coupled to the ERP systems, including but not limited to supply chain management systems or customer relationship managements. In certain embodiments, the event management system can be deployed as part of an enterprise application integration middleware. Designated or authorized individuals or teams can define and implement any relevant business rules and criteria for identifying events or notifying users, and this can be applied to data values across all information systems. The event management system can be applied to raw data or cleansed data or enriched data from within the ERP systems and across all information systems.
In certain embodiments, users 1, 2, and 3 at computing devices illustrated as User Station A 101, User Station B 102, and User Station C 103 perform one or more transactions in the ERP system of an organization and interact via network 104 with the event management engine 105. One or more of the user stations can be an authorized user station or can be accessed by an authorized user to create rules for the detection and management of events. The event management engine 105 may be implemented as software that runs on a server including a processing unit for running related algorithms or computer executable program instructions. The event management engine 105 may be implemented using a single-processor system including one processor, or a multi-processor system including any number of suitable processors that may be employed to provide for parallel and/or sequential execution of one or more portions of the techniques described herein. Processes and logic flows described herein may be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating corresponding output. Processing unit may include a processor with computer-readable medium, such as a random access memory (RAM) (not shown) coupled to the processor. Examples of processor may include a microprocessor, application specific integrated circuit (ASIC), and field programmable object array (FPOA), among others.
In some embodiments, event management engine 105 can be implemented as part of a server, a user computing device and the like. Examples of suitable implementations of the event management engine 105 include servers, authorized user computing devices, smartphones, desktop computers, laptop computers, tablet computers, PDAs and other types of processor-controlled devices that receive, process, and/or transmit digital data. In an example, event management engine 105 performs certain operations that are required for the proper operation of system architecture 100. Suitable event management engine 105 performs these operations as a result of central processing unit executing software instructions contained within a computer-readable medium, such as within memory. In one embodiment, the software instructions of the system are read into memory associated with the event management engine 105 from another memory location, such as from a storage device, or from another computing device via a communication interface. In this embodiment, the software instructions contained within memory instruct the event management engine 105 to perform processes described above. Alternatively, hardwired circuitry may be used in place of or in combination with software instructions to implement the processes described herein. Thus, implementations described herein are not limited to any specific combinations of hardware circuitry and software.
The event management engine 105 is communicatively coupled to the event management database 106. In one or more embodiments, event management database 106 contains the data from the ERP systems, including but not limited to data from accounting and finance, human resources, manufacturing, inventory control, sales and marketing, purchasing, warehouses, shipping, and other logistics groups.
The event management database 106 may be configured as a combination of external sources and internal databases, and is implemented as relational databases that provide functions of fetching, indexing, and storing data. In these embodiments, event management database 106 provides aforementioned data and other stored data and files to one or more software modules within event management system 100 for further analysis. Examples of data received from external sources include inventory management, sales, customer interaction, and financial records. The event management database 106 may be implemented through database management systems (DBMS), such as, MySQL, PostgreSQL, SQLite, Microsoft SQL Server, Microsoft Access, Oracle, SAP, dBASE, FoxPro, IBM DB2, LibreOffice Base, FileMaker Pro, and/or any other type of database that may organize collections of data. In these embodiments, event management database 106 may be implemented using application protocols for accessing and maintaining distributed directory information services or data feeds such as, for example, Lightweight Directory Access Control (LDAP), among others. Data stored in fields of the databases may be updated as needed, for example, by a user with administrative access to the database to add new data to the libraries in the database as they become supported. It will be appreciated by those having skill in the art that data described herein as being stored in the databases may also be stored or maintained in non-transitory memory and accessed among subroutines, functions, modules, objects, program products, or processes, for example, according to objects and/or variables of such subroutines, functions, modules, objects, program products or processes. Any of the fields of the records, tables, libraries, and so on of the database may be multi-dimensional structures resembling an array or matrix and may include values or references to other fields, records, tables, or libraries. Any of the foregoing fields may contain either actual values or a link, a join, a reference, or a pointer to other local or remote sources for such values. External sources may be, for example, a single database, multiple databases, or a virtual database, including data from multiple sources, for example, servers on the World Wide Web.
The electronic communications network 104 may comprise any communication architecture including devices and software that facilitates communication between a transmitter and a receiver residing in one or more computing devices that form system 100. It should also be obvious to one skilled in the art that the network components may be implemented in dedicated processing equipment, and/or in a cloud processing network. The network 104 may be made up of an intranet, a local area network (LAN), cloud networks, virtual private networks (VPN), wireless area networks (WAN), and the internet, or any other network that enables servers and user devices to interact with one another. Non-limiting examples of devices comprising the network may include routers, switches, hubs, firewalls, proxy servers, telecommunications trunks, and the like. Accordingly, the electronic communications network can be implemented, in whole or in part, over a wireless or a wired communications network or combination of both. In addition, according to various exemplary embodiments of the present invention, the wireless communications network can be implemented over any of various wireless communication technologies, for example: code division multiplexed access (“CDMA”), global system for mobile communications (“GSM”), and wireless local area network such as WiFi, World Interoperability for Microwave Access (“WiMAX”), or Bluetooth®.
The event management engine 105 may generate user interfaces on computing devices, including user devices 101, 102, and 103 and designated recipient devices 107 and 108. Such devices are communicatively coupled to and in bi-directional communication with other devices, databases, and components of the event management system 100. Computing devices, including user devices 101, 102, and 103 and designated recipient devices 107 and 108, may be a laptop computer or a desktop computer, or a mobile computing device such as a smart phone, a cell phone, a tablet, a personal digital assistant (PDA), a mobile computer with a smart phone client, or any other data access-enabled device. The designated recipient devices 107 and 108 are configured to receive notifications from the event management engine 105. The event management engine 105 utilizes the user interfaces to request, collect, and present information from and to one or more of the users. The users may interact with the user interface via an input/output (I/O) device such as a touch screen, a mouse, a keyboard and/or a keypad working in concert with a display, and others. In some embodiments, data processing modules of the event management engine 105 are further configured to automatically retrieve information requested by one or more computing devices 101, 102, and 103 and designated recipient devices 107 and 108, or one or more software modules. In these embodiments, this information is obtained from event management database 106. In other embodiments this information is obtained from the operation of one or more software modules within the ERP system. The event management engine 105 may include and/or be communicatively coupled to software module(s), including but not limited to one or more audit modules, rule executor modules, alert and notification modules, document management modules, and administration modules. In one or more embodiments, the event management engine 105 may interact with external services, applications, and databases through one or more application programming interfaces (API), an RSS feed, or some other structured format. The API may be a Representational State Transfer Application Programming Interface (REST API) that controls and manages one or more APIs. In these embodiments, the API may provide web services to one or more mobile applications installed on the computing devices. Examples of web services include displaying data on a website, uploading large amounts of data that will later be consumed by a mobile app, downloading data to run custom analytics, exporting data, and the like.
Some embodiments include a system for generating user interfaces, as illustrated in
When any of the trash can icons, 522, are clicked, the user may be presented with a confirmation user interface, 500b, shown in
Illustrative user interface 600 is an example of the rule composer module. Embodiments of the work flow of the user interface include the following. In section 602 titled, “Rule Type & Name,” the user may be presented with options for creating different types of rules. Clickable button 610 titled, “Transaction,” is an example for creating rules based on transactions executed in the ERP system. Clickable button 612 titled, “Batch,” is another example for creating rules to be executed on batches in the ERP system. Clickable button 614 titled, “Access,” is yet another example for creating rules based on user access of the ERP system. In illustrative user interface 600, the user has selected a Transaction rule type. A user may then provide a name for the rule by entering text in the Name field 616. In this example, the user has given the rule the name “slowResponse.” The user may then move onto section 604 titled, “Criteria.” The interface guides the user in adding criteria in grouping 604. The user is presented with a row of criteria elements that are selected in order from the drop down select boxes to define a criterion for the rule. The elements may include Criteria Name 618, Criteria Operator 620, and Criteria Value 622. The content of the drop down select box Criteria Name, 618, is populated and enabled upon rule type selection. The content of drop down select box Criteria Operator, 620, is populated and enabled upon criteria name selection. The input field Criteria Value, 622, is enabled upon operator selection. Once a complete criterion is defined, the Add button, 624, is enabled. Clicking the Add button, 624, pushes the criterion as defined into the criteria table below the selectors. In this instance, the two criteria have been set for the rule, Response Time, 626, with operator greater than 4.50 seconds, and User ID, 628, with operator contains the string “patil”. Delete buttons 630 and 632, are enabled that would remove criterion, 626 and 628 respectively, from the rule.
In an embodiment, when user login credentials are received via an electronic communication network from an authorized computing device in the ERP system, an event management engine may compare these credentials against the records in the event management database and verify the user login credentials to be those of a designated recipient. The event management engine may then generate user interfaces on that recipient computing device where the designated recipient credentials were provided via an electronic communication network. The event management engine may present one of several user interfaces on the recipient computing device such as a web browser or an application interface, where the designated recipient may be presented with options for reviewing new or previously received notifications in the event management database on the enterprise resource planning system. In another embodiment, the notification received from the event management engine on the designated recipient device may include a link to an interface where the event management engine presents further details about the notification.
The foregoing method descriptions and the process flow diagrams are provided merely as illustrative examples and are not intended to require or imply that the steps of the various embodiments must be performed in the order presented. As will be appreciated by one of skill in the art the steps in the foregoing embodiments may be performed in any order. Words such as “then,” “next,” etc. are not intended to limit the order of the steps; these words are simply used to guide the reader through the description of the methods. Although process flow diagrams may describe the operations as a sequential process, many of the operations may be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination may correspond to a return of the function to the calling function or the main function.
The various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed here may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.
Embodiments implemented in computer software may be implemented in software, firmware, middleware, microcode, hardware description languages, or any combination thereof. A code segment or machine-executable instructions may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc.
The actual software code or specialized control hardware used to implement these systems and methods is not limiting of the invention. Thus, the operation and behavior of the systems and methods were described without reference to the specific software code being understood that software and control hardware may be designed to implement the systems and methods based on the description here.
When implemented in software, the functions may be stored as one or more instructions or code on a non-transitory computer-readable or processor-readable storage medium. The steps of a method or algorithm disclosed here may be embodied in a processor-executable software module which may reside on a computer-readable or processor-readable storage medium. A non-transitory computer-readable or processor-readable media includes both computer storage media and tangible storage media that facilitate transfer of a computer program from one place to another. A non-transitory processor-readable storage media may be any available media that may be accessed by a computer. By way of example, and not limitation, such non-transitory processor-readable media may comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other tangible storage medium that may be used to store desired program code in the form of instructions or data structures and that may be accessed by a computer or processor. Disk and disc, as used here, include compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and Blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media. Additionally, the operations of a method or algorithm may reside as one or any combination or set of codes and/or instructions on a non-transitory processor-readable medium and/or computer-readable medium, which may be incorporated into a computer program product.
When implemented in hardware, the functionality may be implemented within circuitry of a wireless signal processing circuit that may be suitable for use in a wireless receiver or mobile device. Such a wireless signal processing circuit may include circuits for accomplishing the signal measuring and calculating steps described in the various embodiments.
The hardware used to implement the various illustrative logics, logical blocks, modules, and circuits described in connection with the aspects disclosed herein may be implemented or performed with a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general-purpose processor may be a microprocessor, but, in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. Alternatively, some steps or methods may be performed by circuitry that is specific to a given function.
Any reference to claim elements in the singular, for example, using the articles “a,” “an” or “the,” is not to be construed as limiting the element to the singular. The preceding description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the following claims and the principles and novel features disclosed herein.
This application claims priority to U.S. Provisional Application Ser. No. 62/286,809 filed on Jan. 25, 2016, which is hereby incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
62286809 | Jan 2016 | US |