I’ve always had difficulty explaining the concept of global and project data to new users of Primavera P6 in my training courses. It’s a bit too much for some, and why should you even care? You seem to be able to use Primavera P6 just fine without any knowledge of Global or Project Data.
You can, but you can also get into trouble once you start moving data around, especially back and forth between databases. If you’ve ever sent or received a Primavera P6 .xer file then this guide is for you. It will help you to make sure your Primavera P6 project data is making it to it’s destination when you send a file. But it’s also good knowledge to have for any user of Primavera P6 Professional or EPPM.
Primavera P6 Global & Project Data
It’s important to remember that Primavera P6 was initially designed as an Enterprise project management system. Even though many of us use Primavera P6 as a standalone tool, shunning all of the enterprise bells and whistles, at it’s core is a database initially designed for the enterprise’s needs. If Primavera P6 was truly a standalone tool, you’d find it to resemble a tool like Microsoft Project, where you deal with files only and projects don’t share data between them.
Primavera P6, both the Professional version and EPPM, have a more complex data structure that enables them to be in the realm of Enterprise software tools. The goal was to design a system that could be used by an organization’s many departments. So it would have to be flexible enough to be configurable for each department’s needs. But also, the organization would want some over-arching corporate assets that could be set up and available to any department.
With Primavera P6, a primary enterprise distinction is that we have this concept of “Global” data objects and “Project” (or embedded) data objects.
If you consider that any company that sets up Primavera P6 will want to reuse and share data objects across their P6 projects, then you have just revealed the difference between global and project objects. Global objects can be shared and used on more than one project, while embedded objects cannot.
Primavera’s Global Objects Are Linked And Not Embedded in Projects
Going a bit deeper, we encounter how global data objects are actually shared by multiple projects – it’s a concept I call “linking”. By the way, these concepts exist everywhere in databases, and are not unique to Primavera P6….just sayin’.
Global objects are P6 constructs that are used on or linked in to a project, but never wholly become part of the project. For example, a global Calendar exists in P6’s database where it can be shared and used on multiple projects. Thus, a global Calendar gets linked to a project and used on Activities in that project, but the Calendar never becomes wholly owned by the project nor is it embedded inside the project.
The same concept always applies to Resources. A Resource can be assigned to a project’s activities, but the Resource (and it’s associated attributes, like Price/Unit hourly rate) are never embedded into a project. That same resource can always be assigned to the activities of another project at the same time, applying the linking concept or the sharing of resources across projects.
When you start to thing about all of the many global objects that can be linked to a large project, the list starts to look like this:
- Global Calendars
- Cost Accounts
- Global Activity Codes
- Project Codes
- Shift Calendar
- User Defined Fields
Qualities of global objects is summarized in this list :
- global objects can be used on the activities of multiple projects.
- global objects exist outside of all projects.
- global objects are not deleted when their associated project(s) are deleted.
- global objects can be left out during an import process.
It’s import to understand Primavera P6’s innate data linking concept because it comes into play in a major way when you export and import projects through .xer files. More on that soon.
What is An Embedded (Project) Object?
Some of the data objects in the list above can also be created as a “Project” object. Let’s look at Calendars again. A Calendar in P6 can be created either as a Global Calendar (shareable on other projects) or a Project Calendar, which then becomes embedded inside the project you use it on. Project Calendars can’t be shared or used on other projects. No embedded object can.
Other examples include Project Layouts or Activity Codes. Here again, you have the option to create either a Global Activity Code, or a Project Activity Code.
Embedded object are wholly owned by the project. Embedded objects in a project has these qualities:
- embedded objects cannot be used or linked to another project’s activities.
- embedded objects exists only inside the project and can be edited only when the project is open.
- embedded objects are deleted along with the project.
- embedded objects are always imported with the project and cannot be left out.
Exporting and Importing Primavera P6 Global Objects
This where things can get messy.
If I want to export a project to an .xer or .xml file, and ensure you have a complete record of the project, then during the export, all the bits of linked Global objects have to come along for the ride. And that’s why happens. Included inside the .xer/.xml file are all of the Global Resources, Calendars, Activity Codes, Cost Accounts, etc. that are used in the project. So we now have a combination of Global data objects and Project data objects in the same file. This isn’t really a problem on its own, as during the export this all happens automatically and there is no way to alter what data goes into an export file from Primavera P6 Professional (well, there is this…).
However, it’s on the importing of data from a .xer or .xml file that many users usually run into trouble.
And that will be the topic of my next post in this series. Read the next post now.
I always appreciate comments or opinions on anything I’ve written here. Use the comment section below and start a discussion.