How To: Kinetic - Launch a Form using App Studio

Also, try deleting the entire app-open widget and add it back to your event.

Try ticking the “Open in Design Mode” as well and see if that opens the expected layer.

Just tried it with a fresh app-open widget and without the launch options JSON.

It hits the normal JobEntry landing page, and has no button on the details tab.

Edit: Design mode opens NewLayer Hmmmm

Try a screen other than Job Entry and see if that works.

Tried SalesOrderEntry, since I had a layer made already.

New button, new app-open, opens the correct layer in design mode.

Lemme try out Job Entry and see if I can replicate.

Hmmm,

Still seems to work. Your Job Entry sounds FUBAR.

:laughing: I want my stupid button back!

I re-created the button, event, widget, all the nonsense in app studio again on the MES side. JobEntry still opens in design mode on the base layer. I’ll toy around with a couple other things today but this may be a support ticket incedent.

Thanks for your time, don’t keep my stupid button for too long or it may destroy your job entry app!

I see that all examples are opening Details page. What abt other pages?

I would like to go to “Orders” virtual page or at least “Activity” tab page in Customer Credit Manager. Mentioned app don’t want to “accept” ValueIn as a default.
So I created a Layer in Customer Credit Manager I am reading my Value on after FormLoad event. I am doing row-update and setting KeyFields.CustID to my Value. This result in Details page being open - but I can’t go neither to Activity not to Orders page. Any hint?
BTW I was also trying to use dataview-set-current and row-current-set but it didn’t help as well.

Update: someone was already asking how to navigate to Virtual page nobody answer:

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: