Importante notar que esta ação é sim suportada porque inclusive é ensinada no TechEd (aos 43:08 min do vídeo referenciado no final deste artigo). Eu somente fiz algumas alterações na procedure para atender melhor nosso cenário.
No script abaixo substitua a palavra [SolutionName] pelo nome de sua solução gerenciada que deseja converter.
declare @solutionId uniqueidentifier, @systemSolutionId uniqueidentifier select @solutionId = solutionid from solutionbase where uniquename = 'SolutionName' select @systemSolutionId = solutionid from solutionbase where uniquename = 'active' update publisherbase set isreadonly = 0 where publisherid in ( select publisherid from solutionbase where solutionid = @solutionId ) declare @tables table (id int identity, name nvarchar(100), ismanaged bit, issolution bit) declare @count int, @currentTable nvarchar(100), @currentM bit, @currentS bit, @sql nvarchar(max) insert into @tables (name, ismanaged, issolution) select name, 1, 0 from sysobjects where id in ( select id from syscolumns where name in ('ismanaged') ) and type = 'u' order by name insert into @tables (name, ismanaged, issolution) select name, 0, 1 from sysobjects where id in ( select id from syscolumns where name in ('solutionid') ) and type = 'u' and name not in ('solutioncomponentbase') order by name select @count = count(*) from @tables while (@count > 0) begin select @currentTable = name, @currentM = ismanaged, @currentS = issolution from @tables where id = @count if (@currentM = 1) begin select @sql = 'update ' + @currentTable + ' set isManaged = 0 where SolutionId = N''' + cast(@solutionId as nvarchar(100)) + '''' exec (@sql) end print 'updated IsManaged to 0 on: ' + @currentTable select @count = @count - 1, @currentTable = null end
Basicamente este código busca todas as tabelas que possuem os atributos [ismanaged] e [solutionid] para poder transformar os componentes da solução em não gerenciáveis e redirecionar as dependências para a solução interna do CRM chamada [Active].
Ref: Advanced Bag of Tips & Tricks for Microsoft Dynamics CRM 2011 Developers
[]s
Nenhum comentário:
Postar um comentário
<< Ao enviar um comentário, favor clicar na opção [Enviar por e-mail comentários de acompanhamento para gtezini@gmail.com] >>