Síntomas
Tenga en cuenta el siguiente escenario:
- Tiene instalado Master Data Services (MDS) para Microsoft SQL Server 2012 o SQL Server 2014.
- Crea una entidad que tiene 100 miembros y tiene activada la opción "Crear valores de código automáticamente".
- En el Explorador de MDS, la entidad tiene dos páginas de miembros con el número de miembros de la página 2 igual al tamaño de página de cuadrícula (el valor predeterminado es 50).
Escenario 1:
Haga clic en el botón Agregar miembro en la Página 1, ingrese los datos requeridos para agregar el nuevo miembro y luego haga clic en el botón Página siguiente . La página 3 se crea y recibe los siguientes errores:
Nota
System.ArgumentOutOfRangeException: [ArgumentOutOfRange_Index]
Argumentos:
Las cadenas de recursos de depuración no están disponibles. A menudo, la clave y los argumentos proporcionan información suficiente para diagnosticar el problema. Consulte http://go.microsoft.com/fwlink/?linkid=106663&versión=5.1.20913.00&file=mscorlib.dll&key=ArgumentOutOfRange_Index
Nombre del parámetro: índice
en System.ThrowHelper.ThrowArgumentOutOfRangeException()
en System.Collections.Generic.List'1.get_Item(Int32 index)
en System.Collections.ObjectModel.Collection'1.get_Item(Int32 index)
en Microsoft.MasterDataServices.Client.ViewModel.Common.SortablePagedCollectionView'1.GetEnumerator()
en System.Windows.Controls.DataForm.get_ItemsCount()
en System.Windows.Controls.DataForm.SetCanMoveToLastItem()
en System.Windows.Controls.DataForm.SetAllCanProperties()
en System.Windows.Controls.DataForm.SetIsItemValid()
en System.Windows.Controls.DataForm.GenerateUI(Boolean clearEntityErrors, Boolean swapOldAndNew)
en System.Windows.Controls.DataForm.OnCurrentItemPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
en System.Windows.DependencyObject.RaisePropertyChangeNotifications(DependencyProperty dp, Object oldValue, Object newValue)
en System.Windows.DependencyObject.UpdateEffectiveValue(propiedad DependencyProperty, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, operación ValueOperation)
en System.Windows.DependencyObject.SetValueInternal(DependencyProperty dp, Object value, Boolean allowReadOnlySet, Boolean isBindingInStyleSetter)
en System.Windows.Controls.DataForm.UpdateCurrentItem()
en System.Windows.Controls.DataForm.<SetUpCollectionView>b__8(DataForm instance, Object source, EventArgs eventArgs)
en System.Windows.Controls.WeakEventListener'3.OnEvent(TSource source, TEventArgs eventArgs)
en System.EventHandler.Invoke(Object sender, EventArgs e)
en Microsoft.MasterDataServices.Client.ViewModel.Common.SortablePagedCollectionView'1.OnCurrentChanged()
en Microsoft.MasterDataServices.Client.ViewModel.Common.SortablePagedCollectionView'1.MoveCurrentToPosition(Int32 position)
en Microsoft.MasterDataServices.Client.ViewModel.Common.SortablePagedCollectionView'1.MoveCurrentTo(Object item)
en Microsoft.MasterDataServices.Client.ViewModel.MasterData.EntityMembersViewModel.set_SelectedItem(valor del miembro)
en Microsoft.MasterDataServices.Client.ViewModel.Common.ItemsBase'2.ReloadItems()
at Microsoft.MasterDataServices.Client.ViewModel.MasterData.EntityMembersViewModel.EntityMembers_RefreshNeeded(Object sender, EventArgs e)
en Microsoft.MasterDataServices.Client.ViewModel.Common.SortablePagedCollectionView'1.Refresh()
en Microsoft.MasterDataServices.Client.ViewModel.Common.SortablePagedCollectionView'1.MoveToPage(Int32 pageIndex)
en Microsoft.MasterDataServices.Client.ViewModel.Common.SortablePagedCollectionView'1.MoveToNextPage()
en System.Windows.Controls.DataPager.PageMoveHandler(Int32 oldPageIndex, Int32 newPageIndex, PageMoveOperationDelegate pageMoveOperation)
en System.Windows.Controls.DataPager.OnNextPageButtonBaseClick(Object sender, RoutedEventArgs e)
en System.Windows.Controls.Primitives.ButtonBase.OnClick()
en System.Windows.Controls.Button.OnClick()
en System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
en System.Windows.Controls.Control.OnMouseLeftButtonUp(Control ctrl, EventArgs e)
en MS. Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, Int32 actualArgsTypeIndex, String eventName, UInt32 flags)
Escenario 2:
Haga clic en el botón Agregar miembro en la página 2 para forzar al Explorador a agregar una nueva página. A continuación, se crea la página 3 y recibe los siguientes errores:
Nota
System.ArgumentOutOfRangeException: [ArgumentOutOfRange_Index]
Argumentos:
Las cadenas de recursos de depuración no están disponibles. A menudo, la clave y los argumentos proporcionan información suficiente para diagnosticar el problema. Consulte http://go.microsoft.com/fwlink/?linkid=106663&versión=5.1.20913.00&file=mscorlib.dll&key=ArgumentOutOfRange_Index
Nombre del parámetro: índice
en System.ThrowHelper.ThrowArgumentOutOfRangeException()
en System.Collections.Generic.List'1.get_Item(Int32 index)
en System.Collections.ObjectModel.Collection'1.get_Item(Int32 index)
en Microsoft.MasterDataServices.Client.ViewModel.Common.SortablePagedCollectionView'1.GetEnumerator()
en System.Windows.Controls.DataForm.get_ItemsCount()
en System.Windows.Controls.DataForm.SetCanMoveToLastItem()
en System.Windows.Controls.DataForm.SetAllCanProperties()
en System.Windows.Controls.DataForm.<SetUpCollectionView>b__a(instancia de DataForm, origen del objeto, NotifyCollectionChangedEventArgs eventArgs)
en System.Windows.Controls.WeakEventListener'3.OnEvent(TSource source, TEventArgs eventArgs)
en System.Collections.Specialized.NotifyCollectionChangedEventHandler.Invoke(Object sender, NotifyCollectionChangedEventArgs e)
en Microsoft.MasterDataServices.Client.ViewModel.Common.SortablePagedCollectionView'1.CollectionChangedHandler(Object sender, NotifyCollectionChangedEventArgs e)
en System.Collections.Specialized.NotifyCollectionChangedEventHandler.Invoke(Object sender, NotifyCollectionChangedEventArgs e)
en System.Collections.ObjectModel.ObservableCollection'1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)
en System.Collections.ObjectModel.ObservableCollection'1.InsertItem(Int32 index, T item)
en System.Collections.ObjectModel.Collection'1.Insert(Int32 index, T item)
en Microsoft.MasterDataServices.Client.ViewModel.MasterData.EntityMembersViewModel.AddNewMemberToCollection(Guid requestId, EntityMembersGetResponse response, Exception ex)
en Microsoft.MasterDataServices.Client.ViewModel.ServiceProxy.ServiceClient.<>c__DisplayClass16'2.<ExecuteRequest>b__15(Object sender, RequestCompletedEventArgs'1 e)
en Microsoft.MasterDataServices.Client.ViewModel.ServiceProxy.ServiceClient.OnEntityMembersGetCompleted(Object state)
Resolución
Este problema se corrigió por primera vez en la siguiente actualización acumulativa de SQL Server.
Actualización acumulativa 1 para SQL Server 2014 /en-us/help/2931693
Actualización acumulativa 9 para SQL Server 2012 SP1 /en-us/help/2931078
Acerca de las actualizaciones acumulativas para SQL Server
Cada nueva actualización acumulativa para SQL Server contiene todas las revisiones y correcciones de seguridad que se incluyeron con la actualización acumulativa anterior. Consulte las actualizaciones acumulativas más recientes para SQL Server:
- Actualización acumulativa más reciente para SQL Server 2014
- Actualización acumulativa más reciente para SQL Server 2012 SP1
Más información
Una vez completada la instalación, debe abrir el Administrador de configuración de Master Data Services para actualizar la base de datos MDS.
- Haga clic en Bases de datos y luego en Seleccionar base de datos.
- Conéctese a la base de datos que desea actualizar. Cuando se selecciona la base de datos, recibe el mensaje siguiente: Esta base de datos requiere una actualización. No puede cambiar la configuración del sistema hasta que se actualice la base de datos.
- Haga clic en Actualizar base de datos. Se abre el Asistente para actualizar base de datos . Siga las instrucciones del asistente para actualizar la base de datos y haga clic en Finalizar.
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".