Importation d’organisation ne renomme pas le ftcat_documentindex_ de catalogue de texte intégral < OrganizationIdGuidValue > avec le nouveau OrganizationId dans Microsoft Dynamics CRM 4.0

S’applique à : Dynamics CRM 4.0

Symptômes


Après avoir importé votre organisation à l’aide du Gestionnaire de déploiement, une tâche de système de FullTextCatalogIndex de l’organisation importée s’arrête et reste dans un état d’attente. Si vous avez appliqué le KB977867, vous n’aurez pas le problème.

Cause


Importation d’organisation ne renomme pas le catalogue de texte intégral, et la base de données de l’organisation importée a enregistré le catalogue de texte intégral qui contient le GUID de l’organisation sauvegardées. Essayez d’exécuter la mise à jour du catalogue de texte intégral qui contient le ftcat_documentindex_ d’id organisation < OrganizationIdGuidValue > en cours, puis modifie l’état en attente tâches système.

Résolution


Pour résoudre ce problème, exécutez le script SQL suivant sur la base de données de votre organisation :


DECLARE @ID AS NVARCHAR(128),   @OLDNAME AS NVARCHAR(128), 
@NEWNAME AS NVARCHAR(128),
@LINES AS INT
SELECT @OLDNAME = name FROM SYS.FULLTEXT_CATALOGS WHERE name LIKE 'ftcat_documentindex_%'
SELECT @ID = OrganizationId FROM Organization
SET @ID = REPLACE(@ID,'-','')
SET @ID = LOWER(@ID)
SET @NEWNAME = 'ftcat_documentindex_' + @ID
PRINT 'GUID IS : '+@ID
PRINT '---------------------'
PRINT 'OLDNAME IS : '+@OLDNAME
PRINT '---------------------'
PRINT 'NEWNAME IS : '+@NEWNAME
PRINT '---------------------'
IF @OLDNAME!=@NEWNAME
BEGIN
EXEC sp_fulltext_database 'enable'
-- Drop exsiting full text catalog
PRINT 'START DROPPING EXSITING FULL TEXT CATALOG ..'
PRINT '---------------------'
IF EXISTS (SELECT * FROM sys.fulltext_indexes fti WHERE fti.object_id = OBJECT_ID(N'[dbo].[DocumentIndex]'))
BEGIN
ALTER FULLTEXT INDEX ON [dbo].[DocumentIndex] DISABLE
END
IF EXISTS (SELECT * FROM sys.fulltext_indexes fti WHERE fti.object_id = OBJECT_ID(N'[dbo].[DocumentIndex]'))
BEGIN
DROP FULLTEXT INDEX ON [dbo].[DocumentIndex]
END
SELECT @LINES = COUNT(*) FROM sysfulltextcatalogs ftc WHERE ftc.name = @OLDNAME
IF @LINES > 0
BEGIN
EXEC sp_fulltext_catalog @OLDNAME,'drop'
END
PRINT 'DROPPING COMPLETE ..'
PRINT '---------------------'
-- Add new full text catalog
PRINT 'START ADDING EXSITING FULL TEXT CATALOG ..'
PRINT '---------------------'
EXEC sp_fulltext_catalog @NEWNAME,'create'
EXEC sp_fulltext_table 'documentindex', 'create', @NEWNAME, 'cndx_PrimaryKey_DocumentIndex'
EXEC sp_fulltext_column 'documentindex', 'Title', 'add'

EXEC sp_fulltext_column 'documentindex', 'KeyWords', 'add'

EXEC sp_fulltext_column 'documentindex', 'SearchText', 'add'

EXEC sp_fulltext_table 'documentindex', 'activate'

EXEC sp_fulltext_catalog @NEWNAME, 'start_full'
PRINT 'ADDING COMPLETE ..'
END
ELSE
PRINT 'THE FULL TEXT CATALOG HAS BEEN UPDATED ..'