Updatable Dashboard w/uBAQ linked to Grid dropping data when columns not present in grid - 2024.2.10 (Kinetic)

Hello,
I have a uBAQ linked to UD110, with one field marked as updatable.(ShortChar08)

I’ve tested the uBAQ and it works as expected in BAQ designer. It calls Ice.BO.DynamicQuerySvc/Update and supplies all display columns visible in the BAQ Designer grid.

I’ve pulled this uBAQ into a Dashboard Panel Grid, with manual column set up (I am omitting some columns that I don’t need to work with in this grid - they are not present + hidden, but rather omitted)

In the ExecuteBaq call at app load, I can see that all display fields set up in my uBAQ are not returned to the client from Epicor. There is a SELECT statement being sent with the call, and only my configured grid columns are present in the payload. They are stored in the DataView tied to the grid. I have ShortChar01 set as a display field in the uBAQ, but it is not configured under Grid Model - columns, for example.

When committing the update with an event using the erp-baq/kinetic-baq widget (why does it have two names now…?), with BAQ Id and View name provided, using update mode and sending a single record, in the network trace I can see that the omitted columns from my grid are not included in the payload. (they couldn’t be, because they were never included on the SELECT statement, so don’t appear in the DataView)

All columns omitted from the grid are nulled in the UD table row on the UpdateBaq call (even though they are not marked updatable in the uBAQ)

Is that expected behavior? I’ve noted that a work-around is to include all display fields from the uBAQ as columns in the grid, but marked as hidden. This includes them in the SELECT statement and they are sent in the payload with the UpdateBaq call.

The uBAQ itself doesn’t list ShortChar01 (and the several other fields that get nulled) as updatable, so it seems like this should not be expected behavior.

Edit: fields not included in the uBAQ at all are being nulled as well.
uBAQ does not include ShortChar10 as a display field,

I’ve stored some data in the ShortChar10 column, then run my test, UpdateBaq BO will null ShortChar10 if not sent in the payload, even if that field is not included in BAQ at all.

1 Like

Here’s the test scenario to repro:

Table UD110 has a row with data in ShortChar01, ShortChar02, ShortChar03

Create a uBAQ including the keyfields (Company, Key1, Key2, Key3, Key4, Key5) - only ShortChar01, ShortChar02 as display fields, and ShortChar01 marked as the only updatable field. (ShortChar03, which has data as well is not on this uBAQ)

From BAQ Designer, performing update calls Ice.BO.DynamicQuerySvc/Update and includes all columns that are display fields in the update payload. ShortChar03 is untouched as desired.

Now, take the uBAQ and dropping it in to a kinetic grid component, and only defining a column for ShortChar01 and a button to push the update with kinetic-baq/erp-baq in single row update mode from the dataview/baq.

When changing the data in ShortChar01 and committing the update, Ice.BO.KineticErpSvc/UpdateBaq is called. Key fields must be present in the column list (but hidden) or update will fail. (payload includes Company, Key1 - Key5, ShortChar01)

After successful call to Ice.BO.KineticErpSvc/UpdateBaq, Company, Key1-Key5, and ShortChar01 are as desired, containing their data.

All columns within this row that are omitted from the UpdateBaq payload are nulled. If there was data in Number01-Number10 for example, all of those columns within the updated row will be nulled.

2 Likes

I’ve observed the same thing. All key values 1-5 must be part of the grid (Hidden is ok), and include Childkey 1-5 on ud1XXa tables. I’m not sure if I’ve ever made one with a uBAQ that doesn’t include all columns with data, so I haven’t seen whether it nulls out columns not included in the uBAQ before. I’ll do some testing to confirm the same behavior. It seems like it should definitely ignore columns that aren’t in the uBAQ at all, especially if they aren’t marked as updatable in the uBAQ itself.

2 Likes