Some embodiments relate to project planning systems. More specifically, some embodiments concern graphical assignment of staff members to a project.
Conventional enterprise architectures include a user interface layer for presenting back-end information to a user. The user interface layer may consist of a portal or other application which includes proprietary mechanisms for communicating with business objects of an application layer. The user interface layer receives information related to the business objects from the application layer and presents the information to the user.
The above-mentioned proprietary mechanisms are typically required to support a communication protocol between the user interface layer and the application layer. Moreover, the proprietary mechanisms control the formatting of business object information into graphical elements of a user interface. Business objects currently used in business applications therefore do not efficiently interact with the user interface layer. In some systems, a business object may be mapped into graphical elements in order to improve compatibility between the business object and a user interface. These systems exhibit a slow response time due to the required mapping.
A system to facilitate presentation of back-end business information within a web browser is described in commonly-assigned and co-pending U.S. patent application Ser. No. ______, entitled “System and Method of Communicating Between Heterogeneous Systems”, filed on ______, 2007 (Attorney Docket No. 2007E00079US), the contents of which are incorporated herein for all purposes. Such a system provides a general framework for addressing the foregoing, but further improvements are desired to manage various usage scenarios. For example, efficient systems for assigning people to particular tasks and for graphically displaying the results of such assignment are desired.
UI layer 110 of architecture 100 includes UI component 115 for displaying a user interface to a user. UI component 115 may also detect user manipulation of the user interface and transmit an indication of a user interface event to application layer 120 based on the detected manipulation. UI component 115 may communicate with application layer 120 via any protocol(s), including but not limited to services-based protocols. According to some embodiments, UI component 115 comprises a Java® applet executed by a Java Execution Engine.
Application layer 120 includes business object 122 and UI controller object 124. According to some embodiments, application layer 120 comprises program code of SAP Enterprise Portal® and SAP Web Application Server®. Business object 122 may comprise business logic and/or data having any suitable structure. Business object 122 may encapsulate data received from back-end systems. According to some embodiments, application layer 120 comprises software connectors to several different types of data sources. For example, application layer 120 may support any of the protocols in the following non-exhaustive list: Java Database Connectivity (JDBC), SAP Java Connector (JCO), P4, and Simple Object Access Protocol (SOAP).
In business software environments, such as in enterprise service architecture systems, business objects can be defined according to a node structure that may specify corresponding data elements and behaviors to be associated with the business objects. A business object may include nodes, attributes, queries and actions. Development of a business software environments may involve defining an object model that specifies interrelationships of business objects to be implemented in an application framework.
Business object 122 may communicate with UI controller object 124 via enterprise services-based communication. UI controller object 124 may therefore call services of business object 122 and expose its own services to UI layer 110. The services exposed by UI controller object 124 may be supported by calls to the services of business object 122. For example, UI component 115 may use the services exposed by UI controller object 124 to generate user interface elements related to the data and logic of business object 122. Business object 122 and UI controller object 124 may be implemented in ABAP®, but embodiments are not limited thereto.
According to some examples of operation, UI controller object 124 receives an indication of a user interface event from UI layer 110 and calls an appropriate service of business object 122 based on the user event. Business object 122 updates itself based on the service call and UI controller object 124 generates user interface elements corresponding to the update. UI controller object 124 then transmits the user interface elements to UI component 115 for subsequent display to a user.
Process 200 and all other processes mentioned herein may be embodied in processor-executable program code read from one or more of a computer-readable medium, such as a floppy disk, a CD-ROM, a DVD-ROM, a Zip™ disk, a magnetic tape, and a signal encoding the process, and then stored in a compressed, uncompiled and/or encrypted format. In some embodiments, hard-wired circuitry may be used in place of, or in combination with, program code for implementation of processes according to some embodiments.
Initially, an indication of a user interface event is received at S210. The user interface event may be detected by a UI component such as UI component 115 and the indication may be transmitted thereby as well.
In this regard, core business object 310 provides core services to controller business object 320. Controller business object 320 contains associated UI controller classes 325. Business object 310 and controller business object 320 may therefore comprise particular implementations of business object 122 and UI controller object 124, respectively.
According to architecture 300, controller business object 320 exposes core services to intermediate graphics layer (IGL) 330. IGL 330 may include UI building blocks such as, but not limited to, tools generation module 332, data retrieval module 334, event handler 336, and eXtended Markup Language (XML) generation module 338. Operation of each of the elements of IGL 330 according to some embodiments will be described below.
IGL 330 communicates with browser 340 including graphics engine 345. Graphics engine 345 interprets XML document 350, which may have been received in whole or in part from IGL 330, and operates in conjunction with browser 340 to present a user interface based on XML document 350. Browser 340 may comprise any suitable Web browser and graphics engine 342 may comprise a Java execution engine which executes an applet 344 to interpret XML document 350. Accordingly, XML document 350 may be formatted according to any protocol supported by graphics engine 345 and/or by code executed by graphics engine. In some embodiments, document 350 is not an XML document but is instead a HyperText Markup Language (HTML) document with associated JavaScript code.
In some embodiments, user interface 400 comprises a main window of a web browsing application displayed on a flat panel LCD monitor coupled to a desktop computer. Examples of other client devices include, but are not limited to, a laptop computer, a personal digital assistant, a cellular telephone, and a tablet-based personal computer.
User interface 400 may be generated by XML generation module 336 based on one or more business objects such as core business object 310 as will be described in detail below. User interface 400 includes user interface controls such as buttons, tabs, and pull-down menus to select and/or manipulate data displayed by user interface 400. Such controls may also allow a user to manipulate the format and type of data displayed by user interface 400. Embodiments are not limited to the user interface layout and/or user interface controls of
Teams and Staffing tab 410 of user interface 400 has been selected, resulting in display of project staffing area 420 and Gantt chart 430. Project staffing area 420 includes graphical indicators of project DC8 and project elements DC8-1 through DC8-14. Project staffing area 420 allows a user to graphically assign a person (and a service) to a project element, or task.
For example, as shown in
The foregoing manipulation may cause graphics engine 345 to detect a user interface event such as that described with respect to S210 of process 200. Graphics engine 345 may call a Web service of IGL 330 in response to the event. IGL 330 therefore receives an indication of the user interface event at S210 and, in response, determines an instruction to assign a person to a task based on the user interface event at S220.
Next, at S230, a service of a user interface controller object is called. The service is called to assign the person to the task based on the determined instruction.
The Interaction node, in turn, calls a service of a business object associated with the task at S240. The call is intended to assign the selected person to the task. At S250, the business object is updated at S250 to assign the person to the task.
In some embodiments such as that illustrated in
For purposes of the present example, Project business object 310 is assumed to be associated with project DC8 mentioned above. Moreover, according to the particular architecture of business object 310, Task node 312 is associated with task DC8-8 and TaskService node 314 specifies those persons assigned to task DC8-8. Accordingly, TaskService node 314 is updated at S250 to assign Donna Markham to task DC8-8 according to some embodiments. S250 may comprise updating other or additional nodes within Project business object 310 and/or one or more nodes of other business objects 700.
The user interface controller object is synchronized with the updated business object at S260. Change Handler 316 of core business object 310 may detect the update and interact with Change Handler 327 of controller business object 320 as shown in
A user interface is generated at S270. The user interface is to present a Gantt chart representing the updated business object. Typically, a Gantt chart comprises a bar chart illustrating start and finish dates of terminal elements of a project. A Gantt chart may also show dependent relationships between project elements. For example, a Gantt chart may represent the phases and activities of a project work breakdown structure, where a summary of terminal elements may be shown, including all of their associated activities and percentage of activities completed.
Returning to
Such an XML document may be transmitted to browser 340 and interpreted by applet 344 to display the associated user interface.
An indication of the user interface event illustrated in
User interface 1100 of
User interface 1300 of
In contrast to the project staffing areas of the above-described user interfaces, team staffing area 1322 displays one row for each team member. Beneath each row associated with a team member are rows indicating each task and related service to which the team member is assigned. Area 1322 also includes an Unstaffed row under which unassigned services and their associated tasks 1330 and are listed.
Embodiments are not limited to the above-described user interfaces or user interface events. According to some embodiments, a user interface presented by graphics applet 344 may support drag-and-drop user interface events to assign a person to a task. For example, a graphical indicator of a task service may be selected and “dropped” onto a graphical indicator of a team member and, at S220, an instruction to assign the team member to the task is determined.
Elements described herein as communicating with one another are directly or indirectly capable of communicating over any number of different systems for transferring data, including but not limited to shared memory communication, a local area network, a wide area network, a telephone network, a cellular network, a fiber-optic network, a satellite network, an infrared network, a radio frequency network, and any other type of network that may be used to transmit information between devices. Moreover, communication between systems may proceed over any one or more transmission protocols that are or become known, such as Asynchronous Transfer Mode (ATM), Internet Protocol (IP), Hypertext Transfer Protocol (HTTP) and Wireless Application Protocol (WAP).
The embodiments described herein are solely for the purpose of illustration. Those in the art will recognize other embodiments may be practiced with modifications and alterations limited only by the claims.