Adding Parent Child Relationship between RcvDtl and UD31 table in Epicor Kinetic

Hello everyone,

I am looking to add the UD31 table as a child table to the RcvDtl table on the Receipt Entry screen. Here’s what I’m trying to achieve:

I have created a UD form, “Receipt Table Master,” on the UD31 table. My goal is to add a grid on the Receipt Details screen. When a user enters a new line, the grid should automatically create a new row, with the first column displaying the value “1” as the line number. Upon clicking that line number, it should open my UD form, “Receipt Table Master,” where the user can manually enter data. When the entry is saved, it should save the data in UD31 and add the line to the grid under Receipt Details.

I have started with the customization, added a panel grid on the Receipt Detail page using Application Studio, and bound it to my UD31 DataView. However, I’m facing an issue: I am unable to add new lines to the grid. I suspect there are specific methods that need to be triggered to add, save, and delete data in this grid.

If anyone knows how to proceed with this customization, a step-by-step guide on achieving the desired result would be incredibly helpful.

Thank you in advance!

Hopefully this can get your started…

Each UD Table has its own set of rest calls… for example:

Ice.BO.UD31Svc - GetNewUD31
Ice.BO.UD31Svc - Update
Ice.BO.UD31Svc - DeleteByID

In this case the first on you need is the GetNewUD31

So, you’ll need to create an event that makes the above rest call. This will create a new row in the DataSet.

Below is an event I have set up on Part where I use UD02 as a child table:

My condition checks that PartNum is != “”

You’ll probably want to set this to for the minimum required information for your situation. So, you would want to make sure your PackSlip != “” and your RcvDtl != “”… both of those are required before you can create a new UD31 record.

My rest-call method parameters are in the above image, I would try those.
I don’t have any Request Parameters… but I do have a Response Parameter… but it’s empty (can’t remember now, it may set that up automatically when you use this specific method):

On Success of creating the new row… use the row-current-set in order to set that new row as the active row in your dataview (“UD02_View” in my case).

Then use the Row Update to set any keyfields you already know for the new record. I would assume your Key1 would be your PackSlip value and your Key2 would be your RcvDtl value.

I then call a slider open which is my “entry form” for other information for that record.

On your entry form, you’ll need a “save button”. This will need to include a rest-erp that calls:

Ice.BO.UD31Svc - Update to update (save) that row with any additional information you add from your entry form.

4 Likes

Hello @dcamlin ,

Thank you for your response regarding the issue. I attempted to recreate the event you set up for the Part, but unfortunately, I’m still unable to add the line in my UD grid. I’ve attached a screenshot of my event setup for your reference.

Here, I have added a tool tip in Action Menu and set trigger control to my Tool Click.

Below is the image of my rest-erp widget configuration


Configuration for Row- Set Widget

Configuration for Row- Update

Instead of Slid Out Widget I have used App open widget to open my ud form and below is the configuration


Also, kindly note I have used dialogue box in middle of every widget only for debugging purposes.

Could you please take a moment to review it and let me know if there’s anything I might be overlooking? Your guidance would be invaluable in helping me move forward with this development.

Thank you once again for your assistance!

Your rest widget doesn’t seem correct.

You have your Method Parameters called Key1. I would delete that parameter and create one called “ds” as I did in my images above. You’re not trying to get to Key1, you want access to the dataset.

I thought, when you chose the UD31Svc and the GetNewUD31, it would create that ds parameter for you.

Are you familiar with using the debugger in the browser? I do recommend it as you can watch events happening and instantly know if you’re getting a response.

Hi @dcamlin,

I modified the widget and included Ds in the method parameter; however, the expected result is still not achieved. I also checked the browser debugger, which indicates an error stating, “Event GetNewUD31 not found.”

Could you please advise on how to resolve this issue? I’ve double-checked the widget configuration, but the issue persists. Any guidance on what might be causing the GetNewUD31 event not to be recognized or any steps to troubleshoot further would be greatly appreciated. Thank you in advance for your assistance.


Well, I’m not sure why you’re getting that error. I just threw it on a quick event and it fired okay:

image

Now… that being said… I DID make a mistake in my earlier post.

My first event rest-erp is not using the GetNewUD31… it is using the GetaNewUD31.

Below are the available services:

So there are (2) similar, but different, services here. GetANew… and GetNew

Looking again at my events (more closely this time) you need to use the GetaNewUD31 option for this event.

image

Sorry, that little “a” is easy to miss.

That being said, again, I did at least get the GetNewUD31 to fire in my case… so, still not sure why you were getting an error.

But, try GetaNewUD31 and see if you can get it to go through.

1 Like

Hello @dcamlin,

Thank you for the correction you mentioned. I followed your steps and created event as shown in below image and now I’m able to fire service GetaNewUD31 method.


But, as you can see my sliding panel is opening in “read only” mode. I’m not able to add data into that form. There is some event need to be fired to get that stuff done, but I’m not able to create that event. Kindly refer below image.

Kindly guide, how can I fix this issue.

Thank You for your cooperation.

Can you show your mappings of a couple of those fields? What are their bindings?

Hello @dcamlin;

Sure, I will post snapshots of the epibindings.




In similar way,

  1. Rejection Qty:  UD31.Number02
  2. Scrap Qty: UD31.Number03
  3. Challan Number: UD31.Character01
  4. Challan Date: UD31.Date01

This are the all the Epi-Bindings to the field present in form Receipt Table Master

Kindly Check.

Thank you for you cooperation.

Just trying to review my events vs yours… I really only see two differences (other than the trigger itself).

My connector between the rest-erp and row-current-set is an “on success” type, where yours is not. Not sure if that should play a role in why you’re not seeing any populated information or not.

image

And the only other thing I’m seeing as a I walk through the debugger is when my “row-current-set” fires, it is showing a “row” value. Its empty. But this appears on mine and not on yours:

vs. yours:
image

Again, there is no value assigned to my row… but I’m wondering if mine is working slightly different than yours:
image

The only thing I can think of right now is that perhaps it is a timing issue. My event is waiting to complete the rest call… and “on success”… it sets the new row as the current. In your case, it my be trying to assign the row before the rest call is completed and therefore isn’t populating correctly. Could be way off base. Just trying to compare apples-to-apples and that’s really the only major difference I see.

1 Like

Hello @dcamlin ,

I hope you’re doing well.

As you mentioned, I attempted to set the row value “On Success” after the REST call was completed. However, it doesn’t seem to make much of a difference, as the “row” value is still not being displayed as expected.


Additionally, when the app-open widget is launched, I notice several errors in the debug window, specifically stating “Permission Policy Header”. It seems to be related to permissions, but I’m not entirely sure. Could this be the reason why I am unable to edit the form?

Looking forward to your assistance. @hmwillett

Thank You.

Okay, out of frustration, I built this out this morning:

Added DataView: UD31
Added New Page: UD31Entry
Added a few textboxes bound to Key Fields
Added Button on Line Detail Page: btnUD31Entry
Added Event: Control: btnUD31Entry - onClick

Condition: "{RcvDtl.PackLine}" != ""

If this is true, and a PackLine exists: rest-kinetic (don’t know why they felt they need to change that name all of the sudden).

image

image

Request Parameters: NOTHING

Response Parameters: You need to verify this step… I don’t think I explicitly called this out previously as I couldn’t remember if it was set-up by default (apparently not).

Click the (+) here to add a response parameter. Then click on “Dataset”.
Here are your settings:

image

  • I think this may be why you slider was popping up read-only.

Row-current-set: Another sticking point here…

image

Under Basic, you don’t need anything here… but it was odd that my previous event on my Part Entry using UD02 included a “row” parameter, where yours did not.

Initially I did nothing here… and I got the same results you were seeing:
image

Again, in my Part/UD02 event, I was seeing an empty row parameter being called out:
image

So, I initially entered “” here to try to get an empty row. THIS FAILED… BUT, it DID add the row as part of the Parameter being passed.

I then deleted the “” and tested again… and that got me to where I wanted to be:
image

… can’t explain it, but, without that empty “row” parameter, my results weren’t appearing on screen. WITH that empty “row” parameter, my values came through.

Row Update:
I passed the value of PackSlip to Key1 and PackLine to Key 2:
image

Slider Open

image

I added a textbox bound to Key3, but didn’t do anything with it.

I can verify in debugger that my UD31 dataview is holding those values:

image

1 Like

Hello @dcamlin,

Thank you for the solution provided. As you can see in the below image I’m now able to fetch empty row data.

Also, this is how I set my Rest-Kinetic Widget configuration looks like.




I’m facing major issue in data entry on UD31 form. As you can see, form is opened in read only mode. And when checked in Debug trace log I found this warnings. I don’t think this will be the issue for Read- Only mode but not sure.

Posting image for your refrence

Kindly check.

Thanks and Regards.

Revisit your response parameters and refer back to my image. I didn’t have any settings there except within the dataset.

@dcamlin ,I tried removing response parameter as well but still not able to achieve desired result i.e. not able to edit the form.

Good day Amit. I saw your other post on this topic. If you want to keep chipping away, I’m more than willing.

As shown in my previous reply, I was able to do this successfully.

If we start from the top… can you show me your UD31 dataview settings?

Below is what I used:

1 Like

Hello @dcamlin ,

Thank you for your response. The reason I want to chip in on this is that I am eager to learn and understand how to get this done effectively.

Below is the screenshot of my UD31 dataview configuration which you asked for.

Thanks and Regards

Try getting rid of the parent/child relationship on your UD31 dataview. I’m not sure why that would get in the way.

image

I did some testing… if I add that in, I get the same results you’re seeing. Read Only fields on the slide out. If I take it out, I get the results I was seeing, active fields with values populated.

I also tried adding PackLine = Key2 as a second key… but still results in read only fields.

Below is the application help on the parent-child relationship settings.

Try deleting that relationship all together and retest. See if that opens up your fields. I don’t think it is necessary and it is causing a conflict somewhere.

Hello @dcamlin,

Thank you for your response. As you can see I deleted the Parent child relationship as you suggested from UD31 dataview as shown in below image.

But, still my fields are not opened up for editing.

Untitled_Project_V1

Below are the configuration for rest Kinetic widget



Thanks and Regards

What are your settings in your app-open?

I’ll be honest, I’ve never done this with an app-open widget. I’m not even sure how you’re doing that, haha. I’ve been playing with settings trying to get it to work and I just get errors. I can get into Receipt Entry, but not to my new page (which is on the same custom layer I’m trying to access).

I apologize I didn’t catch on to that earlier. It seemed to be working for you… you’re somehow getting to your page but I’m wondering if you’re opening a second instance of Receipt Entry to do so, the UD31 Dataview in that second instance isn’t established. Your event called a GetaNewUD31 in the first instance… but you’re opening up a second instance and those fields are greyed out. Which, makes sense.

Here’s my set up…

I’m in Receipt Entry, in my custom layer. I added a page. I set the Page Type to SlidingPanel.

I use a Slider-Open widget in my event, the only setting you need to give it is the page ID. Super easy.

I would recommend trying to adjust to this set-up and see if that clears up this issue.