Kinetic Dashboard Doesn't Run - Classic Does (2024.2.10)

– Update:

Additional testing suggested it had something to do with the query itself, as another DMR query created into a dashboard. Turns out, the field referenced is being used in the Order By but isn’t selected by the query.

Now, the error makes more sense and if you add the field to the selections at the query level, it goes away. :tada:

The Kinetic service or UI appears to be selecting from the wrong source for fields. The invalid reference to the order by field is not in the data view either, so I’m leaning towards service being the culprit.

I have yet to test with other situations, but this appears to be a bug. Especially given that it works in classic or in direct BO calls. I’ll log it and see what they say.

-----

Attempting to deploy a Kinetic dashboard, the first after our upgrade to 2024.2 from 2022.2. It works just fine in the BAQ and any other source using Ice.BO.DynamicQuerySvc. Apparently, dashboards don’t use this execution path and instead call Ice.BO.KineticErpSvc/ExecuteBaq.

This causes a “SQL statement” error. Reviewing the Event Viewer, it gives a more detailed description. Noting that creating the kinetic application/dashboard using either the Dashboard classic screen or the Application Studio Wizard generates the same resulting error.

It does not like our UD columns even though the same dashboard and query works fine when called via the actual BO/classic. I haven’t tried anything special, I imagine I can fiddle with the application studio side to fix this. I was hoping to simply get away with deploying the old-fashioned way in “Dashboard” classic menu.

Any insights?

Event Log:

 ---> System.Exception: Query Id: CostOfQualityRej. Invalid column name 'DMRHead_FieldNameReplaced_c'.
 ---> System.Data.SqlClient.SqlException (0x80131904): Invalid column name 'DMRHead_FieldNameReplaced_c'.
   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
   at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds)
   at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior)
   at Ice.Blaq.Execution.QueryExecutor.ExecuteAndFillDataSetInternal(IDbConnection dbconn, QueryInfo queryInfo, DataSet resultDataset, Action`2 perfLogger, ISqlDumper sqlDumper) in C:\_releases\ICE\ICE4.3.200.0\Source\Server\Internal\Lib\Ice.Lib.Blaq\Execution\QueryExecutor.cs:line 60
   at Ice.Blaq.Execution.QueryExecutionHelper.DoJobWithObject[TObj](Func`2 theJob) in C:\_releases\ICE\ICE4.3.200.0\Source\Server\Internal\Lib\Ice.Lib.Blaq\Execution\QueryExecutionHelper.cs:line 223
1 Like