From: Curmudgeon on
I'm posting this for all FWIW. I recently had a large (6000+ tasks)
Project 2003 file that had become both bloated (to 16MB) and corrupted
(could not open in Proj 2007). None of the usual recovery methods was
successful (save mpp immediately after opening, save as mpd/mdb/xml
and re-open in Project).

I was able to import the mpp into a new Project successfully, but this
reset all of the IMSUIDs, which was problematic because the IMSUIDs
are used in many other applications and needed to remain intact.

I saved both the original corrupted file and the new Project to
Access, then joined the MSP_TASKS table in each mdb in a query using
TASK_ID as a join field between ORIGINAL_TASK_UID and NEW_TASK_UID. I
then used that query to replace the new TASK_UID in the new file with
the original TASK_UID from the corrupted file. I made this
substitution in all of the MSP_* tables in the new mdb, and then
opened the latter in Project, imported all of the Project objects
(tables, views, filters, reports, modules, etc.) from the corrupted
mpp, and voila - I had a functioning copy of the original mpp with the
correct IMSUIDs. The new mpp was 10MB smaller than the original.

On closer examination I found that some flag, text and date fields
were not imported during this process, so I wrote a procedure in
Access that updates the fields in the mpp from the corresponding
tables in Access (MSP_TEXT_FIELDS, MSP_DATE_FIELDS, MSP_FLAG _FIELDS).

This process will work only if the corrupted mpp can be opened in
Project, and I am not certain that it would work for all mpp's (ours
is pretty basic and does not involve resources or assignments or
special calendars, etc.). In any case, it worked for us and might be
helpful to somebody, so here it is. If it doesn't work for you you can
have your money back ;^)
From: JulieS on
Thanks for the very helpful post "Curmudgeon". Saving in my
files :-)

I do hope you'll visit our new "home" for questions and answers:

http://social.technet.microsoft.com/Forums/en-US/category/projectserver2010,projectprofessional2010

Julie
Project MVP

Visit http://project.mvps.org/ for the FAQs and additional
information about Microsoft Project

On 6/4/2010 10:19 AM, Curmudgeon wrote:
> I'm posting this for all FWIW. I recently had a large (6000+ tasks)
> Project 2003 file that had become both bloated (to 16MB) and corrupted
> (could not open in Proj 2007). None of the usual recovery methods was
> successful (save mpp immediately after opening, save as mpd/mdb/xml
> and re-open in Project).
>
> I was able to import the mpp into a new Project successfully, but this
> reset all of the IMSUIDs, which was problematic because the IMSUIDs
> are used in many other applications and needed to remain intact.
>
> I saved both the original corrupted file and the new Project to
> Access, then joined the MSP_TASKS table in each mdb in a query using
> TASK_ID as a join field between ORIGINAL_TASK_UID and NEW_TASK_UID. I
> then used that query to replace the new TASK_UID in the new file with
> the original TASK_UID from the corrupted file. I made this
> substitution in all of the MSP_* tables in the new mdb, and then
> opened the latter in Project, imported all of the Project objects
> (tables, views, filters, reports, modules, etc.) from the corrupted
> mpp, and voila - I had a functioning copy of the original mpp with the
> correct IMSUIDs. The new mpp was 10MB smaller than the original.
>
> On closer examination I found that some flag, text and date fields
> were not imported during this process, so I wrote a procedure in
> Access that updates the fields in the mpp from the corresponding
> tables in Access (MSP_TEXT_FIELDS, MSP_DATE_FIELDS, MSP_FLAG _FIELDS).
>
> This process will work only if the corrupted mpp can be opened in
> Project, and I am not certain that it would work for all mpp's (ours
> is pretty basic and does not involve resources or assignments or
> special calendars, etc.). In any case, it worked for us and might be
> helpful to somebody, so here it is. If it doesn't work for you you can
> have your money back ;^)
From: Curmudgeon on
On Jun 4, 12:53 pm, JulieS <Jul...(a)discussions.microsoft.com> wrote:
> Thanks for the very helpful post "Curmudgeon".  Saving in my
> files :-)
>
> I do hope you'll visit our new "home" for questions and answers:
>
> http://social.technet.microsoft.com/Forums/en-US/category/projectserv...
>
> Julie
> Project MVP
>
> Visithttp://project.mvps.org/for the FAQs and additional
> information about Microsoft Project
>

You're welcome - I've gotten lots of good tips from these forums
(fora?) over the years and thought this might help somebody.
From: Curmudgeon on
On Jun 4, 10:19 am, Curmudgeon <eht...(a)gmail.com> wrote:
> I'm posting this for all FWIW. I recently had a large (6000+ tasks)
> Project 2003 file that had become both bloated (to 16MB) and corrupted
> (could not open in Proj 2007). None of the usual recovery methods was
> successful (save mpp immediately after opening, save as mpd/mdb/xml
> and re-open in Project).
>
> I was able to import the mpp into a new Project successfully, but this
> reset all of the IMSUIDs, which was problematic because the IMSUIDs
> are used in many other applications and needed to remain intact.
>
> I saved both the original corrupted file and the new Project to
> Access, then joined the MSP_TASKS table in each mdb in a query using
> TASK_ID as a join field between ORIGINAL_TASK_UID and NEW_TASK_UID. I
> then used that query to replace the new TASK_UID in the new file with
> the original TASK_UID from the corrupted file. I made this
> substitution in all of the MSP_* tables in the new mdb, and then
> opened the latter in Project, imported all of the Project objects
> (tables, views, filters, reports, modules, etc.) from the corrupted
> mpp, and voila - I had a functioning copy of the original mpp with the
> correct IMSUIDs. The new mpp was 10MB smaller than the original.
>
> On closer examination I found that some flag, text and date fields
> were not imported during this process, so I wrote a procedure in
> Access that updates the fields in the mpp from the corresponding
> tables in Access (MSP_TEXT_FIELDS, MSP_DATE_FIELDS, MSP_FLAG _FIELDS).
>
> This process will work only if the corrupted mpp can be opened in
> Project, and I am not certain that it would work for all mpp's (ours
> is pretty basic and does not involve resources or assignments or
> special calendars, etc.). In any case, it worked for us and might be
> helpful to somebody, so here it is. If it doesn't work for you you can
> have your money back  ;^)

I just noticed that I wrote that importing the corrupted mpp into a
new project reset all of the IMSIUDs. I meant TASK_UIDs, of course -
IMSUID is a unique ID that I use in a different application. I missed
the mistake when I proofread the post...
From: Rob Schneider on
this probably would be good to put into the FAQ list?


--rms

www.rmschneider.com




On 04/06/10 17:53, JulieS wrote:
> Thanks for the very helpful post "Curmudgeon". Saving in my files :-)
>
> I do hope you'll visit our new "home" for questions and answers:
>
> http://social.technet.microsoft.com/Forums/en-US/category/projectserver2010,projectprofessional2010
>
>
> Julie
> Project MVP
>
> Visit http://project.mvps.org/ for the FAQs and additional
> information about Microsoft Project
>
> On 6/4/2010 10:19 AM, Curmudgeon wrote:
>> I'm posting this for all FWIW. I recently had a large (6000+ tasks)
>> Project 2003 file that had become both bloated (to 16MB) and corrupted
>> (could not open in Proj 2007). None of the usual recovery methods was
>> successful (save mpp immediately after opening, save as mpd/mdb/xml
>> and re-open in Project).
>>
>> I was able to import the mpp into a new Project successfully, but this
>> reset all of the IMSUIDs, which was problematic because the IMSUIDs
>> are used in many other applications and needed to remain intact.
>>
>> I saved both the original corrupted file and the new Project to
>> Access, then joined the MSP_TASKS table in each mdb in a query using
>> TASK_ID as a join field between ORIGINAL_TASK_UID and NEW_TASK_UID. I
>> then used that query to replace the new TASK_UID in the new file with
>> the original TASK_UID from the corrupted file. I made this
>> substitution in all of the MSP_* tables in the new mdb, and then
>> opened the latter in Project, imported all of the Project objects
>> (tables, views, filters, reports, modules, etc.) from the corrupted
>> mpp, and voila - I had a functioning copy of the original mpp with the
>> correct IMSUIDs. The new mpp was 10MB smaller than the original.
>>
>> On closer examination I found that some flag, text and date fields
>> were not imported during this process, so I wrote a procedure in
>> Access that updates the fields in the mpp from the corresponding
>> tables in Access (MSP_TEXT_FIELDS, MSP_DATE_FIELDS, MSP_FLAG _FIELDS).
>>
>> This process will work only if the corrupted mpp can be opened in
>> Project, and I am not certain that it would work for all mpp's (ours
>> is pretty basic and does not involve resources or assignments or
>> special calendars, etc.). In any case, it worked for us and might be
>> helpful to somebody, so here it is. If it doesn't work for you you can
>> have your money back ;^)