How re-importing a plan works
A re-import updates existing items instead of creating them again. It matches each row of the file to an item by a key, which is a column mapped to an existing text or number field. A row matches an item whose value of that field equals the row’s value in the key column.
The key
Section titled “The key”- Any existing item that holds the value can match. Usually that is an item an earlier import made.
- A Primavera P6 file has a key column of its own, Primavera ID. A first import maps it to a new text field named Primavera ID. A later import maps it to that field.
- For an activity, the Primavera ID is its activity ID. For the project, it is the project ID.
- For a WBS element, the Primavera ID is the project ID followed by the WBS codes down to that element. They are joined with the project’s code separator, as P6 shows them.
- A P6 layout saved as a CSV file maps its Activity ID column to the same Primavera ID field.
- An MS Project file or another table has no key column of its own. It can match by any column mapped to an existing text or number field.
Turning matching on
Section titled “Turning matching on”- Matching is off for every new file until you turn it on.
- Update existing items matched by appears in the summary bar on Map fields only when a column is mapped to an existing text or number field. Its options are Don’t match and the titles of those fields.
- While matching is off, the bar can show a suggestion in its place, such as 1,200 of 1,250 rows match existing items by Primavera ID. It names the column with the most matching rows. Update matching items turns matching on by that column.
- The suggestion counts a row when any item in the organization holds its value. Review can match fewer rows, because each row is matched inside a narrower place.
- Values are compared without spaces at either end, and capital letters count the same as small ones. An empty value never matches.
Where a row is matched
Section titled “Where a row is matched”Each row is matched inside one place, the first of these that applies:
- Below the item matched by the closest row above it in the file’s tree.
- Inside the item chosen in Place under, that item included.
- Among the top-level items, for a row at the top of the file’s tree, when Place under is No parent.
- Across the whole organization, when Place under is No parent.
A row at the top of the file’s tree that finds nothing among the top-level items goes on to the whole organization.
P6 numbers activities per project, so two plans often share an activity ID such as A1000. Once the project row has matched, its activities match only inside that project.
Each existing item matches one row at most. When several items hold the same value, the row takes the one under the item its parent row matched. After that comes an item with the same title, and then the first one found.
Matches from the whole organization
Section titled “Matches from the whole organization”Review lists every match from the whole organization under Matched in another plan. The matches are grouped by the top-level item each one sits in. A plan’s own top-level item, matched among the top-level items, is not listed there.
Each row offers Update it or Create a new one. A group of several rows also offers Update them or Create new ones. A row set to create a new item also creates new items for the rows under it.
Which values a matched row writes
Section titled “Which values a matched row writes”While matching is on, each mapped column on Map fields has an Update checkbox. The key column has none. Turning matching on ticks every column except the WBS category column of a Primavera P6 file.
- The WBS category column starts unticked. Ticked, it replaces all of the item’s tags, including the tags people added in Teamhood.
- A ticked column overwrites the item’s value with the file’s value. This includes a value someone changed in Teamhood.
- A value the item already holds is not written again. It sets off no automation, and it passes nothing to the items under it. Results count only the items the import changed.
- The dates are the exception. When the file moves Start, Finish or the duration, the import writes all of the dates the file gives, as when you drag the start of a bar on the Gantt. An automation on a date can run then, even on a date that did not change.
- A value that another updated item would change is the other exception. An automation or an inherited value from another updated item can change a value on an item, such as a new value a parent passes down. When the file gives that item the value it already has, the import writes that value again. Automations on that field then run for the item. An inherited value passes on to the items under it. Results count the item.
- A column that is not ticked is not read for matched rows. Created rows still take its value.
- In columns other than Parent, an empty cell writes nothing, so it never clears a value.
- An activity whose P6 status is no longer Completed therefore stays completed in Teamhood.
- A matched item keeps its type.
- When the file writes both Start and Finish, the item’s duration is worked out again from the new dates.
- When it writes Start alone, the item keeps its duration, and Finish moves with Start.
- When it writes Finish alone, the item keeps its Start, and the duration is worked out again. A milestone moves to the new Finish instead.
- When it moves Start, the item is pinned at the new Start, as when you edit Start. A Start the file gives again unchanged leaves the pin as it was. See How dependency scheduling works.
- Each matched item you may update takes this import’s Import label, as created items do. When the organization has no Import label field yet and your role may not create fields, the import adds no label, so it also makes no view of its items.
- An import without a project item makes a view of its items, unless it added no label. That view shows the matched items too, and the view of the earlier import no longer shows them.
How matched items move and link
Section titled “How matched items move and link”- With Parent ticked, a matched item moves to where the file places it. An item someone moved in Teamhood moves back.
- A row with no parent in the file moves its item under the item chosen in Place under. When that is No parent, the item moves to the top level.
- Review counts these moves under Existing items to move.
- With Predecessors ticked, the import adds the dependencies the item does not have yet.
- A dependency the item already has on the same predecessor stays as it is, whatever its type or lag.
Dates and lag from a P6 file
Section titled “Dates and lag from a P6 file”- Start and Finish are the activity’s current dates, not its planned dates. The planned dates are separate columns, Planned start and Planned finish.
- The import writes no dates to a WBS element.
- P6 states lag in hours. The import turns the lag into whole working days.
- A working day has the hours per day of the predecessor’s calendar. Without one, it takes the project’s default calendar, and then 8 hours.
What a re-import never changes
Section titled “What a re-import never changes”- It never deletes an item. An activity removed from P6 leaves its item in place.
- It never removes a dependency, and never changes the type or lag of one.
- It writes no field that has no column in the file. The exceptions are the import label, a date or duration that follows from the dates it writes, and the values automations and inherited fields set.
- It never touches comments, attachments or logged time.
Permissions and automations
Section titled “Permissions and automations”- An item whose type you may not update is not changed. Review lists its row with the reason You do not have permission to update this item.
- The rows under such an item still go under it.
- A value in a field you may not edit is left out. Review lists it under Values not updated.
- The organization’s automations run on each updated or moved item, as on any edit.
- An automation that sets a date can change a date that the file set.
- A value inherited from a parent reaches the items under an updated item, as on any edit.
- Values from automations and inherited values show on your screen as soon as the import writes the item.
- The import reschedules nothing. An item that depends on an updated item keeps its dates, and so do the items under an updated item. Only the file and the automations change dates.
- The server can refuse a value that an automation or an inherited value sets on another item. No row fails because of it. Results list it under Automation and inherited values that were refused.
An example
Section titled “An example”A planner imported a P6 plan, and the import created the Primavera ID field. Weeks later, the planner exports the plan again. In P6, activity A1010 was renamed, A1050 was added and A1020 was deleted.
With matching on, Review shows one item to create, for A1050. Every other row shows as an existing item to update. The import button names both counts, such as Import 1 item, update 40. When there is nothing to create, it reads Update 40 items.
After the import, the item for A1010 has the new name. A1050 is a new item under its WBS element. The item for A1020 is still there, because a re-import never deletes.
A WBS element with a new code
Section titled “A WBS element with a new code”The Primavera ID of a WBS element is made from WBS codes. When a WBS element gets a new code or moves in P6, its Primavera ID changes. The re-import then creates a new item for it and leaves the old item in place.
The activities still match by their own IDs. With Parent ticked, they move under the new item, and the old item is left empty.