Sintomas
Considere o seguinte cenário:
- Você tem o Master Data Services (MDS) para Microsoft SQL Server 2012 ou SQL Server 2014 instalado.
- Você cria uma entidade com 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, insira os dados necessários para adicionar o novo membro e clique no botão Próxima página . A página 3 é criada e você recebe os seguintes erros:
Observação
System.ArgumentOutOfRangeException: [ArgumentOutOfRange_Index]
Argumentos:
As cadeias de caracteres de recursos de depuração não estão disponíveis. Muitas vezes, a chave e os argumentos fornecem informações suficientes para diagnosticar o problema. Veja http://go.microsoft.com/fwlink/?linkid=106663&Version=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 (Boolean 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(TSource source, 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(Int32 position)
em Microsoft.MasterDataServices.Client.ViewModel.Common.SortablePagedCollectionView'1.MoveCurrentTo(Object item)
em Microsoft.MasterDataServices.Client.ViewModel.MasterData.EntityMembersViewModel.set_SelectedItem(Valor do membro)
em Microsoft.MasterDataServices.Client.ViewModel.Common.ItemsBase'2.ReloadItems()
at 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)
no MS. 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:
Observação
System.ArgumentOutOfRangeException: [ArgumentOutOfRange_Index]
Argumentos:
As cadeias de caracteres de recursos de depuração não estão disponíveis. Muitas vezes, a chave e os argumentos fornecem informações suficientes para diagnosticar o problema. Veja http://go.microsoft.com/fwlink/?linkid=106663&Version=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, Object source, NotifyCollectionChangedEventArgs eventArgs)
em System.Windows.Controls.WeakEventListener'3.OnEvent(TSource source, 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, T item)
em System.Collections.ObjectModel.Collection'1.Insert(Int32 index, T item)
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(Object sender, RequestCompletedEventArgs'1 e)
em Microsoft.MasterDataServices.Client.ViewModel.ServiceProxy.ServiceClient.OnEntityMembersGetCompleted(Estado do objeto)
Resolução
O problema foi corrigido pela primeira vez na atualização cumulativa seguinte do SQL Server.
Atualização cumulativa 1 para SQL Server 2014 /pt-br/help/2931693
Atualização cumulativa 9 para SQL Server 2012 SP1 /en-us/help/2931078
Sobre atualizações cumulativas para o SQL Server
Cada nova atualização cumulativa do SQL Server contém todos os hotfixes e todas as correções de segurança incluídas na atualização cumulativa anterior. Confira as atualizações cumulativas mais recentes para o SQL Server:
- Atualização cumulativa mais recente do SQL Server 2014
- Atualização cumulativa mais recente do SQL Server 2012 SP1
Mais informações
Após a conclusão da instalação, você precisa abrir o Gerenciador de Configuração do Master Data Services para que possa atualizar o banco de dados do MDS.
- Clique em Bancos de Dados e em Selecionar Banco de Dados.
- Conecte-se ao banco de dados que você deseja atualizar. Quando o banco de dados for selecionado, você receberá a seguinte mensagem: Este banco de dados precisa de uma atualização. Você não pode alterar as configurações do sistema até que o banco de dados seja atualizado.
- Clique em Atualizar Banco de Dados. O Assistente para Atualização de Banco de Dados é aberto. Siga as instruções no assistente para atualizar o banco de dados e clique em Concluir.
Status
A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".