Saving custom BAQ data parameters in an Epicor created application

I created a second page in NonConf that displays custom fields from a UD table. I have it connected to a BAQ that only consists of that one UD table. I run and test it, and I can only save changes from the original, Epicor created parameters, and my parameters with a different BAQ and DataView do not save, nothing happens when I click the save button. I am almost positive I have to call an event that is Epicor locked as the trigger and then update the rows through kinetic-baq and row-update, but I am not sure of the event I need to call or the toolbox options needed to go about this. I’ve done lots of trial and error and cannot seem to get any difference in preview. Does anyone have any suggestions of where to start with this?

Could you try explaining that again. I don’t know if it’s just me, but I am just not getting that at all.

Sorry, so pretty much:

I am in NonConformance. I am adding text boxes that fill with data that come from a BAQ I have that only consists of one data table (UD08).

Once I choose a TranID, all of the Epicor-created parameters fill with their NonConf data, as well as my custom text boxes that are linked from my UD08 BAQ in line with the respective TranID.

When I edit data from an Epicor-created parameter and click save, all is good and saved. When I edit data from my text box, and click save, nothing happens. I am trying to figure out how to attach my BAQ or DataViews to be saved when I click Epicor’s save button in the tool bar, and nothing seems to be connecting.

My BAQ is set to updatable and I’m not sure which (Epicor-created) locked event would be the right one to call as the trigger to my new event (that saves the changed data). I am also not sure if my (save) event itself works because I cannot get the toolbar save button to connect to the rest of the custom dashboard page.

Any help would be greatly appreciated.

Does the stock save button appear on your added form?

If so, you could set your event with a trigger of:
Event > After > OnClick_toolSave

This should result in the base “Save” event firing (which will update the base data via the NonConfSvc.Update method) and then it will fire your event where you can save/update data to the UD08 table.

I agree, this is likely the issue.

I just wanted to add an extra note.
Assuming the following conditions (if I understood the post correctly)

-You are on the NonConf menu
-Added fields that are connected to the UD08 table

The reason the “save” isn’t working is because when you press “save”, it hits the NonConfsvc.Update(), which updates all data associated with columns on the NonConf table.

You added fields to the NonConf menu which are from UD08, the context of this menu “save” doesn’t know you are trying to save data to another table that isn’t NonConf.

Therefore, you need to call the UD08svc.Update() to save data to that UD table.

As David stated, you can create a custom event after that OnClick_toolSave (which calls NonConf.Update()) to call your UD table update.

Let me know if you have any questions and I can provide some screenshots.

Yeah @dcamlin the stock save button appears, and when I click it no blue loading bar occurs at the top of the screen like it does when I update NonConf data.

After creating the after OnClick_toolSave event, I used rest-kinetic with Ice.BO.UD08Svc and tried setting parameter dataset with my DataView’s name or UD08 itself, both with no luck. But, I finally get that blue loading bar, but nothing actually saves. I found another user using Kinetic-baq instead, so I went to give that a shot. The following screenshot is that:

Maybe I need a row-update in there? I’m not 100% sure. I feel like I am missing something right in front of me, I am just getting thrown for a loop because I am not used to a visual editor like Application Studio. Thank you guys for the help, it is greatly appreciated.

Hello, here is a working example:

Data Table:

Save event: (there is no trigger because this is called from a control)






It should be as simple as setting up few fields as seen in these images.

Are you sure the fields you created/added are setup correctly?

Let me know if this fixes it.

Edit: A bit more advanced, but an alternative method to doing this is using Epicor Functions. You could create a function that handles the update by creating an event in Application Studio, passing the TranID to the Function and the data to update, then in the function do a GetByID on UD08 WHERE Key1 (or whatever field you are storing that field on) == the passed parameter. Next, update the dataset with your changes, then, call UD08.Update()

1 Like

Unfortunately, this did not fix it. I was missing the request parameters, but it is still not saving. I was looking into Functions, I think I will go that route tomorrow, until then I will be trial and erroring different parameters and code that may be causing no saves.

The only difference between our screenshots now is that I have a trigger, where I’m assuming yours is called from another event. Maybe things would be different if I were to create a separate save button so nothing conflicts with the NonConf save process and I call the save process through another button event? I don’t think that will be the solution, but doesn’t hurt to try. I will keep this updated when I find the fix for future people having similar issues, any further insights and thoughts would still be appreciated :smiley:

Hello Ryan,

You do not need a custom save, the trigger David mention is what you should be using.

Can you post everything you have on this process? It would help everyone here in assisting you.

It’s difficult to debug based on only limited information provided.

Sure -

I am calling the data from the UD table into a DataView, shown below

After the trigger David mentioned, I have this under rest services under rest-kinetic:

Under that, under Method Parameters, I have exactly what you have (ds and no Dataset ID)

Under Rest Arguments, Under Request Parameters -

and under Response Parameters I have nothing

Maybe it has something to do with my DataView being dvRM_NonConfParameters instead of UD08? I was only able to get data to fill in the parameter by using dvRM_Non… BAQ with UD08 linked as the only table in the BAQ because when I use UD08 by itself, data doesn’t even fill.

This helps a bit.

I would study existing kinetic dashboards to see how they are populating their dataviews, this will be helpful.

Here’s an example of how to populate that dataview:



Your parameter to pass to the GetByID is just the TranID if that is what you are using as the Key for your UD08.



These screenshots should get you populating data into your UD08 table correctly. I believe your problem is you are just populating your data fields, then calling UD08.Update(), but it doesn’t know what record to update, because you aren’t getting the required fields to do so. This should get your dataview populating correctly, so the update works as intended.

There is going to be an event under Events → Components → Grid. What this does, is on click on a NonConf TranID, populate all of the dataviews. That is why you see data when you click a record.


Your trigger will be after the "OnClick_grdLandingPage. Here, you will insert that logic I provided above to populate your dataview. Then, your update should work as intended. Feel free to remove that BAQ you are using to fill the table currently, as this should cover tha.

Additional tips, if you go into the chrome dev tools (F12), enable debugging (ctrl + alt + 8), you can see all the events firing to know where to place your trigger. On top of that, you can see all of the dataviews, and their data, by pressing ctrl + alt + v.

I don’t have access to edit the grdLandingPage screen, so I am calling the UD08_GetByID event after the TranID is picked on the landing page, and now I am getting parameter key1 input object not found, which I change the field below key1 under Method Parameters to LandingPage.TranID and get Record not found. Any suggestions? It seems like maybe the event is running and not picking up the TranID I chose so it has nothing to tell the keys?