Passing values to app-open tile

In ERP10 i used environmental variables to pass variables from a parent screen to a subscreen.
For example; I had a dashboard with all available work (operations) in a grid. I could select a record click on a button Start Setup and the next form opens and the required textboxes, combo boxes etc. are already entered.

In the parent:
Environment.SetEnvironmentVariable

in the child:
Environment.GetEnvironmentVariable

Is there some way to pass data like this in application studio?

I have created a layer in Erp.UI.Mes and it’s calling Erp.UI.StartSetupActivityEntry using an open-app tile (sliding form). I tried to use callContextBpmData, but this value is already lost in the next form.

During debugging I found 3 potentials tables (no columns) to pass data → TransView, KeyFields, KeyFieldParams

Anyone who has a solution for this?

Woo, this was a wild ride and I think I’ll write up an official HowTo on this, but see if this works for you:

Here are the Launch Options. contextValue is going to be your extra fields you’re sending over.

On the receiving form, you need to add an event (I used After Form_OnLoad, but find what works for you) to set the fields into a view of your choice. I typically use TransView because it’s already there and you can add fields to it on the fly. In the event, use a row-update widget and set the value to that disgusting string.

image

4 Likes

That looks exactly like what I need to finish my plan. I tried it before with the ContextValue, but I didn’t know how to set those parameters like you did. Thank you very much!

I do however have an issue with application studio missing de epBinding field. The problem occurs in the full-client and in the web-client. Most of the time the field is hidden. Any idea what triggers this field to appear?

It shouldn’t need a trigger; it should always be there.
If you can replicate it, submit a ticket to support.

In the meantime, try clearing your cache in the client and the browser and see if that helps.

If I add a textbox somewhere and bind it to an epBinding and throw it away it is triggered and the field can be used :stuck_out_tongue:

Still struggeling. I tried the example you gave me, but I can’t get the params send to the next screen. I see you are able to find them in the debugging mode, but how did you get there? I get lost in the many transaction and values that are shown in the console/ sources and network tabs.

To debug the set and get logic i created a button in the next screen to read the value in the initialValueIn data as I couldn’t get it into a textbox by the ‘after form load’. During this phase i even couldn’t get employeeID to display which should be stored in the valueIn (not contextvalue).

From the Erp.UI.Mes:
Start Setup button sends out {“employeeID”: “{Constant.CurrentEmployeeID}”}

In the Erp.UI.StartSetupActivityEntry:
Added new button to display the value:
Message: “%session.context.initialValueIn.employeeID%”

Result: “”

if i call for “%session.context.initialValueIn.contextValue.Param1%” the popup doesn’t even follow, so I think it’s not even there.

How To: Debugging Kinetic (Browser) - Experts’ Corner - Epicor User Help Forum (epiusers.help)

This should be:

Message: “%session.context.initialValueIn.ValueIn.employeeID%”

This will only work if you named your value “Param1” in the contextValue object; you can name them whatever you want.

Use a different event downstream. “After” AfterInitialize may work for your needs. You could also try “after” Execute_GetByID. Experiment with events to find the one that works for your needs.

Ah finally got it. Couldn’t get the dev tools operating normal (ctrl + shift + 8) and so on. Turned out that my keyboard setting in language Dutch was causing the problem. Changed it to English(US) and I could finally start debugging.

The problem i was facing is the bug that an app-open tile can’t be changed. Everytime it changed back to the settings (Value options) i entered the first time. Deleting the tile and 10 attempts further deleting the whole button_click event (everytime it was back :expressionless: ) I could build a new open-app tile with the right value in information.

Thank you very much! Without your help I probably would have thrown my laptop out of the window :stuck_out_tongue:

1 Like

Isn’t that great? lol
SO annoying.

Hi Hannah!

Our company is new to Kinetic and I am facing some of the same issues as the OP. I followed your directions for passing values through contextValue with the last step creating a row update after the page loads. On the row update, I select the correct column and use this for the value (including the quotes):

“%session.context.initialValueIn…contextValue.Param1%”

The resultant value for that field is literally “%session.context.initialValueIn…contextValue.Param1%”

Do you have any thoughts on what I am doing wrong? Any help would be appreciated!

Show me what you put for your Launch Options.

I also typed in the value wrong on my last post. I had extra periods. It should have been:

“%session.context.initialValueIn.contextValue.Param1%”

After your form launches, press F12 to open Dev Tools, then press CTRL+ALT+8 to enable debugging.
In the console, type epDebug.context and hit enter.
Do you see your values?
image

How To: Debugging Kinetic (Browser) - Experts’ Corner - Epicor User Help Forum (epiusers.help)

The value Param1 looks like it is being passed correctly. When I put

“%session.context.initialValueIn.contextValue.Param1%”

for the value on my row update event, the page stops working. I appreciate all the help you are giving me!

Are you putting it in the “Value” or the “Expression” field?
Try the other one.

I am using the “Value” field. I was trying to follow your example above.

We are on version 2022.2.15 if that makes any difference.

On a side note, do you know how or where in Kinetic to export your customizations so they can be imported into a different database?

I’m fairly new to customizing Kinetic and some of their online documentation does not coincide with what I see in the program.

Again, thank you for taking the time to look at this!

first time GIF

Relevant:

Kevin,
Thanks for the link to the thread.

Hi @hmwillett ,
I am new to Epicor Could you please let me know the steps?

I am able to open the app but am unable to update the row.

In the above dashboard, I want to click on a case, no and the case entry screen is required with the clicked case no. If you please explain the steps it will be highly appreciated. Thanks

Hello,

Searching around the forum, I’ve been able to work out the Launch Options for passing information from one form to the other, but my issue is when there are no launch options i.e. form opened directly.

I’ve tried checking - session.context.initialValueIn.contextValue for null / “” (empty string or undefined but none of them seem to work for checking that no launch params have been passed.

I must be missing thing, any able to advise.

Thanks,