
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
- Resources
- Roles
- Shift Calendar
- User Defined Fields
- etc.
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.
Thanks , you are really touching big issue in standalone section
I appreciate the comments Samer!
Hi Michael,
How does other add on /link up packages effect Global Data. Eg We are noticing when we import a file that has been run through acumen fuse, we get additional codes coming in. We can either delete the codes at source ie on a stand alone of take the codes out on the server, However I need to know what the impact would be on the programme, and if they are worth removing.
Regards
Robbin
Robbin,
This will be the subject of my article essentially. When we import .xer or .xml files, we are stuck with the conundrum of wanting a complete record of the project, which means importing Global Data that maybe we don’t want in our database. Eventually if you don’t take some sort of action on this, your db Global Data ends up in a complete mess. You can limit what is imported at import time – there’s a screen called “Update Project Options” where you can choose what data comes in and what doesn’t – most of us gloss over that screen and accept the defaults.
In your case, If Acumen Fuse or any other tool is adding Activity Codes, you could easily delete them after import. Activity Codes are 100% informational and will not impact the integrity of a schedule. You could also use the “Update Project Options” screen during import to opt out of importing Activity Codes all together. Hope that helps.
Great article! I just encountered a challenge that brings together all the points you outlined in the article above. Perhaps you can use this example in your next article. I recently imported an XER file containing a CM schedule for review. When I opened the file and run the schedule all the dates changed. At first, I thought the CM forgot to run the schedule after he completed the update. After further investigation I realized that the calendar assigned to the schedule was a global calendar with the exact same name as another global calendar that already existed in our database. P6 over-rided the CMs calendar and applied our calendar which had different holidays and non work days etc….
To solve this issue we requested that the CM create a project level calendar, give it a unique name, and assign it to all activities in the schedule. Thankfully, this solved the issue!! I later realized that I may have been able to avoid this by selecting the right “import options” while importing the XER file but nevertheless I think the safest way to go is to create project level calendars. There is very little margin for human error if everything is assigned on a project level.
Avi
Hi Avi, thanks for sharing your experience – sounds like it was quite a trial to discover what was going on. I’ll cover this issue in an upcoming article.
Excellent outline of the issues with importing and sharing project files.
Keen for you to do a critical review of XER Manager Professional and its ability to assist with issues raised here.
Open Disclosure : I am the owner and author of the product but I always welcome any honest and frank feedback to improve.
Michael,
Highly interesting your articles
As P6 practionner I would like to get your book.
How can I get?
Regards,
Iñaki
Montreal, QC, Canada
Hi Inaki,
There is no book. This article is the guide.
Hi Mr Mchael,
Thank you for your website Sir,
Could you help me Sir,
how to create/show in primavera P6 progress last week?
for example my progress this week is 15%, and progress last week is 10%.
I want to show the progress last week & progress this week in primavera.
Thank a lot Sir,
Ranto
Ranto, P6 doesn’t store historical progress. So if last week, your % Complete was 10%, that is not stored anywhere in P6. What is stored is only the current value as of right now for say % Complete. Thus in order to show progress over your update periods, you’ll have to store that data somewhere yourself. Most will keep a copy of project from last update, so you could have multiple copies of your project with updates for each period. Or you can keep track of things like this in Excel or in your reports. Not a great answer, I know, but that’s how it works.