No matter how hard I try, just could not remove a InfoPath form template which was quiesced successfully from farm.
Below are the error message I got during the struggling:
"The configuration database was queried for a non-existent object with the id bcd64dfc-9b17-020b-3bcd-3e01e80bf8a1. Most commonly, this is caused by removing an SPFeatureDefinition without writing upgrade code to remove references to the feature from each site."
"This form template was deployed as part of the feature. This form template should be removed only by uninstalling that feature."
"Feature with Id 'bcd64dfc-9b17-020b-3bcd-3e01e80bf8a1' is not installed in this farm. The feature was not uninstalled."
In the end, I lost my patience. Since it's in Development environment, I went to the SQL Server to try my luck.
1. Search the whole database to for the feature id or form id
This can be easily done through How do I find a value anywhere in a SQL Server Database
2. Find the relevant records from table "SP_Config.dbo.Objects"
select top 100 * from SP_Config.dbo.Objects
where [Properties] like '%urn:schemas-microsoft-com:office:infopath:IPMYFORM1:-myXSD-2013-01-06T05-53-40%'
3. Delete them.
delete from SP_Config.dbo.Objects
where [ParentId] = 'bcd64dfc-9b17-020b-3bcd-3e01e80bf8a1'
delete from SP_Config.dbo.Objects
where [Id] = 'bcd64dfc-9b17-020b-3bcd-3e01e80bf8a1'
4. Done.
By the way, the article Behind the Scenes of Administrator-Approved Form Templates is really good, helped me to understand the whole form deployment mechanism. I strongly recommend to follow the suggestions from it before trying the database modification.
No comments:
Post a Comment