From the Task grid you can toggle into a spreadsheet-style editor that supports keyboard editing of the work-breakdown structure and immediately start typing. The editor batches validation, which speeds up the editing process by delaying validation until you hit the Save button. Familiar keyboard navigation gestures, such as using the tab/Shift-tab and arrow keys let you quickly traverse the grid and fill out your plan with the feel of a spreadsheet. Fan favorites undo/redo and copy/paste to and from external spreadsheets are also supported.
By suspending validation (see Session Timeout below), users get a nimbler experience when inserting/updating tasks. A by-product of this experience is a larger window between saves, and the likelihood that one user's edits might contradict a concurrent user's edits. To guide users through these potential conflicts, PPM Pro provides a reconciliation mechanism that is designed to either help resolve any identified conflicts prior to saving, or to prevent saving altogether and encourage the user to make some adjustments before attempting another save. For more information about how PPM Pro reconciles and validates edits, see Concurrent Editing and Reconciliation.
Currently, the maximum number of tasks you can work with in the spreadsheet-style editor is 1000. This means if your traditional task grid has 1000+ tasks, you will not be able to invoke the editor. Similarly, if you copy 1000+ records from a spreadsheet, you will not be able to paste them into the editor. Note that in addition to how the number of tasks being inserted/updated affects performance, there are additional factors such as:
- The number of tasks actually containing edits. Each edit action is being captured in order to support Undo/Redo. The more edit captures, the more impact to overall performance. For example, if you edited 100 tasks in the Spreadsheet-style editor it will impact performance more than if you had copied, pasted, and edited the tasks in in Excel and then copied and pasted back into the Spreadsheet-style editor, because that paste is taken as a single edit for Undo/Redo.
- The number of task dependencies.
- The number of task constraints.
- Number of grid columns.
To invoke the spreadsheet editor, users need Project > Edit > Tasks permission. See About Profile-Based Permissions. Note that this differs from how permissions work in the regular task grid, where task Owners can only edit a set of "non-invasive" fields on their own tasks unless they are given additional permissions.
How to Enable the Editor
There is an icon on the task toolbar - simply click it to toggle into the new editor. The editor will display the same columns that appear on the task grid.
The screenshot below shows the new toggle - remember that the toggle will not be visible if you don't permission to edit at least one task:
When you invoke the editor you can instantly start navigating/typing in edit mode. The editor will display the same columns displayed in the regular task grid.
- Use the tab key or arrow keys to traverse the grid. Shift-tab goes in reverse.
- Hit return to put a date field in edit mode - you can then start typing to edit the date text, or hit the down arrow to display the date picker
- Hit return in a list field, then use the up/down arrows to navigate the list. Hit tab/return to select a list value.
- Hit Escape to cancel edits to current cell
- All toolbar controls also available in right-click context menu
Copying and Pasting
You can copy/paste between cells - for example, copy the Proposed status from one task and paste it into the Status field of one or more tasks. If you paste invalid data into a cell, you will see "N/A" and will need to enter a valid value before you will be allowed to save. You can copy/paste between the spreadsheet-style editor and an external spreadsheet.
- Standard Ctrl-C, Ctrl-V keyboard shortcuts for Copy, Paste
- Multi-select by dragging cursor down a column or across a row
- From within PPM Pro, select entire rows or adjacent cells, copy and paste into a spreadsheet (click the left-most column to select the entire row). Note that you will need to add column titles to the spreadsheet if you want them - they are not included in the copy from PPM Pro.
- Copy rows/cells from an external spreadsheet and paste into spreadsheet-style editor, overwriting existing cells/rows. If you paste more rows than originally existed, additional tasks/rows will be pasted at the end.
- Copying/pasting tasks in a parent-child relationship will be flattened when pasted. If you need to copy/paste and preserve a hierarchy, use the regular task grid's Actions > Copy function.
When pasting tasks, PPM Pro may adjust original values depending on validation rules for various fields. For example, if Duration is 5 days and End Date is 7 days away, the End Date will adjust to 5 days automatically.
You can Undo/Redo within an editing session, which is the period of time between saves. For example, when you invoke the editor, you are starting an editing session. Any changes you make within that session (prior to saving), can be undone/redone. Upon clicking Save, the session ends (and a new session begins if the editor is not closed) and any changes you made in that session cannot be undone.
Note that some changes you make to a task affect other fields. For example, if you change the End Date of a child task to be a later date, the End Date of the parent task will also change - undoing the change to the child task will undo the change to the parent task.
Concurrent Editing and Reconciliation
The spreadsheet-style editor differs from the regular task grid in that it delays validating any data until you hit the Save button (the task grid does a combination of cell-level and row-level validation). Suspending validation allows you to enter/edit data quickly, as well as undo/redo, similar to a spreadsheet-editing experience. We refer to the suspension of validation as an "open session". As mentioned above, for example, you can undo/redo any action you have taken during one open session - once you save, you end the session and the edits made during that session cannot be undone.
The notion of an open session is also important for understanding how the edits of concurrent users are reconciled. As mentioned above, the regular task grid allows multi-edit, but the validation window is very short (cell or row), so the chance of conflict is low. Since users will typically leave the spreadsheet-style editor open for longer periods of time before saving - to take advantage of the undo/redo, for example - PPM Pro acts as a traffic director to manage the validation (or rejection) of concurrent edits.
Currently, if your PPM Pro session times out due to inactivity while you have the spreadsheet-style editor open, you will lose any unsaved changes. Since spreadsheet-style editing sessions will typically be longer than when editing in other parts of PPM Pro, this is just a reminder that in the unlikely event that you leave the editor open for hours on end, you run the risk of losing any unsaved changes if the PPM Pro session has an inactivity timehout. The main benefit of leaving the session open is to extend your ability to undo/redo.
These guidelines describes what happens if 1) a single user enters invalid information in the grid and tries to save, and 2) a concurrent user saved changes prior to the current user saving their changes.
1) Single User Enters Invalid Information in Current Editing Session
If a user enters invalid information during an editing session - like a cyclical task dependency (task A dependent on task B, and task B dependent on task A) - PPM Pro will attempt to reconcile the invalid state by removing one of the dependencies prior to saving. The Validate and Reconcile dialog will provide information about the fields in question, and will state the change that will be made if/when the user clicks the Reconcile button. Other examples of scenarios the system will reconcile automatically include:
- Task has start and target dates that do not match its duration. Reconcile action = update Duration to match dates
- Constraint type and/or constraint dates are invalid. Reconcile action = Constraint Type and Dates will be set to valid options
2) Concurrent Editing Scenarios
When multiple users are using the spreadsheet-style editor to edit the same WBS, any changes saved by other users while your session is open might impact your changes when you save. The Validate and Reconcile dialog will flag any of your changes that are impacted and the message text will indicate whether the system can validate or must discard your changes.
Generally speaking, if a another user makes "structural" changes to their task hierarchy - such as inserting, deleting, moving, or indenting/outdenting tasks - and saved while your session is open, then your changes cannot be saved.
If, however, the concurrent editor made other types of changes, such as a metadata change (for example task title), or other types of non-structural changes, the system uses a "last change in approach" (this is exactly how the regular task grid works). For example, if Joe updates a task title and saves while another user Ada still has an open session, then Joe's change will be saved. When Ada subsequently saves, the value is of the Title field in her hierarchy will be saved ("last in wins") and Joe's task title change will be overwritten. Note that even if Ada never made a change to the title, the value of the her task title will be updated in Joe's view (the system views the field name as the "latest"). The Validate and Reconcile dialog will notify the user (Ada) of the change that Joe made and that the field will be updated to its latest value.
Examples of fields that are subject to "last in wins" edits are:
- Start/End/Complete Date
- Schedule From Date
- Manually scheduled setting
- Is Active? setting
- Budget fields
- Task Type setting
- Change task owner
- Is Capitilized? setting
The current user's photo/gravatar displays in the upper right corner of the screen. If other users are editing the project - either in the spreadsheet editor or elsewhere - an image for each user appears in the top-right corner of the screen. An "eyeball" icon indicates the user is viewing a project section, and a "pencil" icon means the user is editing a project section. This is just informational and is a reminder that someone else might be editing simultaneously and maybe you should touch base if you think you (or other users) might be making structural changes as described above in Concurrent Editing Scenarios.
Permissions, Required Fields, Category Changes
Your administrator can make changes to aspects of tasks, such as permissions, categories, and required fields. Just like with the regular task grid, these changes impact users. While editing in the regular task grid, the changes will be more subtle because you won't be working in an open session. The following describe how these kinds of changes impact a spreadsheet-style editing session.
If your permission to edit tasks is revoked while you are in the spreadsheet-style editor, you will not be able to save your current changes. In addition, if you exit the editor, you will not be able to re-invoke it until you are re-granted Project > Edit > Tasks permission. If you remain in the editor while you get your permissions reinstated by your PPM Pro administrator, you will be able to save once your permissions are correct. If you think you might lose access to the editor, copy the data and paste it into a spreadsheet - you can reapply it later.
Required Fields and Categories
If the definition of a field is changed from not required to required (or the category of a task is changed, and that category adds a required field) and that field has empty values when you edit it in spreadsheet mode, when you save the reconciliation dialog will remind you to enter a value for the new required field. Also, note that validation is not performed when you initially create a task. As a result, if you have left a required field empty, the Save button may still be enabled initially. Once you click Save, the Validation and Reconciliation dialog will instruct you to enter values for any empty required fields.