Restoring Deleted P6 Data - Never Happens Right?
A solution for common cases of accidental data deletion in Primavera P6
Accidental deletion of important data is something that happens. Everyone has done it at some point.
In Primavera P6 EPPM, some of the most common cases of accidental data deletion are:
- Deletion of the wrong resource
- Deletion of the wrong project
- Deletion of the wrong WBS node or nodes
What to do When That "Oops" Moment Happens?
Believe it or not, we sometimes get the call a few days after a deletion has happened, so simply reverting the whole database is no longer an option. We had a client that had deleted more than 400 resources and 15,000 resource assignments. You can imagine the PANICKED call we received. Of course, manually recreating these resources and resource assignments could have been an option...NO WAY! It would have taken literally days of work to redo, and it would have been near impossible to get right, error prone, extremely expensive and could likely result in several people quitting.
Not our First Rodeo With This Client...
The first time a major Oops deletion happened with this client we were using Oracle Enterprise Edition 11g with Primavera P6 and a sensible backup solution was available; however, dealing with backups can be tricky and might take your IT team awhile, several hours or days, to get it restored. In our case, it took IT a few days to get that backup sorted so that we could recover the data that was deleted.
Our Recommendation: P6-Loader
After this first Oops incident, we started proposing that clients use a module we developed as part of our P6-Loader tool that automates the extraction of XML dump files from an Oracle database so we always have them available and do not need to wait to get a backup restored by IT.
The P6-Loader tool is a pretty central piece to solving this problem because XML dump files can be restored very easily. P6-Loader runs once a day and generates a ZIP file that contains:
- A full P6 dump file generated in the form of XMLs and/or P6-Loader Excel files
- A full dump of Global Data in the form of a P6-Loader file
P6-Loader also cleans up old XML files by default for 30 days, but this can be configured to keep them for more or less time.
Now fast forward to the present where our client is in a panic over another deletion, and we can't help but want to pat ourselves on the back knowing that we had P6-Loader as well as P6-Auditor in place. Since our client was using these applications, once they found out that the data had been deleted, they were able to quickly restore the XML files for the projects. Using the P6-Auditor tool, we were able to quickly identify the resources that were deleted with several columns filtered for deleted resources, and with that information, a strategy was created to restore these objects.
This strategy was:
- Determine what resources were deleted with P6-Auditor
- Export the deleted resource list from P6-Auditor
- Use the P6-Loader to load the deleted resources from the global export sheet since they are global objects. (A VLOOKUP may be used to narrow down the deleted resources comparing the P6-Auditor export to the full Resource sheet in the global export)
- There are two options for the next step:
- Import the XML back-up files into P6 (The advantage of doing it from the XML files is that it is out-of-the-box, and there is nothing it wouldn't support.) or
- The XML files may be converted to P6-Loader files in the P6-Loader, and the P6-Loader can be used to recreate all the affected records in the projects affected: (The advantage of doing it with the P6-Loader conversion would be to have better control of what you are importing.)
- Resource Assignments
- Period Actuals
- UDFs and Code Assignments
Success - Again
We are able to restore all the data that was deleted. Hundreds of hours of manual work was avoided and no heads rolled.
Now, How Do We Help Prevent This From Happening Again?
In the case of this client, they were able to identify the user who did the deletes with the P6-Auditor tool. This allowed them to coach that user on how to properly delete data (or not to delete it at all).
About the Author
Ravi started working with computers as a child, programming with BASIC language on his MSX, a platform once popular outside of North America. In 1998, Ravi started an internship where he further developed his programming skills. After one year, this internship became his first job, where he gained experience developing industrial automation systems.
Over time, Ravi has worked in many different industries and programming languages, developing banking, integration and mobile solutions in C/C++, Java, Visual Basic and C # for a variety of platforms.
From 2007 to 2011, Ravi moved from Brazil, his native country, to Canada with the desire to live and learn another culture, as well as gain experience working in diverse environments.
Since 2009, Ravi has been an important part of the team at Emerald Associates. He has participated in key integration projects with major clients, such as CL&P, Suncor and Nexen, acting as the key technical lead in all phases of the projects. Ravi is also a key contributor at Emerald Associates in the development of unique in-house products such as TAPS, EP-datawarehouse, CAPPS, P6-Auditor and P6-Loader.
Ravi is a dedicated and insightful developer, one who prides himself on the quality of his work. He truly strives to provide optimal functionality so that each piece of a complex integration system fits together to give the end-user what they really need and more.
At Emerald Associates, Sue is an Implementation Specialist and has been successful at drawing on her accounting and project management background to consult with our diverse client base. With her friendly demeanor and strong communication skills, she has become a talented Primavera trainer and works very hard to effectively implement Oracle Primavera solutions that cater to each client’s unique organizational needs.