Exact Online: itgensql035 & ID sconosciuto 'CFD.ID'. Considera uno dei seguenti: ID, Modified

Dal 4 agosto 2026 riceviamo un avviso su ogni chiamata tramite Invantive Bridge Online:

itgensql035
ID sconosciuto ‘\u0027CFD.ID\u0027’.
Considera uno dei seguenti: ID, Modified.
(itgensql035, 2b4cfe89-a973-4292-b0bd-6795a10aea1f)

Nella timeline di monitoraggio questo è visibile ma con il messaggio:

ID sconosciuto ‘CFD.ID’.
Considera uno dei seguenti: ID, Modified. (CFD.ID).‘’

Dal lato chiamante non è stato modificato nulla, richiediamo tutti i dati su un endpoint o i dati modificati (su Modified).

Cosa sta andando storto?

Ulteriori informazioni

È possibile aggiungere una schermata (anonimizzata) dei dettagli della richiesta in Invantive Bridge Online Monitoring come descritto su Meer inzicht met nieuwe Bridge Online Monitoring?

I dettagli si trovano cliccando sulla richiesta di download che rappresenta l’oggetto di questa discussione.

La richiesta di download di solito contiene un’istruzione SQL in cui è visibile il nome della tabella.

Si prega di lasciare visibili almeno i seguenti dati di entrambe le colonne:

  • la barra del titolo con l’ID della richiesta,
  • il codice di stato, la dimensione della rete, il percorso e gli orari nella colonna di sinistra,
  • il codice di errore e il messaggio di errore completamente in fondo a sinistra,
  • l’intera colonna di destra inclusa l’istruzione SQL, il nome della tabella e i valori dei parametri.

Ad esempio:

Verifica del server e dell’utente corretti

Verifica attentamente di accedere al sito Web di Bridge Online utilizzato anche da Power BI e con lo stesso nome utente. Vedrai solo le richieste dell’utente Invantive Cloud con cui accedi al sito web.

Sono in uso quattro server:

  • bridge-online.cloud
  • app-online.cloud
  • bridge-online.invantive.com
  • app-online.invantive.com

Il server utilizzato è indicato nello script o nel codice sorgente del report.

Verifica la richiesta e i dettagli corretti

Assicurati di selezionare prima la richiesta per visualizzare i dettagli. Nell’immagine dovrebbe essere visibile solo una richiesta.

Controlla inoltre attentamente se la richiesta ha un percorso con odata4 o apps. Le richieste con altri percorsi generalmente non sono pertinenti per questo scopo.

Messaggio di errore e suggerimenti via email

Inoltre, l’utente di Invantive Cloud che riceve il messaggio di errore riceverà anche un’e-mail con un messaggio di errore e suggerimenti se c’è un errore in Power BI, Power Query, Azure Data Factory, Qlik o Tableau.

Si consiglia di controllare la spam dell’utente coinvolto per eventualmente trovare email inviate da support@invantive.com.

Allegato uno screenshot del download dei messaggi di sistema per questo errore.

Ancora una volta: questo errore si verifica da martedì scorso, prima non si era mai presentato e non ci sono stati cambiamenti nelle credenziali, nei modi di chiamare, ecc., né dal lato di Invantive né dal lato chiamante (Fabric).

Nel database di Invantive c’è una vista in cui leggiamo i campi personalizzati di Exact Online (basata sulle istruzioni condivise sul forum, e collegata all’avvio del database) il cui alias di vista era CFD come indicato nell’errore. Questa vista esiste da diversi mesi.

Dopo aver rimosso questa vista creata, oggi il caricamento dei dati è avvenuto con successo.

Come mai una vista che esiste da molto tempo ora improvvisamente causa errori?

Per favore, aggiungi il messaggio di errore come testo, questo migliora la leggibilità e la reperibilità. È possibile condividere la definizione della vista?

Il messaggio di errore completo è

ValidationException
Invantive.Basics.InvantiveSqlException
   at Invantive.Basics.ValidationException..ctor(GlobalState owner, ExecutionOptions executionOptions, String messageCode, String errorMessage, String kindRequest, String localStackTrace, String nk, Exception innerException, Boolean inheritMessageCodeWhenPresent, Nullable`1 uid, Nullable`1 isRecoverable, String poolIdentityId, String url, Nullable`1 partyUid, String partitionCode, String tableName, String parameter1, String parameter2, String parameter3, String parameter4, String parameter5, String clientId)
   at Invantive.Sql.V1.SqlSymbolTable.ThrowMissingSymbol(GlobalState owner, ExecutionOptions executionOptions, String alias, String name)
   at Invantive.Sql.V1.SqlSymbolTable.GetSymbol(GlobalState owner, ExecutionOptions executionOptions, String alias, String name)
   at Invantive.Sql.V1.ExpressionParser.LookupSymbol(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep, String alias, String name)
   at Invantive.Sql.V1.TransformToExpression.GetExpressionForField(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep, ParserRuleContext context, String alias, String fieldName, Type& type, Nullable`1& isNullExpression, Boolean& isPSqlParameter, DatabaseColumn& field)
   at Invantive.Sql.V1.TransformToExpression.VisitFieldIdentifier(FieldIdentifierContext context)
   at Invantive.Sql.V1.TransformToExpression.VisitExpression(ExpressionContext context)
   at Invantive.Sql.V1.TransformToExpression.ParseExpression(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep, IParseTree tree, Type& expressionType, Boolean& isConstant, Object& data, Nullable`1& isNullable, Boolean& usesFields, DatabaseColumn[]& fieldsUsed)
   at Invantive.Sql.V1.ExpressionParser.ParseExpression(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep, IProviderManager manager, SqlEngine sqlEngine, IParseTree expression)
   at Invantive.Sql.V1.SelectStatementTree.GetProjectionMetadata(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep, List`1 selectList, ExpressionParser exprParser)
   at Invantive.Sql.V1.SelectStatementTree.OnExecute(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep, SparseArrayPool sparseArrayPool, ParameterList parameters, QueryObject additionalFilters, ExpressionParser expressionParser, IQueryStatePerExecution queryStatePerExecution)
   at Invantive.Sql.V1.QueryTree.Execute(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep, ParameterList parameters, QueryObject additionalFilters, ExpressionParser expressionParser, IQueryStatePerExecution queryStatePerExecution)
   at System.Lazy`1.ViaFactory(LazyThreadSafetyMode mode)
   at System.Lazy`1.CreateValue()
   at Invantive.Sql.V1.QueryPlan.ForcePlan(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep)
   at Invantive.Sql.V1.QueryPlan.GetFields(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep)
   at Invantive.Data.DataDictionaryProvider.A(GlobalState, ExecutionOptions, SqlExecutionStep sqlExecutionStep, ObjectDefinition, SqlViewSpec)
   at Invantive.Data.DataDictionaryProvider.<>c__DisplayClass308_0.<RegisterDataContainerMetadata>b__0(GlobalState, ExecutionOptions, SqlExecutionStep _sqlExecutionStep, ObjectDefinition)
   at Invantive.Data.ViewObjectDefinition.GetFields(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep)
   at Invantive.Cloud.Shared.ODataEdmUtility.A(GlobalState, ExecutionOptions, SqlExecutionStep sqlExecutionStep, IProviderManager, EdmModelCacheEntity, ObjectDefinition, DataContainerMetadata, Int32, Boolean)
   at Invantive.Cloud.Shared.ODataEdmUtility.A(GlobalState, ExecutionOptions, SqlExecutionStep sqlExecutionStep, IProviderManager, DataContainerMetadata, PartitionInfo partitionInfo, ObjectDefinition, EdmModelCache, DataContainerConnectionInfo dataContainerConnectionInfo, String, Int32, Boolean, Int32&, Int32&, Int32&, Int32&)
   at Invantive.Cloud.Shared.ODataEdmUtility.<>c__DisplayClass10_0.<ConstructNewDatabaseEdmModel>b__2(<>f__AnonymousType0`4, ParallelLoopState parallelLoopState, Int64)
   at Invantive.Basics.ParallelUtility.<>c__DisplayClass4_0`1.<ForEachWithAggregatedExceptions>b__0(TSource tSource, ParallelLoopState parallelLoopState, Int64 index)
   at System.Threading.Tasks.Parallel.<>c__DisplayClass19_0`2.<ForWorker>b__1(RangeWorker& currentWorker, Int64 timeout, Boolean& replicationDelegateYieldedBeforeCompletion)
   at System.Threading.Tasks.TaskReplicator.Replica.Execute()
   at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
   at System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart()
   at System.Threading.Thread.StartCallback()
   at Invantive.Sql.V1.SqlSymbolTable.ThrowMissingSymbol(GlobalState owner, ExecutionOptions executionOptions, String alias, String name)
   at Invantive.Sql.V1.SqlSymbolTable.GetSymbol(GlobalState owner, ExecutionOptions executionOptions, String alias, String name)
   at Invantive.Sql.V1.ExpressionParser.LookupSymbol(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep, String alias, String name)
   at Invantive.Sql.V1.TransformToExpression.GetExpressionForField(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep, ParserRuleContext context, String alias, String fieldName, Type& type, Nullable`1& isNullExpression, Boolean& isPSqlParameter, DatabaseColumn& field)
   at Invantive.Sql.V1.TransformToExpression.VisitFieldIdentifier(FieldIdentifierContext context)
   at Invantive.Sql.V1.TransformToExpression.VisitExpression(ExpressionContext context)
   at Invantive.Sql.V1.TransformToExpression.ParseExpression(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep, IParseTree tree, Type& expressionType, Boolean& isConstant, Object& data, Nullable`1& isNullable, Boolean& usesFields, DatabaseColumn[]& fieldsUsed)
   at Invantive.Sql.V1.ExpressionParser.ParseExpression(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep, IProviderManager manager, SqlEngine sqlEngine, IParseTree expression)
   at Invantive.Sql.V1.SelectStatementTree.GetProjectionMetadata(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep, List`1 selectList, ExpressionParser exprParser)
   at Invantive.Sql.V1.SelectStatementTree.OnExecute(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep, SparseArrayPool sparseArrayPool, ParameterList parameters, QueryObject additionalFilters, ExpressionParser expressionParser, IQueryStatePerExecution queryStatePerExecution)
   at Invantive.Sql.V1.QueryTree.Execute(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep, ParameterList parameters, QueryObject additionalFilters, ExpressionParser expressionParser, IQueryStatePerExecution queryStatePerExecution)
   at System.Lazy`1.ViaFactory(LazyThreadSafetyMode mode)
   at System.Lazy`1.CreateValue()
   at Invantive.Sql.V1.QueryPlan.ForcePlan(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep)
   at Invantive.Sql.V1.QueryPlan.GetFields(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep)
   at Invantive.Data.DataDictionaryProvider.A(GlobalState, ExecutionOptions, SqlExecutionStep sqlExecutionStep, ObjectDefinition, SqlViewSpec)
   at Invantive.Data.DataDictionaryProvider.<>c__DisplayClass308_0.<RegisterDataContainerMetadata>b__0(GlobalState, ExecutionOptions, SqlExecutionStep _sqlExecutionStep, ObjectDefinition)
   at Invantive.Data.ViewObjectDefinition.GetFields(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep)
   at Invantive.Cloud.Shared.ODataEdmUtility.A(GlobalState, ExecutionOptions, SqlExecutionStep sqlExecutionStep, IProviderManager, EdmModelCacheEntity, ObjectDefinition, DataContainerMetadata, Int32, Boolean)
   at Invantive.Cloud.Shared.ODataEdmUtility.A(GlobalState, ExecutionOptions, SqlExecutionStep sqlExecutionStep, IProviderManager, DataContainerMetadata, PartitionInfo partitionInfo, ObjectDefinition, EdmModelCache, DataContainerConnectionInfo dataContainerConnectionInfo, String, Int32, Boolean, Int32&, Int32&, Int32&, Int32&)
   at Invantive.Cloud.Shared.ODataEdmUtility.<>c__DisplayClass10_0.<ConstructNewDatabaseEdmModel>b__2(<>f__AnonymousType0`4, ParallelLoopState parallelLoopState, Int64)
   presso Invantive.Basics.ParallelUtility.<>c__DisplayClass4_0`1.<ForEachWithAgggatedExceptions>b__0(TSource tSource, ParallelLoopState parallelLoopState, Int64 index)
--- Fine del trace dello stack dalla posizione precedente ---
   at Invantive.Basics.ErrorConstants.ThrowOneOrMoreExceptions(GlobalState owner, ExecutionOptions executionOptions, IEnumerable`1 exceptions)
   at Invantive.Basics.ParallelUtility.ForEachWithAggregatedExceptions[TSource](GlobalState owner, ExecutionOptions executionOptions, IEnumerable`1 source, ParallelOptions parallelOptions, Action`3 body, Boolean shuffle, Boolean useCancellationTokenFromExecutionOptions, Boolean keepGoingOnError)
   at Invantive.Cloud.Shared.ODataEdmUtility.A(GlobalState, ExecutionOptions, SqlExecutionStep sqlExecutionStep, DataContextBase, DatabaseConnectionInfo, String, String, HashSet`1, Int32, Boolean, Int32, String, Byte[], String, CancellationToken)
   at Invantive.Cloud.Shared.ODataEdmUtility.ConstructDatabaseEdmModel(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep, DataContextBase dataContext, DatabaseConnectionInfo databaseConnectionInfo, String databaseSegment, String userName, HashSet`1 allowedProviderNames, Int32 maxColumnCount, Boolean allowNonStandardEdmTypeNames, Int32 cacheLifetimeSec, String edmCacheUserDirectory, CancellationToken cancellationToken)
   at Invantive.Bridge.Online.Logic.EdmModelBuilder.ConstructDatabaseEdmModel(GlobalState owner, ExecutionOptions executionOptions, BridgeConfig config, HttpContext httpContext, String databaseSegment) in c:\smoke\ws-26.0\Invantive.Bridge.Online\src\Invantive.Bridge.Online\Logic\EdmModelBuilder.cs:line 215
   at Invantive.Web.Core.TaskExtensionMethods.GetOrAddTaskSafe[TTask](IStateHelper stateHelper, GlobalState owner, ExecutionOptions executionOptions, String listName, String key, Func`1 taskFactory, Nullable`1 timeOutMs, String providerName, String dataContainerId, String dataContainerAlias, String partitionCode, String tableName, String sqlStatement, CancellationToken cancellationToken, CancellationToken retrieveCancellationToken)
   at Invantive.Bridge.Online.Logic.EdmModelBuilder.EnsureModelLoaded(GlobalState owner, ExecutionOptions executionOptions, BridgeConfig config, HttpContext httpContext, String databaseSegment, CancellationToken cancellationToken) in c:\smoke\ws-26.0\Invantive.Bridge.Online\src\Invantive.Bridge.Online\Logic\EdmModelBuilder.cs:line 83
   at Invantive.Bridge.Online.Logic.EdmModelBuilder.GetEdmModel(GlobalState owner, ExecutionOptions executionOptions, BridgeConfig config, HttpContext httpContext, String databaseSegment, CancellationToken cancellationToken) in c:\smoke\ws-26.0\Invantive.Bridge.Online\src\Invantive.Bridge.Online\Logic\EdmModelBuilder.cs:line 49
   at Invantive.Bridge.Online.Logic.ODataModelProvider.Invantive.Bridge.Online.Logic.IODataModelProvider.GetEdmModel(GlobalState owner, ExecutionOptions executionOptions, HttpContext httpContext, BridgeConfig config, String databaseSegment, CancellationToken cancellationToken) in c:\smoke\ws-26.0\Invantive.Bridge.Online\src\Invantive.Bridge.Online\Logic\OData\ODataModelProvider.cs:line 18
   at Invantive.Bridge.Online.Logic.ODataRoutingMatcherPolicy.ApplyAsync(HttpContext httpContext, CandidateSet candidates) in c:\smoke\ws-26.0\Invantive.Bridge.Online\src\Invantive.Bridge.Online\Logic\OData\ODataRoutingMatcherPolicy.cs:line 104
   at Microsoft.AspNetCore.Routing.Matching.DfaMatcher.SelectEndpointWithPoliciesAsync(HttpContext httpContext, IEndpointSelectorPolicy[] policies, CandidateSet candidateSet)
   at Microsoft.AspNetCore.Routing.EndpointRoutingMiddleware.<InLa visualizzazione in cui ho mascherato l'ID nell'istruzione `use`. Come già indicato, questa vista esiste da mesi, ma da martedì provoca un errore durante il caricamento di tutte le tabelle che leggiamo.

```sql
use [administrazione]@eol;
create or replace force view ProjectSubscriptionCodes
as
select 
	cfd.Id,
    cfd.Code,
    cfd.Description,
    cfd.BUSBV_PROJ_Subscription AS SubscriptionCode,
	cfd.Modified
from   ( select prj.Division
         ,      prj.Id
         ,      prj.Code
         ,      prj.Description
		, prj.Modified
         ,      customvalues.PropertyName
         ,      customvalues.Value
         from   ExactOnlineREST.Project.Projects prj
         left
         outer
         join   CustomFieldValues
                ( division => prj.Division
                , linkId => prj.Id
                , BusinessComponentName => 'Project'
                ) customvalues
         where  prj.Division = 189708
		AND prj.ClassificationDescription in ('Continuous Improvement Services - Vast', 'Continuous Improvement Services - Flessibile', 'Service Level Agreement') 
       ) prj
pivot  ( max(prj.value)
         for prj.PropertyName in 
         ( 
          [BUSBV_PROJ_Subscription]
         )
       ) cfd;

Il problema risiede in un errore nella valutazione della query su 26.0.188 che fa sì che le colonne del pivot ricevano un alias errato. Di conseguenza, cfd.id non viene riconosciuto, ma id sì.

È disponibile una nuova versione che dovrebbe risolvere questo problema. Le modifiche necessarie sono disponibili a partire dalla versione 26.0.195 e in tutte le versioni BETA future.

Questa nuova versione è stata o sarà implementata in produzione su Invantive Cloud.

Per ulteriori informazioni, consulta:

Questa domanda è stata chiusa automaticamente dopo 1 settimana di inattività. L’ultima risposta data è stata contrassegnata come soluzione.

Per favore, poni una nuova domanda in un nuovo topic se il problema si ripresenta. Ti preghiamo di inserire il link a questo topic nella nuova domanda incollando l’URL nel testo.