Binding Grid on Part App to UDxx table

I’m trying to use UD03 table to store a list of records related to a parent object/record. In this case it’s on the Part application. I’m using the Key1 value to store PartNum for a foreign key. I want to be able to interact with this list just like I would line items on a sales order, with the ability to add/edit/delete. So far I’ve created the view and used the “guided setup” on the grid to set the binding, but when I preview the app it doesn’t load the related rows in the UD03 table. I also am unable to add new rows via the + button.

Has anyone used this approach before? Is there a better way to manage child records and the parent-child relationship with a UD table?

I was able to set the Parent Data View and Parent Child relationship, which saves, but then for some reason just disappears at some point.

Is there anyone out there who can help? I’m surprised there aren’t any replies yet or did this post slip through the cracks?

Do you have an event to populate the dataview? If so, is it firing?

How did you create this DataView? if you used the Wizard, it may have created a “get” event for you, but it would have left the trigger blank for you to define… or you can call it in a different event using event-next.

Search your events for one called ProdLineView_Get. I think that’s how the Wizard creates them.

Do you have an event to call the rest-erp Ice.BO.UD03Svc, GetaNewUD03 method? If so, is it firing?

Thanks David I’ll check those settings.

David,
When using the Data View Guided Setup my two options for Source Type are BAQ or BO Service Call. If I choose BO Service Call it doesn’t include the Ice.BO methods, just Erp.BO. So I have to choose BAQ. Am I already at a dead end or do I go with the BAQ route? I do have an updatable BAQ ready to go if needed.

You can just start typing in Ice.BO.UD03Svc… it should populate for you.

Oh right that worked. I think I was typing it in wrong.

Any recommendations on which event to use? If I use DataView Viewchanged I get an error when the Part loads. I also tried Window OnLoad and the list didn’t populate. Also Event.AfterInitKeyFields and also returned an empty list.

(I do have two rows in the UD03 table).

If I use the following settings in provider model then it populates the list…
But I’m thinking if I can get the event to work that it’s probably the stronger approach?

Watching the events fire this morning, you might try After - AfterGetByID. That seems to be the last major event after a PartNum is entered.

You need the Part to be loaded so your UD03 table can use the Part.PartNum (or, probably KeyFields.PartNum) as its Key01 (based on what you said earlier).

See if that works. If it does, you may also want to test whether your UD03 dataview repopulates correctly when you change the PartNum on the main form (pull up a second, different part). It looks like if you used After-AfterGetByID, you would still capture the Key Field Change events as they occur before the AfterGetByID.

I don’t see Trigger → Event → After → AfterGetByID.

I tried Trigger → Event → After → AfterInitialize and I get an error when the list loads.

I noticed that with any of the events I choose, if I go back to the part list, then pick another part then the grid loads all the columns of the UD03 Dataview, but no rows of data. Maybe I’ll just stick with the Provider Model solution for loading the rows?

Once I get this part done it feels like I’m only 30% of the way there. Still need to be able to add/modify/delete from this list and it appears that’s all very customized as well.

I hate to waste more of your time. It’s frustrating that customizations like this can’t be more intuitive and straightforward like they are in other ERP systems. I guess I need to find a Kinetic consultant somewhere that can walk me through the customization over the phone so I can get this done and move on.

1 Like

You’re working with Part Entry, correct?

Correct. Part Entry.

I’m assuming your Part Entry is already customized (most are). When I look at my list… I see AfterGetByID as an option… but I DON’T see AfterDelete as an option (which is included in your above screen capture).

The reason (I think) is because I already have a custom event in my system that is using the After-AfterDelete combination.

So, it is not allowing me to use that trigger combination again.

I am assuming this means you may already have an event that is using the after-AfterGetByID trigger.

If you can find the event in your system that it using that Trigger, you may be able to add your rest call there.

But yeah, sorry, I seem to be walking you into dead ends here.

Oh right! Yes that’s why it’s missing. I’m using it with some other custom code.

And now I’m stuck just trying to think through the best way to design a new custom event that registers the AfterGetByID trigger and can be used for multiple other custom events. I’m not convinced there’s a great way to do this right now. The best solution would be to allow multiple registrations of the same trigger/event.

I’ve contacted an independent consulting firm and will see if they can help me.

Thanks.

David,
An update…it appears there is a bug in 2023.1 with this functionality. I connected with a company that has many Epicor clients and we went through these customization steps in 2023.1 and 2024.1 in parallel and the exact same customization in 2024.1 works. The tech also tested in another 2023.1 environment in case there was something special about ours and he reproduced the issue in the other environment. Next I’m looking into whether or not the issue is resolved in 2023.2. I’d consider updating directly to 2024.1 but I hear there are some significant client-side changes that will require some conversation internally before we move to that version.

2 Likes

Great that you have resources available to check issues in various versions. Certainly helps save your sanity in cases like this.