How do I recreate a FKV from Client in Kinetic?

Hello,

I have been scouring this site for what I need but it hasn’t worked for me yet.

What I have is Order Entry → Lines tab has a textbox that references a FKV that brings in the Part table tied to the OrderDtl table.

How, specifically, do I recreate this in Kinetic Application Studio?

From what I have read, the first step is to create a data view.

I used the wizard to help create this. Just had to add the Parent Child relationship manually.

What I am missing it the next step.

From what I have seen, I am supposed to initialize it somehow?

Is there any steps in between before I do that?

If not, how do I initialize this?

Any help is appreciated.

EDIT to give Solution without having to track it down. (From POST #16)

All credit for this goes to @dcamlin!

Without his guidance, I would have struggled for a lot longer berfore getting here.

THANK YOU!!!

After I added the condition and also the second trigger of ‘orderDtlRowChanged’, it seems to be working like a champ!

I would say for my situation, the correct answers were:

  • Post #6 - Create the REST like this in separate event.
  • Post #9 - This is the trigger for line row changes. Use condition from Post # 13. Hook condition to event-next going back to your REST event you set up in Post #6.
  • Post #13 - This is the trigger for first loading. Hook condition to event-next going back to your REST event you set up in Post #6.
  • Post #14 - This told you to use 2 separate triggers to cover loading and line changes.

Putting this all together worked for me.

1 Like

FKV’s don’t exist in Kinetic :neutral_face:

I believe you’ll need to make a dataview and events to relate and pull the data.

That’s what I thought.

It isn’t very straight forward on how to do this as a data view though.

Does the one I created look OK?

Is it missing anything?

What event(s) do I need to create to get the correct data pulled in?

Any help is appreciated.

I haven’t had to do this (yet) but maybe @dcamlin can help?

I ran into the same problem, how I worked it out was to make a really simple one in classic then uplift it with the conversion tool. I then took a look at how it was made. Sorry I am a bit under the pump at the moment, and have been meaning to do a write up if only to go into my archive.

As @Randy said DV rings a bell.

Hope that helps.

1 Like

I don’t know if I should be embarrassed by this or not, but I’ve never seen reference to FKV before. But, I entered Epicor in Kinetic forms and only played in Classic a little during initial implementation sessions as a stop gap while Kinetic forms were still being built and released (it was a painful time!).

I guess I’d have to agree that FKV doesn’t exist in Kinetic… could be wrong, but I’ve never come across it??

To me, this sounds like a straight forward rest-kinetic event to populate your Part dataview.

You have a Part dataview set up, tied to the Part table and dataset… so you just need an event to populate it:

There’s already a stock event for ColumnChanged_OrderDtlPartNum

I guess I would first attempt to tie my custom event after that one.

Trigger:
event
after
ColumnChanged_OrderDtlPartNum

Add a Rest-Kinetic action (below is an example I have from a custom dashboard, but the settings should be the same):

Method Params:

In your case, use a Field Value of: OrderDtl.PartNum

Response Parameters

As long as the trigger (timing of the event) works… This should use the OrderDtl.PartNum as the parameter in your GetByID rest call. It should pull the full Part dataset into your Part dataview. Then you just bind your control (textbox or whatever) to Part.MPD_Description02_c and it should display.

If you switch to a different OrderDtl record (row), it should perform another rest call and bring back that part’s corresponding part dataset.

2 Likes

Thanks, I’ve been swamped at work and didn’t have time to do a write up.

Hello,

I have tried this and it is not doing a thing that I can tell.

The ColumnChanged_orderdtlPartNum didn’t seem to trigger anything.

I then tried orderDtlRowChanging and I can see it trigger.

What I see now in Developer mode is this.

Any ideas?

I’m about to head out… but I tested real quick…

I can get it to work with a trigger of Event > After > orderDtlRowChanged

This doesn’t work on the first line I go to… but if I navigate between lines, it works.

I don’t have time right now to find an event to pin off of for the first loaded OrderDtl row. I can take a look tomorrow.

1 Like

I appreciate the help finding the right trigger but right now my main concern is that the REST is not working, that I can tell.

If you need screenshots of my REST, let me know.

Thank you again for helping with this.

Hopefully I can learn from this and get the REST part down.

I set mine up like my example above and it worked.

I do NOT have a parent/child relationship set up in my dataview, but that may not be an issue either way.

I guess if you want to post up picks of your rest settings and more detail on the result, we can dig in. Can you expand the drop downs? Might have some clue in there.

You can also review the GetByID call in the debugger’s Network tab.

Preview and Response will probably be empty since it failed… but do you see anything in the Payload (is your rest call sending what it should be sending)?

1 Like

Well,

I don’t know what to say.

I deleted the layer and rebuilt it again this morning.

I tied to the one you mentioned and tested.

Damned if it didn’t work!

Now I just have to figure out how to trigger this when the Lines/Detail screen is clicked.

Any ideas?

Try this one:

Event > after > RowChanged_sysPages

This will fire everytime you switch pages in the form… so, add a condition:

'{sysPages.epBinding}' === 'OrderDtl.OrderLine'

If TRUE: Run your rest-call

If your page epBinding is not OrderDtl.OrderLine (FALSE)… it won’t perform the call.

That gets it to load the first time but if I switch lines, it does not trigger.

I feel like I need to do separate triggers.

The RowChanged_sysPages and the orderDtlRowChanged and have both call the REST as an event.

Does that sound logical to you?

Yes, you need two events. One for initial load, one for switching lines.

1 Like

All credit for this goes to @dcamlin!

Without his guidance, I would have struggled for a lot longer berfore getting here.

THANK YOU!!!

After I added the condition and also the second trigger of ‘orderDtlRowChanged’, it seems to be working like a champ!

I would say for my situation, the correct answers were:

  • Post #6 - Create the REST like this in separate event.
  • Post #9 - This is the trigger for line row changes. Use condition from Post # 13. Hook condition to event-next going back to your REST event you set up in Post #6.
  • Post #13 - This is the trigger for first loading. Hook condition to event-next going back to your REST event you set up in Post #6.
  • Post #14 - This told you to use 2 separate triggers to cover loading and line changes.

Putting this all together worked for me.

1 Like

Then you should give the solution to @dcamlin

1 Like

I thought it better to mark how the solution was pulled together.

Would it be better to mark one of his posts?

Does marking a solution do something useful on thei site?

I honestly never paid attention.

If it does, then by all means I will move it to one of his posts.

Just let me know.

It gives props to the one who helped you but it’s ultimately up to you.

I honestly don’t know which is better. As convention, people use it as a social credit / means of ‘rewarding’ the person who provided the solution and so it is seen as rude to ‘steal’ it for yourself. I believe a solution is worth a lot of points on the leader board.

However, all that is pointless internet points. As far as a functional purpose, it makes is easy to see if you are searching on a problem, if the search result was ever solved, and it makes it easy for people scanning the forums for people who still need help. It also puts the post marked as solution at the top with the original problem statement, saving people time. In that case, a post that has the full and complete solution would be ideal, but often times the solution is spread out over a series of posts, and sometimes even over multiple users. In that situation some people just pick the person who had the greatest contribution or the last post that was part of the solution.

And some people make a summary and then mark it as the solution, ‘rewarding’ themselves. :wink:

@moderators Any preference here?

3 Likes