Best Practice to delete released parts from Oracle Agile PLM.
We have a requirement to mass delete the released parts from agile plm system.
What is the best way to delete the released parts from system. Can we delete those parts directly from database . Will there be any impact of this in system if delete from backend database.?
Short answer is yes there will be an impact, the parts will likely have relationships in the data to changes, history table, a whole bunch of stuff which will be broken. Sounds like a bad idea to me. What wrong with obsoleting them and leaving them in the database?
As you want to ensure that Item’s are not visible and not to permanently delete it means you should go ahead with soft-delete.
Now coming to soft-delete, generally as a best practice you should ensure that part is an Orphan part i.e. Not having any dependencies like pending changes or attached MPNs or BOMs or Where Used. You can delete it using Agile SDK thereafter or SQL statement where SDK is preferred one. You can use Object.delete() and soft delete it. It will be there in your recycle bin.
If you must go ahead with Soft-Delete via DB then
1. Take a prior back up of your DB.
2. Execute the statement –> UPDATE ITEM SET DELETE_FLAG=1 WHERE ITEM_NUMBER IN (‘ITEM1′,’ITEM2’);
3. Execute A-verify and ensure all the data errors are taken care of.
4. Generally this approach worked for me.
Have tried both SDK and SQL script approach and both have worked fine. Preferred is SDK
I would recommend just modifying your discovery privileges/criteria to not include the obsolete parts that the users don’t want to see. That way you don’t have to worry about unreleasing anything (which can be risky itself) in order to soft-delete nor would you be in risk of breaking any associations to workflows, change objects, etc…
If there are some Obsolete parts they do want to see and some they don’t – you could just create some new page2 attribute that could be used to differentiate the two situations. This could be used in your discovery criteria. Something like Discover Valid Parts (Part Objects where Page 2 “Valid” is not “NO”).
Once you have all of the invalid parts marked (which can be done via import if you leave it not change controlled) you can simply hide this attribute to avoid confusion and/or anyone marking items invalid that shouldn’t be.
Danny Pitt DOES HAVE A POINT!!
Malaku, do not delete anything, Agile’s functionalities is all about deal with this kind of requirement, it’s extremely flexible and with changes in privileges and roles you´ll get the desired goal in a fast and reliable manner.