Community Tip - Learn all about the Community Ranking System, a fun gamification element of the PTC Community. X
Ok, so I am new to the admin side of things and had a user ask a seemingly very simple question that I can't answer. " I deleted a model that I had checked in a week ago. Can you recover it for me?" Let's assume there was a backup after check in and before the delete.
It has to be possible right? I can't find a utility for recovering files and I had pretty much assumed the backups were of the SQL database and was mostly there for disaster recovery. Can someone please give me a high level explanation of how I would recover an individual file?
Hi Tom,
As you have realised, restoring an entire Windchill instance to recover a single item is probably not worth the effort.
The process to restore a single or a few items, should go like this:
What you need to be able to do is translate from Windchill name to the underlying name of vault filename - this is usually a hexadecimal number and you can see all these files in the Windchill Vault filesystem.
It would then be possible to find the file in the filesystem of your Windchill Vault as they don't get deleted at the filesystem level even if deleted in Windchill, unless you perform a "remove un-referenced files" using the vault admin tool.
Even if you have performed a "remove un-referenced files", if you back up your file system to tape the file/files can be restored from tape.
You can then rename these files to be able to be opened in the authoring application and save them back into Windchill as new items.
Unfortunately - for you to be able to do all of this you need to be able to know what the underlying filename was in the vault filesystem - ie the hex number, and I suspect that you don't know this. I don't think that there is a way for you to do this retrospectively - if anyone else wants to chime in and explain, please enlighten me...
So in future, what would be wise would be for you to ask PTC or your VAR if there is a script that you can run against your Windchill System every night before you run your backup to dump all the windchill partnames to filesystem name relations from the database so that you can do this in future. The process is known as listvaultfiles
I have a script that does this, but unfortunately I cannot share it with you as it is not mine to share 😞
If you were really desperate and these files were super important, you could restore the Windchill DB from backup to a different schema name in Oracle from a time when the item was in the system and then search this for the Windchill Part name to Vault Filename conversion so you could just restore the vault file, but again it probably is not worth the effort.
I appreciate it probably is not the answer you want, but maybe this will help you understand the process it a bit better and set you up for the future.
Rgds
Gary
Thanks Gary. Can you unpack these parts a little bit for me? Of course this is assuming I did know what the hexadecimal number for a particular model is before its deleted...
"What you need to be able to do is translate from Windchill name to the underlying name of vault filename - this is usually a hexadecimal number and you can see all these files in the Windchill Vault filesystem."
"It would then be possible to find the file in the filesystem of your Windchill Vault as they don't get deleted at the filesystem level even if deleted in Windchill, unless you perform a "remove un-referenced files" using the vault admin tool."
Thanks
Tom
Tom,
Unfortunately there is no easy way to find the underlying vault filename for a known Windchill item - it is not visible in the Windchill UI.
This is why you can't find the hexadecimal filename that you are looking for in the vault filesystem on your system - you are not looking for the correct filename.
You need to run a SQL query that joins several different tables to convert between a particular iteration of a Windchill document part name to the underlying vault filename - sorry it is just not that simple.
That is why I suggested asking PTC tech Support or your VAR to help you or provide you with such a script because it is a reasonable complex query to dump all this information from the database.
I just gave you the information in the hope that you would at least understand the process.
Rgds
Gary
Tom,
take a look at this article I wrote here in the community Resource for reporting.
It's quite long, but you can find in it how to match file vault name with WTParts or EPMDocument.
Hope can be useful for you.
Tom,
I was just checking my notes, and just remembered that you can look up vault filenames using the wtcontenveryfy tool that comes with windchill:
From a Windchill Shell, run windchill wt.fv.tools.WContentVerify -user=<adminid> -password=<adminpassword> -checkBusinessObject
WContentVerify will prompt you for the Content Type of the object
Select Content Type :
1. WTDocument
2. WTPart
3. CAD Document
Enter 1,2, or 3 depending on the business object in question.
At the remaining prompts enter the objects Number, Name,Version and Iteration. For example,
Enter Document Number
GC000035
Enter Document Name
WHEEL_HUB
Enter Version :
A
Enter Iteration :
1
WContentVerify will create a summary report under Windchill\logs with the name BusinessObjectCheck_<date>_<time>.xml
Obviously the part has to be still in the system to find this information, though.
Rgds
Gary
Those are internal DB pointer numbers and not the filename on disk.
It takes multiple DB table lookups to get to the filename on disk number.
This is in example of how to catch internal name and corresponding number of EPMdocs.
https://support.ptc.com/appserver/cs/view/case_solution.jsp?n=CS54021&lang=en
This is not the best way to do it long term but, maybe it will help this once:
Get the date/time when the file was last checked in open the vault folder sort by modified date and find all files modified at that time.
If you have Security Auditing enabled you can pull up a report of items "Check In" by that user and find when the file was last checked in. This will help find the correct file.
Then you could do what Gary said and rename the files and open them up in the authoring application. If you have a lot of checkin activity then it may be hard to narrow it down to the exact file using this method.
However, I don't recommend accessing the vault directly you could accidently delete somthing!
You may want to concider removing the option to delete files for most users. I only like to give it to product/library administrators.