Workers often enter work units such as time into work tracking systems. As used herein, a work tracking system is a system that tracks units of work, such as units of time, units of items produced by a worker, units of items consumed by a worker while working, etc. An example of a work tracking system is an enterprise resource planning (ERP) system. ERP systems often maintain representations of projects and tasks, as well as user profiles for workers assigned to those tasks and time spent on those tasks by the associated workers. Time spent on tasks has been manually entered into the ERP system by workers. In an ERP system, the user profiles can be associated with tasks to which the workers represented by the user profiles are assigned.
The tools and techniques discussed herein relate to the reporting of work units such as time from a client computing device to a work tracking system. The work units can be associated with one or more user profile contacts, which have been retrieved from the work tracking system and which may have been linked to existing contacts on the client computing device. As used herein, a user profile contact is data representing a contact that is associated with the user profile. For example, a user profile contact may be a business contact associated with the user profile. The work unit information reported to the work tracking system may or may not identify the user profile contact(s) associated with the work unit information. Also, the reported work unit information may include additional information besides a quantity of work units (e.g., quantity of time), such as start and end time/date, task or project worked on, location information, comments, etc.
In an embodiment of the tools and techniques, user input is received at a client computing device. The user input can request one or more contacts for a user profile in a work tracking system that is remote from the client computing device. For example, the user profile may be a user profile for a user that entered the user input or for someone who directed the user to enter the user input. In response to the user input, information on one or more user profile contacts associated with the user profile in the work tracking system can be retrieved. At least one of the user profile contact(s) can be linked with one or more existing contacts in the client computing device. Time information that is associated with one of the user profile contact(s) can be captured in the client computing device and reported over a computer network to the work tracking system.
In yet another embodiment of the tools and techniques, user input can be received at a client computing device. The user input can request one or more contacts for a user profile in a work tracking system that is remote from the client computing device. In response to the user input, information on one or more user profile contacts associated with the user profile in the work tracking system can be retrieved. Work unit information that is associated with one of the user profile contact(s) can be captured in the client computing device and reported to the work tracking system over a computer network.
This Summary is provided to introduce a selection of concepts in a simplified form. The concepts 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 to limit the scope of the claimed subject matter. Similarly, the invention is not limited to implementations that address the particular techniques, tools, environments, disadvantages, or advantages discussed in the Background, the Detailed Description, or the attached drawings.
Embodiments described herein are directed to techniques and tools for improved reporting of work unit information, such as time information, to work tracking systems. For example, such reporting may be used by workers in an organization that requires the workers to log time for the hours worked on specific tasks. Such improvements may result from the use of various techniques and tools separately or in combination.
Such techniques and tools may include importing business contacts from a work tracking system (such as an ERP system) onto a client computing device (such as a handheld mobile device). The imported contacts can be linked to existing contacts on the client computing device. This can allow work units such as time to be reported in a convenient way while performing operations of the client computing device, such as making phone calls to or schedule meetings with these contacts. For example, a time reporting application can automatically retrieve this information from data structures on the client computing device, such as from an appointment in a personal information management application (for a meeting) or from telephone call logs (for a telephone call) and could report the time to the work tracking system over a computer network, such as directly to the work tracking system or via cloud based services.
In one implementation, a time reporting application on a client computing device (e.g., a mobile telephone, a tablet computer, etc.) can capture time from a calendar data structure and from a phone call log for meetings with and telephone calls to a business contact, which has been retrieved from a work tracking system. The time reporting application can automatically capture the time information including start date and time and end date and time for the meetings and/or phone calls made to the business contact. The time reporting application can send this information to the work tracking system via a computer network. This implementation can also allow users to download business contacts from their work tracking system to their client computing device. The implementation may also allow users to link downloaded business contacts to existing contacts, as well as to report time for work associated with a business contact. Additional metadata may be associated with the time, such as a task being worked on with the business contact, a location (such as an address or latitude/longitude from a global positioning sensor in the mobile telephone), start date and time and end date and time to a meeting with or telephone call made to a business contact.
This metadata can be reported to a work tracking system, such as a company's time reporting system. The time reporting may be done directly over a computer network (e.g., a proprietary wireless data network and/or a global computer network) or over a computer network via a cloud based service. The cloud based service can push the information from the mobile telephone to the work tracking system. The time reporting application may also include additional functionality, such as allowing a user to view a history of time captured and/or reported on the client computing device, allowing a user to view a status of a particular task or project (e.g., how much time has been reported to the time reporting system from all devices for a particular task, project, or business contact).
Accordingly, one or more benefits can be realized from the work unit reporting tools and techniques described herein. For example, the tools and techniques discussed herein may make it easier for workers to record work units such as time using handheld mobile devices, such as mobile telephones.
The subject matter defined in the appended claims is not necessarily limited to the benefits described herein. A particular implementation of the invention may provide all, some, or none of the benefits described herein. Although operations for the various techniques are described herein in a particular, sequential order for the sake of presentation, it should be understood that this manner of description encompasses rearrangements in the order of operations, unless a particular ordering is required. For example, operations described sequentially may in some cases be rearranged or performed concurrently. Moreover, for the sake of simplicity, flowcharts may not show the various ways in which particular techniques can be used in conjunction with other techniques.
Techniques described herein may be used with one or more of the systems described herein and/or with one or more other systems. For example, the various procedures described herein may be implemented with hardware or software, or a combination of both. For example, dedicated hardware implementations, such as application specific integrated circuits, programmable logic arrays and other hardware devices, can be constructed to implement at least a portion of one or more of the techniques described herein. Applications that may include the apparatus and systems of various embodiments can broadly include a variety of electronic and computer systems. Techniques may be implemented using two or more specific interconnected hardware modules or devices with related control and data signals that can be communicated between and through the modules, or as portions of an application-specific integrated circuit. Additionally, the techniques described herein may be implemented by software programs executable by a computer system. As an example, implementations can include distributed processing, component/object distributed processing, and parallel processing. Moreover, virtual computer system processing can be constructed to implement one or more of the techniques or functionality, as described herein.
The computing environment (100) is not intended to suggest any limitation as to scope of use or functionality of the invention, as the present invention may be implemented in diverse general-purpose or special-purpose computing environments.
With reference to
Although the various blocks of
A computing environment (100) may have additional features. In
The storage (140) may be removable or non-removable, and may include computer-readable storage media such as magnetic disks, magnetic tapes or cassettes, CD-ROMs, CD-RWs, DVDs, or any other medium which can be used to store information and which can be accessed within the computing environment (100). The storage (140) stores instructions for the software (180).
The input device(s) (150) may be a touch input device such as a keyboard, mouse, pen, or trackball; a voice input device; a scanning device; a network adapter; a CD/DVD reader; or another device that provides input to the computing environment (100). The output device(s) (160) may be a display, printer, speaker, CD/DVD-writer, network adapter, or another device that provides output from the computing environment (100).
The communication connection(s) (170) enable communication over a communication medium to another computing entity. Thus, the computing environment (100) may operate in a networked environment using logical connections to one or more remote computing devices, such as a personal computer, a server, a router, a network PC, a peer device or another common network node. The communication medium conveys information such as data or computer-executable instructions or requests in a modulated data signal. A modulated data signal is 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 include wired or wireless techniques implemented with an electrical, optical, RF, infrared, acoustic, or other carrier.
The tools and techniques can be described in the general context of computer-readable media, which may be storage media or communication media. Computer-readable storage media are any available storage media that can be accessed within a computing environment, but the term computer-readable storage media does not refer to propagated signals per se. By way of example, and not limitation, with the computing environment (100), computer-readable storage media include memory (120), storage (140), and combinations of the above.
The tools and techniques can be described in the general context of computer-executable instructions, such as those included in program modules, being executed in a computing environment on a target real or virtual processor. Generally, program modules include routines, programs, libraries, objects, classes, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The functionality of the program modules may be combined or split between program modules as desired in various embodiments. Computer-executable instructions for program modules may be executed within a local or distributed computing environment. In a distributed computing environment, program modules may be located in both local and remote computer storage media.
For the sake of presentation, the detailed description uses terms like “determine,” “send,” “receive,” and “operate” to describe computer operations in a computing environment. These and other similar terms are high-level abstractions for operations performed by a computer, and should not be confused with acts performed by a human being, unless performance of an act by a human being (such as a “user” or “worker”) is explicitly noted. The actual computer operations corresponding to these terms vary depending on the implementation.
The work tracking system (214) can maintain information, such as in one or more databases. For example, the work tracking system (214) can maintain user profiles (220), which may represent a user, group of users, etc., as well as work unit information (222). For example, the user profiles (220) and the work unit information (222) may be part of a work break down structure, which can break down work information for projects, etc. The work tracking system (214) may associate each item of the work unit information (222) with a user profile (220), such as using associations within a work break down structure. The work tracking system (214) may also maintain other information, including other associations. For example, the work tracking system (214) may associate user profiles (220) with projects, tasks, user groups, other user profiles, etc. Additionally, the work unit information (222) may associate work units with user profiles, tasks, projects, etc.
The work tracking system (214) may include a communications service such as a web service, which can expose services to the client computing device (210). For example, these exposed services may include a service to expose at least a portion of the information in a work break down structure to the client computing device (210), such as information on user profiles (220) and work unit information (222) (e.g., for providing status information). The exposed services may also include a service to expose a list of time entry categories for a project, which could allow the selection of such categories by user input when reporting time from the client computing device (210). As another example, the exposed services may include a service to receive work unit information sent by the client computing device (210).
Additionally, the work tracking system (214) may provide an interface to allow user input to edit and use the work unit information (222), such as by including work unit information (222) received from the client computing device (210) on timesheets or other data structures associated with a user profile (220).
The client computing device (210) can host a reporting application (230), which can facilitate capturing work unit information (232) and reporting that information (232) to the work tracking system (214), such as by using one or more of the communication techniques discussed above. The reported work unit information (232) can associate work units with a user profile (220), and/or with one or more tasks, etc.
Additionally, the reporting application (230) may maintain a history (234) of captured work unit information, and may display all or part of that history (234) on a display of the client computing device (210). The history (234) may include information such as the work unit information (232), as well as other information such as whether the work unit information (232) has been selected to be reported to the work tracking system (214), and whether the each item of work unit information (232) has been reported to the work tracking system (214).
The client computing device (210) may receive status information (236) from the work tracking system (214), which can include information on the status of reported work unit information (222). The reported work unit information (236) in the status information (236) may include work unit information (232) reported from the client computing device (210), as well as work unit information (232) reported from other client computing devices. For example, the status information (236) may summarize the status of reported work unit information (222) on a particular task, or by a particular user profile (220).
The client computing device (210) can also maintain event records (240). For example, the event records (240) may include records of meetings or appointments (e.g., calendar records), records of telephone calls (e.g., call log records), records of messages (e.g., records of email messages, text messages, social networking site messages, chat sessions, etc.), records of items to be accomplished (e.g., tasks in a personal information management application) and/or records of other events. These events may be time-based events, so that the event records (240) may include information on time and/or date of event occurrence as well as information on duration of the event (e.g., duration of a meeting, duration of a phone call, etc.). The reporting application (230) can access the event records (240), such as by integrating with the applications that manage the events though application programming interfaces. Through such integration, the reporting application (230) can capture and report work unit information (232) associated with the records. The capturing and/or reporting may be done automatically. However, user input may be provided to opt into and/or out of time reporting. Also, user input may be obtained to verify that particular items of work unit information (232) are to be reported, and to edit or add information.
The client computing device (210) may also maintain existing contacts (242), which can be records of contacts. For example, the existing contacts (242) may be contacts listed on an address book in an application on the client computing device (210), contacts on a social networking site, etc.
Additionally, the client computing device (210) may receive user profile contacts (244) from the work tracking system (214). These user profile contacts (244) can be representations of user profiles (220) on the work tracking system (214). The user profile contacts (244) can be associated with a user profile (220) that is associated with the client computing device (210). For example, a user profile (220) associated with the client computing device (210) may be a user profile (220) on the work tracking system (214), for which user credentials (e.g., username, password, etc.) have been received at the client computing device (210) (e.g., by user input, as will be discussed below). One or more of the user profile contacts (244) may be linked with one or more existing contacts (242). Such linking can allow events for the linked existing contacts (242) to be associated with the linked user profile contact (244), which can the reporting application (230) to associate work unit information (232) for such events with the linked user profile contact (244), which can prompt reporting of the work unit information (232). This is because events that are associated with the user profile contacts (244), or with existing contacts (242) linked to the user profile contacts (244), can be considered to be associated with a corresponding user profile (220) from the work tracking system (214).
User input may be provided to configure a user profile contact (244) for time reporting by default, so that little, if any, user input is needed at the time of an event to report time for that event. Also, user input may be provided to associate a task or project with an event, which can allow the work unit information (232) to include information on associated tasks or projects.
III. Implementation of Reporting Work with User Profile Contacts
An example of an implementation in a client computing device in the form of a mobile telephone (300) with a display (310), such as a touch screen display, will now be discussed.
Referring
The dialog of
Referring now to
When the meeting is completed, the time information for the meeting may be reported automatically without user input. Alternatively, the time information may be captured automatically by the work unit reporting application, as discussed above, and the work unit reporting application can bring up a dialog on the display (310) allowing a user to confirm that the time information is to be reported. Such a dialog is illustrated in
Referring now to
While specific examples have been shown for reporting time for a meeting and a telephone call, time may also be automatically captured for other events associated with a business contact from the work tracking system. For example, such other events may include sending an email message, sending a text message, completing a chat session, etc.
The mobile telephone may also allow time information to be entered manually. Referring to
The mobile telephone (300) can also receive status information from the work tracking system. An example of a display of such information for a task is illustrated in
Referring to
IV. Techniques for Reporting Work with User Profile Contacts
Several techniques for reporting work with user profile contacts will now be discussed. Each of these techniques can be performed in a computing environment. For example, each technique may be performed in a computer system that includes at least one processor and memory including instructions stored thereon that when executed by at least one processor cause at least one processor to perform the technique (memory stores instructions (e.g., object code), and when processor(s) execute(s) those instructions, processor(s) perform(s) the technique). Similarly, one or more computer-readable storage media may have computer-executable instructions embodied thereon that, when executed by at least one processor, cause at least one processor to perform the technique.
Referring to
Time information that is associated with one of the user profile contact(s) can be captured (1940) in the client computing device. The time information can be associated with one of the user profile contact(s). Capturing (1940) time information can include capturing at least a portion of the time information automatically. For example, capturing (1940) the time information can include automatically capturing at least a portion of the time information from a time-based event record in the client computing device. Capturing (1940) time information may include capturing time information for a telephone call made using the client computing device, capturing time information for a message (e.g., a text message, email message, etc.) sent using the client computing device, or capturing appointment time information from a time management application on the client computing device. Also, capturing (1940) the time information may include receiving at least a portion of the time information in user input.
Additionally, the technique can include reporting (1950) the captured time information over a computer network to the work tracking system. The technique may include receiving user input confirming that the captured time information is to be reported, and reporting (1950) the captured time information may be performed in response to this confirming user input. Reporting (1950) the captured time information to the work tracking system can include sending the captured time information over a computer network to a computer service that is configured to communicate with the work tracking system. The service may be a cloud service that is remote form the work tracking system and from the client computing device.
The captured time information may be associated with a task in the work tracking system, such as where the captured time information indicates such a task. The technique may include receiving from the work tracking system information regarding time reported for the task. The information regarding time reported can include information regarding time reported from one or more devices other than the client computing device. A representation of the information regarding time reported for the task can be displayed on the client computing device. Also, a history of captured time information reported to the work tracking system can be maintained, such as where such a history is maintained by the client computing device for time information reported from the client computing device.
Referring now to
Work unit information (such as time information, units produced by the worker, units consumed by the worker, number of messages sent by a worker, etc.) associated with one of the one or more user profile contacts can be captured (2030) in the client computing device. Capturing (2030) the work unit information can include automatically capturing at least a portion of the work unit information from a time-based event record in the client computing device. Also, capturing (2030) the work unit information can include receiving at least a portion of the work unit information as user input.
Additionally, the work unit information can be reported (2040) over a computer network to the work tracking system. Reporting (2040) the captured work unit information can include determining whether communications to the work tracking system are currently available (for example, this may be determining whether communications to an intermediary service (e.g., a cloud service) are available, where the intermediary service is configured to communicate with the work tracking system). If communications to the work tracking system are currently available, then the captured work unit information can be reported without waiting. If communications to the work tracking system are not currently available, then the technique can include waiting until communications to the work tracking system are available and automatically reporting the captured work unit information to the work tracking system when communications to the work tracking system are available.
The technique may further include linking at least one of the user profile contact(s) with one or more corresponding existing contacts in the client computing device. Also, the technique of
Referring now to
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.