Kinetic UI Dashboard with BPM on BAQ GetList does not trigger the BPM

Here’s a Demo of the Issue @Olga

I will open a ticket on the CR for this too @adupuis-nadeau see if we can get some traction.

3 Likes

Yes but now you have a Donk.

Bwhaha, I don’t know why, but it tickled me. :rofl:

But it really doesn’t… its a completely silly thing and somewhat arbitrary that the second + time we hit refresh pass in this special bypass

Reminds me of when I you start to code and your function result is off by 6 one time so you just add +6

// was off by 6 so added 6 hope it applies to everything 🤞 -JR Developer
result = AddTwoNumbers(3,9) + 6; 

and hope for the best… at least the guy had the decency to comment his code :stuck_out_tongue_winking_eye:

Tells you how many Kinetic UX dashboards I use…

Maybe we’ll luck up and this was supposed to be a flag that’s defaulted false that is just set wrong.

Intention might be something we could use.

Yes that was great. Very clinical run through of the issue in @josecgomez 's professor voice; clearly showed the root cause, and then…

“also it doesn’t make any sense. Why would you do that?”

[End scene]

If you collapse and un-collapse the card then it executes the GetList, also I made the Input Criteria Required on my Dashboard and it executed the GetList without it anyway… Dashboards in Kinetic are a bit of a :dumpster_fire:

NeFunWays

2 Likes

Do you all remember those “escape room” internet games? Where you had to click on the right pixel to pass whatever level you were on?

This feels like that…

1 Like

That makes sense, I’ve seen that with dashboards I have that use BAQ parameters.

  • First open doesn’t run the BAQ
  • Refreshing doesn’t run the BAQ
  • Collapsing and re-opening the card does run the BAQ

Half the time we just make a button to do it instead.

I didn’t “troubleshoot the issue” or “make a video” for it.

Austin Powers Laser GIF

I’m sorry sometimes my inside voice comes to play on the outside.

screaming homer simpson GIF

1 Like

@josecgomez, @Olga, @timshuwy

Have you also noticed. If you have a BAQ with lets say a union, CTE, sub select etc.

If you add additional columns to this BAQ and try to update your Kinetic dashboard with the new columns. It will error on Execute BAQ

It seems to be looking at the lower level parts of the query.

Payload

{
    "queryID": "CR2960_B",
    "executionParams": [
        {
            "ExecutionFilter": [],
            "ExecutionParameter": [],
            "ExecutionSetting": [
                {
                    "Name": "PageSize",
                    "Value": 100
                },
                {
                    "Name": "PageNum",
                    "Value": 1
                },
                {
                    "Name": "NeedTotal",
                    "Value": "true"
                },
                {
                    "Name": "Select",
                    "Value": "[Calculated_WorkStatus], [JobOpDtl_ResourceGrpID], [JobHead_CreateDate], [JobOper_StartDate], [JobOper_DueDate], [JobOper_JobNum], [JobHead_PartNum], [JobOper_AssemblySeq], [JobOper_OprSeq], [JobOper_OpCode], [Calculated_EstHours], [Calculated_ActHours], [Calculated_WCHours], [Calculated_WCEHours], [JobOper_RunQty], [JobOper_QtyCompleted], [Calculated_RmQty], [Calculated_Alert], [Calculated_DaysOver], [JobOper_LastLaborDate], [JobOper_ProdComplete], [Calculated_POP], [JobOper2_JobNum], [JobOper2_OpCode], [JobOper2_QtyCompleted], [Calculated_POEstHours], [Calculated_POActHours], [JobOper2_LastLaborDate], [JobOper2_OpComplete], [Calculated_Hours], [Calculated_OOHours], [JobOper1_OprSeq]"
                }
            ],
            "ExecutionValueSetItems": [],
            "ExtensionTables": []
        },
        {
            "ExecutionFilter": [],
            "ExecutionParameter": [],
            "ExecutionSetting": [
                {
                    "Name": "Select",
                    "Value": "[Calculated_WorkStatus], [JobOpDtl_ResourceGrpID], [JobHead_CreateDate], [JobOper_StartDate], [JobOper_DueDate], [JobOper_JobNum], [JobHead_PartNum], [JobOper_AssemblySeq], [JobOper_OprSeq], [JobOper_OpCode], [Calculated_EstHours], [Calculated_ActHours], [Calculated_WCHours], [Calculated_WCEHours], [JobOper_RunQty], [JobOper_QtyCompleted], [Calculated_RmQty], [Calculated_Alert], [Calculated_DaysOver], [JobOper_LastLaborDate], [JobOper_ProdComplete], [Calculated_POP], [JobOper2_JobNum], [JobOper2_OpCode], [JobOper2_QtyCompleted], [Calculated_POEstHours], [Calculated_POActHours], [JobOper2_LastLaborDate], [JobOper2_OpComplete], [Calculated_Hours], [Calculated_OOHours], [JobOper1_OprSeq]"
                },
                {
                    "Name": "Virtualization",
                    "Value": "{\"mode\":\"pageCount\",\"pageNumber\":1,\"pageSize\":100,\"pageCount\":3}"
                }
            ],
            "ExecutionValueSetItems": [],
            "ExtensionTables": []
        }
    ]
}

Server Error

Ice.Common.EpicorServerException: Query Id: CR2960_B. Invalid column name 'JobOper1_OprSeq'.
 ---> System.Exception: Query Id: CR2960_B. Invalid column name 'JobOper1_OprSeq'.
 ---> System.Data.SqlClient.SqlException (0x80131904): Invalid column name 'JobOper1_OprSeq'.
   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.SqlDataReader.get_MetaData()
   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.2.400.0FW\Source\Server\Internal\Lib\Ice.Lib.Blaq\Execution\QueryExecutor.cs:line 112
   at Ice.Blaq.Execution.QueryExecutor.<>c__DisplayClass3_0.<ExecuteAndFillDataSet>b__0(IDbConnection dbconn) in C:\_releases\ICE\ICE4.2.400.0FW\Source\Server\Internal\Lib\Ice.Lib.Blaq\Execution\QueryExecutor.cs:line 40
   at Ice.Blaq.Execution.QueryExecutionHelper.DoJobWithObject[TObj](Func`2 theJob) in C:\_releases\ICE\ICE4.2.400.0FW\Source\Server\Internal\Lib\Ice.Lib.Blaq\Execution\QueryExecutionHelper.cs:line 221
ClientConnectionId:58ff0aee-5070-42c6-9a3c-6022912f7b60
Error Number:207,State:1,Class:16
   --- End of inner exception stack trace ---
   --- End of inner exception stack trace ---
CorrelationId: 176e0cd5-7eff-47b0-8afe-3da3ceb86e00

BAQ has a sub select query upon which broke Kinetic ExecuteBaq endpoint with column JobOper1_OprSeq not being valid.

This column is apart of another table not the Top Level and joined via Calculated Field with {JobOper}

Have you seen any behaviour like this? Not to bad mouth Epicor Support but they seem stumped too! Their solution is to re-create the dashboard everytime we want to deploy a new column.

:notebook: Classic works perfectly, no issues at all. :slight_smile: - I even deleted the Kinetic App and re-created it. Same error :confused:

Well if that works, and they reported it to dev, I can respect that, if not…

Anyway, if you can consistently create this behavior, I’d like to run some tests.

It’s not when some of our dashboards are heavily customised.

To be honest, even at this point, if you are using highly customized dashboards in the new ux, and expecting it not to break, you are doing yourself a disservice.

It’s getting there, but is still far and away from mature.

The problem is, Epicor is pushing so hard for browser only adoption. They seemed to forget that one of the strongest, best parts of their product was easy to make, easy to deploy dashboards. It was already no code for a base dashboard. In the new UI you HAVE to customize it to just get a simple dashboard act like a non-customized one did in classic. But in the browser, it really seems like the dashboards are an afterthought. I’m sure it’s hard as a software provider and not a true user of the project, to realized that the entry screens are really only half of what product is used for. Getting the data back out in an efficient way is just as important, and the way the customer have done that for years was to make BAQ’s and dashboards. With the thought process being “Each customer is going to want something different, so we give them easy tools to dig into the data”. And it’s worked that way for a long time. This new browser based system brings the same frustration that I had for the short stint that I used netsuite. It was really hard to get grid of information that shows you more than a single item at once.

I don’t mean to bash epicor on this, there are truly only limited resources, and the integrity of the data going in needed to be priority one. But I really hope that an overhaul of the dashboard system is on the list to try to get to parity of the old system .

6 Likes

Joe Biden Cheers GIF by C-SPAN

Wake up @pferrington or there will be 0 hugs for you at Insights :slight_smile:

Yeah I finally have a PRB about this issue Accepetd but not yet planned
PRB0281325

We are going on the right way

I have a different PRB for the CR Report I made PRB0281318 either way it should get fixed