KB2932340 - CORREÇÃO: Erros ao adicionar membros no SQL Server 2012 ou SQL Server 2014 MDS

Aplica-se A
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Sintomas

Tenha em conta o seguinte cenário:

  • Tem o Master Data Services (MDS) para Microsoft SQL Server 2012 ou SQL Server 2014 instalado.
  • Você cria uma entidade que tem 100 membros e tem a opção "Criar valores de código automaticamente" marcada.
  • No MDS Explorer, a entidade tem duas páginas de membros com o número de membros na Página 2 igual ao tamanho da página de grade (o padrão é 50).

Cenário 1:
Clique no botão Adicionar Membro na Página 1, introduza os dados necessários para adicionar o novo membro e, em seguida, clique no botão Página Seguinte . A página 3 é criada e recebe os seguintes erros:

Nota

System.ArgumentOutOfRangeException: [ArgumentOutOfRange_Index]
Argumentos:
A depuração de cadeias de caracteres de recursos não está disponível. Muitas vezes, a chave e os argumentos fornecem informações suficientes para diagnosticar o problema. Consulte http://go.microsoft.com/fwlink/?linkid=106663&Versão=5.1.20913.00&File=mscorlib.dll&key=ArgumentOutOfRange_Index
Nome do parâmetro: índice
   em System.ThrowHelper.ThrowArgumentOutOfRangeException()
   em System.Collections.Generic.List'1.get_Item(índice Int32)
   em System.Collections.ObjectModel.Collection'1.get_Item(índice Int32)
   em Microsoft.MasterDataServices.Client.ViewModel.Common.SortablePagedCollectionView'1.GetEnumerator()
   em System.Windows.Controls.DataForm.get_ItemsCount()
   em System.Windows.Controls.DataForm.SetCanMoveToLastItem()
   em System.Windows.Controls.DataForm.SetAllCanProperties()
   em System.Windows.Controls.DataForm.SetIsItemValid()
   em System.Windows.Controls.DataForm.GenerateUI(Booleano clearEntityErrors, Boolean swapOldAndNew)
   em System.Windows.Controls.DataForm.OnCurrentItemPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
   em System.Windows.DependencyObject.RaisePropertyChangeNotifications(DependencyProperty dp, Object oldValue, Object newValue)
   em System.Windows.DependencyObject.UpdateEffectiveValue(propriedade DependencyProperty, EffectiveValueEntry, oldEntry, EffectiveValueEntry,& newEntry, operação ValueOperation)
   em System.Windows.DependencyObject.SetValueInternal(DependencyProperty dp, Object value, Boolean allowReadOnlySet, Boolean isBindingInStyleSetter)
   em System.Windows.Controls.DataForm.UpdateCurrentItem()
   em System.Windows.Controls.DataForm.<SetUpCollectionView>b__8(instância DataForm, origem do objeto, EventArgs eventArgs)
   em System.Windows.Controls.WeakEventListener'3.OnEvent(origem TSource, TEventArgs eventArgs)
   em System.EventHandler.Invoke(Object sender, EventArgs e)
   em Microsoft.MasterDataServices.Client.ViewModel.Common.SortablePagedCollectionView'1.OnCurrentChanged()
   em Microsoft.MasterDataServices.Client.ViewModel.Common.SortablePagedCollectionView'1.MoveCurrentToPosition(posição Int32)
   em Microsoft.MasterDataServices.Client.ViewModel.Common.SortablePagedCollectionView'1.MoveCurrentTo(Object item)
   em Microsoft.MasterDataServices.Client.ViewModel.MasterData.EntityMembersViewModel.set_SelectedItem(valor de membro)
   em Microsoft.MasterDataServices.Client.ViewModel.Common.ItemsBase'2.ReloadItems()
   em Microsoft.MasterDataServices.Client.ViewModel.MasterData.EntityMembersViewModel.EntityMembers_RefreshNeeded(Object sender, EventArgs e)
   em Microsoft.MasterDataServices.Client.ViewModel.Common.SortablePagedCollectionView'1.Refresh()
   em Microsoft.MasterDataServices.Client.ViewModel.Common.SortablePagedCollectionView'1.MoveToPage(Int32 pageIndex)
   em Microsoft.MasterDataServices.Client.ViewModel.Common.SortablePagedCollectionView'1.MoveToNextPage()
   em System.Windows.Controls.DataPager.PageMoveHandler(Int32 oldPageIndex, Int32 newPageIndex, PageMoveOperationDelegate pageMoveOperation)
   em System.Windows.Controls.DataPager.OnNextPageButtonBaseClick(Object sender, RoutedEventArgs e)
   em System.Windows.Controls.Primitives.ButtonBase.OnClick()
   em System.Windows.Controls.Button.OnClick()
   em System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
   em System.Windows.Controls.Control.OnMouseLeftButtonUp(Control ctrl, EventArgs e)
   na EM. Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, Int32 actualArgsTypeIndex, String eventName, UInt32 flags)

Cenário 2:
Clique no botão Adicionar Membro na Página 2 para forçar o Explorer a adicionar uma nova página. Em seguida, a Página 3 é criada e você recebe os seguintes erros:

Nota

System.ArgumentOutOfRangeException: [ArgumentOutOfRange_Index]
Argumentos:
A depuração de cadeias de caracteres de recursos não está disponível. Muitas vezes, a chave e os argumentos fornecem informações suficientes para diagnosticar o problema. Consulte http://go.microsoft.com/fwlink/?linkid=106663&Versão=5.1.20913.00&File=mscorlib.dll&key=ArgumentOutOfRange_Index
Nome do parâmetro: índice
   em System.ThrowHelper.ThrowArgumentOutOfRangeException()
   em System.Collections.Generic.List'1.get_Item(índice Int32)
   em System.Collections.ObjectModel.Collection'1.get_Item(índice Int32)
   em Microsoft.MasterDataServices.Client.ViewModel.Common.SortablePagedCollectionView'1.GetEnumerator()
   em System.Windows.Controls.DataForm.get_ItemsCount()
   em System.Windows.Controls.DataForm.SetCanMoveToLastItem()
   em System.Windows.Controls.DataForm.SetAllCanProperties()
   em System.Windows.Controls.DataForm.<SetUpCollectionView>b__a(instância DataForm, origem do objeto, NotifyCollectionChangedEventArgs eventArgs)
   em System.Windows.Controls.WeakEventListener'3.OnEvent(origem TSource, TEventArgs eventArgs)
   em System.Collections.Specialized.NotifyCollectionChangedEventHandler.Invoke(Object sender, NotifyCollectionChangedEventArgs e)
   em Microsoft.MasterDataServices.Client.ViewModel.Common.SortablePagedCollectionView'1.CollectionChangedHandler(Object sender, NotifyCollectionChangedEventArgs e)
   em System.Collections.Specialized.NotifyCollectionChangedEventHandler.Invoke(Object sender, NotifyCollectionChangedEventArgs e)
   em System.Collections.ObjectModel.ObservableCollection'1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)
   em System.Collections.ObjectModel.ObservableCollection'1.InsertItem(índice Int32, item T)
   em System.Collections.ObjectModel.Collection'1.Insert(índice Int32, item T)
   em Microsoft.MasterDataServices.Client.ViewModel.MasterData.EntityMembersViewModel.AddNewMemberToCollection(Guid requestId, EntityMembersGetResponse response, Exception ex)
   em Microsoft.MasterDataServices.Client.ViewModel.ServiceProxy.ServiceClient.<>c__DisplayClass16'2.<ExecuteRequest>b__15(Remetente do objeto, RequestCompletedEventArgs'1 e)
   em Microsoft.MasterDataServices.Client.ViewModel.ServiceProxy.ServiceClient.OnEntityMembersGetCompleted(estado do objeto)

Resolução

O problema foi corrigido na atualização cumulativa seguinte do SQL Server.

Atualização Cumulativa 1 para SQL Server 2014 /pt-PT/help/2931693

Atualização Cumulativa 9 para SQL Server 2012 SP1 /en-us/help/2931078

Acerca das atualizações cumulativas para SQL Server

Cada nova atualização cumulativa para SQL Server contém todos os hotfixes e todas as correções de segurança que foram incluídas com a atualização cumulativa anterior. Consulte as atualizações cumulativas mais recentes para SQL Server:

      

Mais Informações

Após a conclusão da instalação, tem de abrir Gestor de Configuração do Master Data Services para poder atualizar a base de dados MDS.

  1. Clique em Bancos de dados e, em seguida, clique em Selecionar banco de dados.
  2. Ligue-se à base de dados que pretende atualizar. Quando a base de dados está seleccionada, recebe a seguinte mensagem: Esta base de dados necessita de uma atualização. Não é possível alterar as configurações do sistema até que o banco de dados seja atualizado.
  3. Clique em Atualizar banco de dados. O Assistente de Atualização da Base de Dados é aberto. Siga as instruções no assistente para atualizar o banco de dados e clique em Concluir.

Estado

A Microsoft confirmou que se trata de um problema nos produtos Microsoft listados na secção "Aplica-se a".