KB2932340 - CORRECCIÓN: Errores al agregar un miembro en SQL Server 2012 o SQL Server 2014 MDS

Se aplica 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)

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:

      

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.

  1. Haga clic en Bases de datos y luego en Seleccionar base de datos.
  2. 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.
  3. 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".