Computer systems are currently in wide use. Such systems often generate messages and various notifications for users. However, in order to view the notifications and messages, it can be quite cumbersome.
By way of example, some computers systems include business systems, such as customer relations management (CRM) systems, enterprise resource planning (ERP) systems, line-of-business (LOB) systems, etc. These types of systems often have many different subsystems, applications, or components. For instance, a business system may have a general ledger application (or component), an inventory application (or component), an alert system, a workflow system, and other items. Each of these items may generate messages, notifications, alerts, etc., that are to be viewed by a given user.
However, in order to view these notifications, the user often has to traverse the business system to the corresponding item, and then open that item and hunt for notifications, alerts, messages, etc. that were generated by the item for the user. By way of example, if the user is to receive notifications from the general ledger component, the user often needs to navigate within the business system to the general ledger application, open that application, then traverse the application to look for notifications, and then act on them.
The same has been true of performing tasks within a business system. For instance, it may be a user's responsibility to approve certain requisitions in performing project management. In order to do that, the user often needs to log into the business system, or otherwise gain access to the business system, and then traverse the system to the requisitions component and open the requisitions component. The user then often needs to traverse within the requisitions component to a purchase requisition approval subcomponent and then sort the purchase requisitions to view those that the user is to approve. If the user was also tasked with approving expense reports, the user often needs to engage in the same type of hunting behavior within the business system to identify expense reports that the user can approve.
It can be seen from this example that, in order for a user to view the notifications, and messages, and to even perform tasks within a business system, it can be difficult. The problem is exacerbated when the user is to receive notifications or task assignments from a plurality of different items (such as applications, components, modules, subcomponents, etc.) within the business system. Attempting to locate all of the various notifications, messages, tasks, etc. that the user is to view, can be time consuming, cumbersome, and error prone. It can be difficult for the user to even know whether he or she has seen all of the items that he or she is intended to see.
The discussion above is merely provided for general background information and is not intended to be used as an aid in determining the scope of the claimed subject matter.
A notification system receives notifications from a plurality of different components within a business system. The notification system aggregates notifications for a given user, from the plurality of different components in the business system. The notification system displays the aggregated list of notifications for user interaction.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter. The claimed subject matter is not limited to implementations that solve any or all disadvantages noted in the background.
Business system 100 is shown in
User 107 illustratively interacts with user input mechanisms 105 on user interface displays 103 in order to manipulate and control business system 100. User input mechanisms 105 can take a wide variety of different forms, such as icons, links, dropdown menus, buttons, lists, text boxes, check boxes, etc. In addition, user input mechanisms 105 can be actuated in a variety of different ways. For example, they can be actuated using a point and click device (such as a mouse or track ball). In addition, where the display device displays user interface displays 103 on a touch sensitive screen, user input mechanisms 105 can be actuated using touch gestures (such as with a stylus, a user's finger, etc.). Further, where the business system 100, or the computing device that generates displays 103 includes speech recognition components, then user input mechanisms 105 can be actuated using voice commands as well.
Processor 120 is illustratively a computer processor with associated memory and timing circuitry (not separately shown). It is a functional part of business system 100 and facilitates the functionality of applications, components, and other items in business system 100. Business data store 122 illustratively includes entities 128, workflows 130 and can also include other business records or other information 132. Entities 128 illustratively include business data records that describe various items. For instance, entities 128 can include vendor entities that describe vendors, customer entities that describe customers, quote or proposal entities that describe quotes or proposals, business opportunity entities that describe business opportunities, etc. Workflows 130 can be called by applications 102 and 104, and are illustratively executed by workflow component 108 to perform workflows in order to conduct business operations. In addition, they can be executed to allow user 107 to perform tasks or activities within business system 100, in the performance of the duties of user 107.
Each user can illustratively be assigned a role 131. The roles 131 generally define the tasks or activities performed by a given user. For instance, if a user is assigned a human resources role, that user will illustratively have access to human resources records and workflows in order to perform human resources tasks (such as payroll distributions, benefit enrollment, etc.). If the user 107 is assigned an account manager role, then user 107 will illustratively have access to data and workflows in business system 100 in order to perform account management tasks and activities. These are given by way of example only, and other roles can be assigned as well. In addition, a user may illustratively have multiple roles.
Business data store 122 is shown as a single data store, and is local to business system 100. It should be noted, however, that business data store 122 can actually be comprised of multiple different data stores. All of the data stores can be local to business system 100 or remote from business system 100. In addition, some can be local while others are remote.
It will also be noted that
Each application 102 and 104 can perform different operations. For example, application 102 may illustratively be a general ledger application that runs the general ledger portion of business system 100. In doing so, it may generate notifications 110 and provide them to notification system 118. Application 104 may, for example, be an inventory application that runs inventory control operations for business system 100. In doing so, it may illustratively generate notifications 114 and provide them to notification system 118.
Alert component 106 can illustratively monitor various applications, processes, workflows, etc. and generate alert notifications 112. The alert notifications can be any of a wide variety of different types of alerts (such as an alert indicating that a particular inventory item is running low, an alert that indicates an unauthorized access to business system 100, an alert indicating that a batch processing run has failed or encountered problems, etc.).
Before describing the overall operation of business system 100 in more detail, a brief discussion of the operation of notification system 118 will be provided, to enhance understanding. Notification system 118 illustratively receives notifications 110, 112, 114 and 116 from the corresponding items in business system 100. Notification system 118 illustratively aggregates the notifications based on the users who are intended to receive the notifications. For example, it may be that user 107 is in an administrative role. It may also be that application 102 is an administrative application. In that case, user 107 may register to receive (or the role of user 107 can be set up to receive) notifications from application 102 as well as specific alerts from alert component 106, and specific workflow notifications from workflow component 108. Notification system 118 will thus aggregate all of the notifications from application 102, the specified alert notifications from alert component 106, and the specified workflow notifications 116 from workflow component 108, into a list of notifications corresponding to user 107. Then, when user 107 requests to see the notifications, notification system 118 generates a display of the notifications on user interface displays 103. Of course, it will be noted that some notifications can be automatically displayed for user 107, regardless of whether they are requested by user 107. However, the present discussion proceeds with respect to the user 107 requesting display of the notifications, but this is described by way of example only. The user can take a variety of different actions relative to any given notification.
It is first assumed that user 107 has logged into, or otherwise accessed, business system 100. In doing so, the user illustratively provides authentication information (such as user name and password) or other identifying information that identifies user 107, and any role in business system 100 that has been assigned to user 107. Using this information, notification system 118 can determine whether user 107 has any current notifications.
Notification system 118 receives a notification 110, 112, 114 or 116 from various different applications or components 102-108. This is indicated by block 150 in
At some point, notification system 118 receives a user input from user 107 requesting to see his or her notifications. This is indicated by block 154 in
Once the user 107 has requested to view the notifications, notification system 118 uses user interface component 124 to generate a personalized display of the aggregated notifications, on a notification display, for user 107. This is indicated by block 156 in
In the embodiment shown in
When user 107 actuates alerts and notifications tile 204, notification system 118 retrieves all notifications for user 107 and displays them, such as on a notification display 206. It can be seen that notification display 206 includes a scrollable list 208 of notification entries 210, 212, 214, 216, 218 and 220. In one embodiment, additional notifications are entered in list 208 below notification entry 220, and they can be seen when scroll bar 222 is scrolled downward. Each notification in list 208 illustratively includes a title (shown in bold in
Once notifications display 206 is displayed to user 107, user 107 can illustratively provide one of a variety of different user interaction inputs on notification display 206 to interact with the display. This is indicated by block 219 in
User 107 can also actuate a button to see all notifications in the list. This is indicated by block 254 in
Once the user has interacted with the notifications display 206 in one of the ways described above, or in other ways, notification system 118 illustratively takes action based on the user interaction input on the notification display. This is indicated by block 260. A number of those interactions will now be described with respect to various exemplary user interface displays. In one embodiment, display 206 includes a link 224. When link 224 is actuated, notification system 118 generates a user interface display that shows a list of all notifications to user 107.
Entry 216 shows one embodiment where multiple notifications from a single source have been aggregated. It is possible that, when each item from every source of notifications is individually listed in display 206, it may be overwhelming to user 107. Therefore, in some embodiments, the notifications from each source of notifications are aggregated in a summary form. Entry 216, for instance, is an entry showing notifications received from the general ledger posting application (or component) in business system 100. Instead of listing all notifications from that component, entry 216 simply includes a line 232 which identifies the number of notifications from the general ledger posting component. When the user actuates entry 216, the user is illustratively navigated to a more detailed display showing the two notifications.
All of the entries 210, 212, 214, 216 and 218 are illustratively user actuatable links. When the user actuates the entry, the user is illustratively navigated to a detail screen or display which shows more detail about the given entry. This is described in greater detail below with respect to
Entry 220 is illustratively a notification that represents a task assigned to user 107. The task is to review and either approve or reject an expense report. Thus, entry 220 includes a link 236 to the underlying document (or entity)—that comprises the expense report. When the user actuates link 236, the user is illustratively navigated to a full display of the line items in the expense report. Entry 220 also illustratively includes a task assignor display 238. This indicates a person who assigned this task to user 107. Further, entry 220 includes a date and time indicator 240 that shows a date and time when the task was assigned. Entry 220 also illustratively includes a plurality of action buttons 234. The action buttons 234 allow user 107 to take action with respect to this notification, directly from notifications display 206. Since the task corresponding to entry 220 is to review an expense report, buttons 234 illustratively include an “approve” button, a “reject” button, and a “more” button. User 107 can thus illustratively actuate link 236 to review the detailed line items in the expense report and then actuate one of buttons 234 to take action with respect to this notification (e.g., approve it, reject it, or see more information about it), all directly from notifications display 206.
In the particular embodiment shown in
Detail flyout 322 also illustratively includes action buttons that allow the user to take action (or perform a task) with respect to entry 310, directly from detail flyout display 322. Since entry 310 has to do with reviewing and either approving or rejecting an expense report, buttons 334 illustratively include an “approve” button, a “reject” button, and a “more” button. If the user actuates the approve button, the user can illustratively approve the expense report directly from flyout display 322. The user can also reject the expense report by actuating the reject button, and view more details about the expense report by actuating the more button.
Entry 312 in notifications display 308 also corresponds to a task which involves reviewing a purchase order. It may be, for example, that user 107 only needs to review certain line items out of each purchase order (or out of specified purchase orders). By way of example, it may be that user 107 is charged with the task of approving the purchases of certain items. Therefore, a given purchase order may have multiple different line items that must be individually approved by user 107. However, it may be that displaying all of the individual line items (even though they all require separate approval by user 107) may overwhelm the notifications display 308 and make it confusing or difficult to read.
Thus, in one embodiment, notifications system 118 aggregates all notification corresponding to a single source document (or even a source application or system that generates the notifications), and displays an aggregated display on notification display 308. In the embodiment described in
In addition, listing 304 includes a set of filter buttons 356. Filter buttons 356 allow user 107 to filter listing 354 based on various criteria. For instance, buttons 356 include a type button 358 that allows the user 107 to filter notifications based on the type of notification. It includes a due date button 360 that allows user 107 to filter the notifications based on their due date. It includes an unread button 362 that allows user 107 to filter based on the notifications that are unread. It also includes a flagged button 364 that allows user 107 to filter the displayed notifications in listing 354 based on those that are flagged as urgent or flagged for another reason.
Listing 354 also illustratively includes a search box 370. Search box 370 illustratively allows user 107 to enter keyword search terms to search the listing 354 of entries based on keywords.
It can thus be seen that notification system 118 aggregates notifications from various components, subsystems, applications, etc., and generates a notification display for a given user. The user can see additional details about each notification and can also perform tasks directly from the notification display. This significantly enhances the ability of a user 107 to view all notifications from system 100 that are intended for user 107, and to even take action to perform tasks or to address items in any given notification.
It should also be noted that various items in the notification display can be individually configured either by a user, or for a user. For instance, if a user wishes to have certain fields from an underlying document or entity in the summary section of detail flyout 322, those items can be added. Further, if the user wishes to have certain action buttons or other links in the detail flyout, those items can be added as well.
The description is intended to include both public cloud computing and private cloud computing. Cloud computing (both public and private) provides substantially seamless pooling of resources, as well as a reduced need to manage and configure underlying hardware infrastructure.
A public cloud is managed by a vendor and typically supports multiple consumers using the same infrastructure. Also, a public cloud, as opposed to a private cloud, can free up the end users from managing the hardware. A private cloud may be managed by the organization itself and the infrastructure is typically not shared with other organizations. The organization still maintains the hardware to some extent, such as installations and repairs, etc.
In the embodiment shown in
It will also be noted that system 100, or portions of it, can be disposed on a wide variety of different devices. Some of those devices include servers, desktop computers, laptop computers, tablet computers, or other mobile devices, such as palm top computers, cell phones, smart phones, multimedia players, personal digital assistants, etc.
Under other embodiments, applications or systems are received on a removable Secure Digital (SD) card that is connected to a SD card interface 15. SD card interface 15 and communication links 13 communicate with a processor 17 (which can also embody processor 120 from
I/O components 23, in one embodiment, are provided to facilitate input and output operations. I/O components 23 for various embodiments of the device 16 can include input components such as buttons, touch sensors, multi-touch sensors, optical or video sensors, voice sensors, touch screens, proximity sensors, microphones, tilt sensors, and gravity switches and output components such as a display device, a speaker, and or a printer port. Other I/O components 23 can be used as well.
Clock 25 illustratively comprises a real time clock component that outputs a time and date. It can also, illustratively, provide timing functions for processor 17.
Location system 27 illustratively includes a component that outputs a current geographical location of device 16. This can include, for instance, a global positioning system (GPS) receiver, a LORAN system, a dead reckoning system, a cellular triangulation system, or other positioning system. It can also include, for example, mapping software or navigation software that generates desired maps, navigation routes and other geographic functions.
Memory 21 stores operating system 29, network settings 31, applications 33, application configuration settings 35, data store 37, communication drivers 39, and communication configuration settings 41. Memory 21 can include all types of tangible volatile and non-volatile computer-readable memory devices. It can also include computer storage media (described below). Memory 21 stores computer readable instructions that, when executed by processor 17, cause the processor to perform computer-implemented steps or functions according to the instructions. The items in data store 122, for example, can reside in memory 21. Similarly, device 16 can have a client business system 24 which can run various business applications or embody parts or all of system 100. Processor 17 can be activated by other components to facilitate their functionality as well.
Examples of the network settings 31 include things such as proxy information, Internet connection information, and mappings. Application configuration settings 35 include settings that tailor the application for a specific enterprise or user. Communication configuration settings 41 provide parameters for communicating with other computers and include items such as GPRS parameters, SMS parameters, connection user names and passwords.
Applications 33 can be applications that have previously been stored on the device 16 or applications that are installed during use, although these can be part of operating system 29, or hosted external to device 16, as well.
The mobile device of
Note that other forms of the devices 16 are possible.
Computer 810 typically includes a variety of computer readable media. Computer readable media can be any available media that can be accessed by computer 810 and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer storage media is different from, and does not include, a modulated data signal or carrier wave. It includes hardware storage media including both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computer 810. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer readable media.
The system memory 830 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 831 and random access memory (RAM) 832. A basic input/output system 833 (BIOS), containing the basic routines that help to transfer information between elements within computer 810, such as during start-up, is typically stored in ROM 831. RAM 832 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 820. By way of example, and not limitation,
The computer 810 may also include other removable/non-removable volatile/nonvolatile computer storage media. By way of example only,
Alternatively, or in addition, the functionality described herein can be performed, at least in part, by one or more hardware logic components. For example, and without limitation, illustrative types of hardware logic components that can be used include Field-programmable Gate Arrays (FPGAs), Program-specific Integrated Circuits (ASICs), Program-specific Standard Products (ASSPs), System-on-a-chip systems (SOCs), Complex Programmable Logic Devices (CPLDs), etc.
The drives and their associated computer storage media discussed above and illustrated in
A user may enter commands and information into the computer 810 through input devices such as a keyboard 862, a microphone 863, and a pointing device 861, such as a mouse, trackball or touch pad. Other input devices (not shown) may include a joystick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to the processing unit 820 through a user input interface 860 that is coupled to the system bus, but may be connected by other interface and bus structures, such as a parallel port, game port or a universal serial bus (USB). A visual display 891 or other type of display device is also connected to the system bus 821 via an interface, such as a video interface 890. In addition to the monitor, computers may also include other peripheral output devices such as speakers 897 and printer 896, which may be connected through an output peripheral interface 895.
The computer 810 is operated in a networked environment using logical connections to one or more remote computers, such as a remote computer 880. The remote computer 880 may be a personal computer, a hand-held device, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 810. The logical connections depicted in
When used in a LAN networking environment, the computer 810 is connected to the LAN 871 through a network interface or adapter 870. When used in a WAN networking environment, the computer 810 typically includes a modem 872 or other means for establishing communications over the WAN 873, such as the Internet. The modem 872, which may be internal or external, may be connected to the system bus 821 via the user input interface 860, or other appropriate mechanism. In a networked environment, program modules depicted relative to the computer 810, or portions thereof, may be stored in the remote memory storage device. By way of example, and not limitation,
It should also be noted that the different embodiments described herein can be combined in different ways. That is, parts of one or more embodiments can be combined with parts of one or more other embodiments. All of this is contemplated herein.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.