How To: Kinetic - Launch a Form using App Studio

Naturally, support had no urgency to figure it out. The answer though, is really simple and I’m DEFINITELY not mad about it.

If you deploy a kinetic app as a menu item, it references the .dll which for whatever reason makes your most recently deployed menu item launch, nomatter the layer you specify in App-Open.

However, if you deploy kinetic apps and use the MenuID as the parameter for App-Open instead of the program, that launches the menu item which will have the layer you specify in Menu Maintenance.
(The “Layer” parameter isn’t even needed at this point in App-Open)
image

Again, not proud of how long it took to figure it out, but thought I would share for any future reference.

1 Like

This should be what’s used going forward. The program DLL variation won’t work in future versions as it was discovered as a security risk. Using the MenuID honors the menu security.

You can still override the layer set in the menu by specifying the layer in the app-open widget if needed.

image

2 Likes

I wish I had seen this yesterday, I ran into this in a sideways fashion and had to figure this out on my own.

It was not fun.

how can we load the value passing from slide out to main page? in app-close there is an option value out but not able to understand how to do it :smiling_face_with_tear:

Callbacks

Here’s some information on how to get data back to the parent form from the called form.

In the called form, have an event that includes the app-close widget.

Result: This field can take any available enumerated type values: OK, Cancel, None, Abort, Retry, Ignore, Yes, No.
Value Out: This field is JSON formatted and is used to return specific values. This will get passed back to the parent form and temporarily be stored in the actionResult dataview.
DataViews: Use this to pass back an entire dataview to the parent form

  • Source: The child view’s dataview name
  • Destination: The name of the dataview in the parent form where you want the data to be copied to

image

Using the Value Out Data “OnOK”.

Here it is in action:

Callback

4 Likes

Implemented some app-open slide out and working great. It appears the existing personalization layer (user has personalized the grid) for the target app is not being applied in the resulting slide out app. The custom layer is specified in the Layer and being applied fine. I wouldn’t think it’s the “Who Launched” setting. Do you find this to be the case or is there a way to specify or just a limitation?

I’m putting this in here because it’s loosely connected, and hoping your wisdom might help me pinpoint what I’m missing!

The majority of our users access Epicor via the client but we are planning to roll out Kinetic MES in the coming months, this will be accessed via web. We have made some light customisations (hiding fields, couple of basic data rules) to it which appear to be working fine.

Most recently I have added an event to print off a BAQ report - which also initially appeared to be working fine. However, I have now realised that only generates the SSRS report when I am also logged in to the client. If I’m not logged in, nothing happens - when I am logged in, the file preview will generate no problem.

The BAQ report has been deployed as a Kinetic app and added to the menus both in the client and on the web.

The event is simply on click > open app
Click the button, slide out panel appears. User inputs criteria that filters the BAQ report and then previews, SSRS report is then generated.
The app view was initially set to ICE.UIRpt… but I’ve also tried it with the menu ID instead. It works either way… but only if I’m logged in. :face_with_spiral_eyes:

Feels like it should be something obvious but I’m lost :smile:

Any help much appreciated!

Hello!
Has anyone tried to use app-open widget to start app with params in “old UI”?
I can open old app as long as I don’t put anything in the ValueIn or Launch Options fields.

This works

But If I put anything in any of these fields the app is not opening.
image

When I am doing it in browser it says that it cannot be opened as it is old app and it’s kind of obvious. But testing it in client does not allow to debug and I’m stuck here.

Moreover. If I want to remove these values it does not save (they are still there) so I must remove widget and add it again.

For the view–use the MenuID (Eg. SGM00021) instead of the program (Erp.UIRpt.MatlTags).

See if that lets you add values.
You will likely need to add the report to the menu to get an ID first. I usually add those under the PROCESSES folder so it’s not visually on the user menu.

The problem was with Launch Options. I needed to put all of this to get it working. It works for both Erp.UIRpt.MatlTags and MenuID in View.

{
	"type": "Ice.Lib.Framework.LaunchFormOptions",
	"options": {
		"whoLaunched": "Erp.UI.JobEntry",
		"valueIn": "Test"
	}
}

In old UI we have something like this. The third argument is string and this is basically ValueIn.

ProcessCaller.LaunchForm(oTrans, "Erp.UIRpt.MtlTags",currVal.ToString());

For some reason the form did not open at all when I placed this string inside ValueIn field in App studio.
image

But when I formatted it to json syntax form has opened (but I still need only string there so that’s not the solution for me)
image

I think when the event starts it is checking if the ValueIn has correct json syntax and if not then it just stops without any error (just not opening the form). It is kind of strange because it doesn’t need to be json in fact. Maybe for all new Kinetic UI apps it is but definetely not for old UI.

BTW. I didn’t expect to attract the attention of @hmwillett herself. It’s like god heard my voice. :slight_smile: