Itgenclr009 Un elemento con la misma clave ya ha sido añadido

En Invantive Cloud, al abrir el editor UniversalSQL, recibo el siguiente mensaje de error:

itgenclr009
Un elemento con la misma clave ya ha sido agregado.
Clave: .
Ocurrió un error desconocido.

Se trata de una conexión con Exact Online. ¿Por qué sucede esto?

Parece que Invantive está intentando cargar las divisiones dos veces. ¿Cómo puedo solucionar esto? En Exact Online, de hecho, no existe un código de administración duplicado.

Se ha puesto en producción una nueva versión con registro adicional.

¿Puede reproducir de nuevo el mensaje de error y añadir aquí el código y texto del error?

Mensaje de error:

itgenbed003
Ya existe un elemento con la clave ‘’ en un diccionario de String y Partition.
Se ha añadido un elemento con la misma clave. Clave: .

Pila de llamadas:

System.ArgumentException
InvantiveSystemException
   at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value)
   at Invantive.Basics.ExtensionMethods.AddSafe[K,V](IDictionary`2 dictionary, GlobalState owner, ExecutionOptions executionOptions, K key, V val, Func`2 exceptionFunc, String context)
   at Invantive.Data.PartitionCollection.RegisterForSelection(GlobalState owner, ExecutionOptions executionOptions, Partition partition)
   at Invantive.Data.GenericProvider.SetSelectedPartitions(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep, SetPartitionMode setPartitionMode, String[] partitionCodes)
   at Invantive.Data.Providers.ExactOnline.ExactOnlineProvider.SetSelectedPartitions(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep, SetPartitionMode setPartitionMode, String[] partitions)
   at Invantive.Sql.V1.UseStatementTree.Fetch(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep, IQueryStatePerExecution queryStatePerExecution, SparseArrayPool sparseArrayPool, ParameterList parameters, FirehoseResultSet results, ISparseArray pSqlVariableRow, SqlColumnDefinitionCollection oldNewTriggerFields, ISparseArray oldTriggerRow, ISparseArray n
   at Invantive.Data.CompressedEnumerable`1.GetEnumerator()+MoveNext()
   at Invantive.Sql.V1.FirehoseResultSet.Iterator(GlobalState owner, ExecutionOptions executionOptions, IQueryStatePerExecution queryStatePerExecution, SparseArrayPool sparseArrayPool, SqlExecutionStep parentStep, ISparseArray outerRow, ISparseArray pSqlVariableRow, SqlColumnDefinitionCollection oldNewTriggerFields, ISparseArray oldTriggerRow, ISparseArray newTriggerRow, SqlColumnDefinitio
   at Invantive.Sql.V1.QueryPlan.CorrectAndCheckData(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep, SparseArrayPool sparseArrayPool, IEnumerable`1 data, String sqlStatement, String fullQualifiedName)+MoveNext()
   at Invantive.Data.ExtensionMethods.IteratorWithFinally`1.IteratorWithFinallyEnumerator.MoveNext()
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at Invantive.Data.ConnectionManager.ExecuteAndCombineQueryPlansV1(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep, QueryPlan[] queryPlans, String sqlStatement, ParameterList parameters)
   at Invantive.Data.ConnectionManager.ExecuteProviderPassthroughSqlActionTable(GlobalState owner, ExecutionOptions executionOptions, String actionSql, ParameterList parameters, SqlExecutionStep sqlExecutionStep, String callSafeNameOverrule)
   at Invantive.Data.ConnectionManager.PassthroughSqlActionTable(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep, String actionSql, ParameterList parameters, String callSafeNameOverrule, String originCode)

Mediante delegación se ha concedido acceso.

El problema es causado por la instrucción use all@eol que se ejecuta al abrir la base de datos.

Sin selección de particiones, el editor se abre y selecciona por defecto la última empresa utilizada en Exact Online.

Sin embargo, cada instrucción use subsiguiente falla con itgenbed003:

  • use all@eol
  • use default@eol
  • use 123123@eol

Un analista investigará el problema.

Para un análisis más detallado, se requiere acceso tradicional. En cuanto esté disponible, este punto se retomará.

Se ha realizado una corrección de errores y se ha implementado en producción en Invantive Cloud.

La causa encontrada es que el controlador de Exact Online también contiene un módulo para Exact Online Premium como Beperk toegang tot specifieke administraties op de Exact Online Premium-database op SQL Server. Actualmente, aún no podemos poner a disposición, pero el módulo se ejecuta (inactivo) junto con los demás.

Las modificaciones recientes no se habían aplicado a la parte de Exact Online Premium. Esto ha sido corregido. Esto también explica por qué solo una parte de los usuarios se vio afectada; esto se refería exclusivamente a los usuarios de Exact Online Premium. Los usuarios de Exact Online SaaS no se vieron afectados porque el módulo no se puede ejecutar junto.

Más información se puede encontrar en:

Esta pregunta se cerró automáticamente después de 1 semana de inactividad. La respuesta más reciente se marcó como solución.

Por favor, plantee una nueva pregunta en un tema separado si el problema ocurre nuevamente. Incluya un enlace a este tema en la nueva pregunta pegando la URL en el texto.