Epicor Kinetic Customization - Add Columns To Screens - GingerHelp
Epicor Kinetic Customization - Add Columns To Screens - GingerHelp
Epicor Kinetic Customization - Add Columns To Screens - GingerHelp
support@gingerhelp.com
A D D I N G N E W C O LU M N S TO
E X I ST I N G E P I C O R K I N E T I C
SCREENS
ADAM ELLIS · SEPTEMBER 3, 2021
• There is the brute force approach, where we have used code within
classic forms customizations to dynamically add a column on form
load and then maintain it via lifecycle events.
https://www.gingerhelp.com/knowledgebase-epicor-erp/adding-columns-to-existing-screens 1/18
5/16/24, 3:15 PM Epicor Kinetic Customization - Add Columns To Screens — GingerHelp
https://www.gingerhelp.com/knowledgebase-epicor-erp/adding-columns-to-existing-screens 2/18
5/16/24, 3:15 PM Epicor Kinetic Customization - Add Columns To Screens — GingerHelp
Now for the actual code of the function itself. The code within functions is
pretty similar to what you would be used to developing regular BPMs.
The biggest difference will the the CallService method calls you see in
here - this is a wrapper that just makes it a little easier to call and properly
dispose of business objects within your code. So here is the actual code:
this.CallService<TimePhasSvcContract>(timePhas => {
// Call the standard time phase BO
TimePhasTableset timePhasTs = timePhas.GoProcessTimePhas
this.partNum,
0,
this.callContextClient.CurrentPlant,
true,
true,
true,
""
);
https://www.gingerhelp.com/knowledgebase-epicor-erp/adding-columns-to-existing-screens 3/18
5/16/24, 3:15 PM Epicor Kinetic Customization - Add Columns To Screens — GingerHelp
if (oh.OrderHedList.Count() > 0) {
dr["CustomerName"] = oh.OrderHedList[0].Customer
}
});
}
}
As you can see with the comments added in, we are using the Time
Phase BO to first generate a time phase for us, then we convert the
resulting typed tableset to a generic dataset, add a new column for
CustomerName, and then fill it by looking up the sales order and pulling
the customer name from there. Last step is to assign the ‘output’
parameter to the dataset we just built. Once your code is in place,
promote your function library to production so we can see it from Kinetic.
The next step will be to create an API key using API Key Maintenance /
Access Scope Maintenance. You will want to be certain to authorize this
new library for use with this key.
https://www.gingerhelp.com/knowledgebase-epicor-erp/adding-columns-to-existing-screens 5/18
5/16/24, 3:15 PM Epicor Kinetic Customization - Add Columns To Screens — GingerHelp
But since we are just adding to an existing event here, we can simply add
our function by dragging ‘erp-function’ from the toolbox onto the canvas:
https://www.gingerhelp.com/knowledgebase-epicor-erp/adding-columns-to-existing-screens 6/18
5/16/24, 3:15 PM Epicor Kinetic Customization - Add Columns To Screens — GingerHelp
https://www.gingerhelp.com/knowledgebase-epicor-erp/adding-columns-to-existing-screens 7/18
5/16/24, 3:15 PM Epicor Kinetic Customization - Add Columns To Screens — GingerHelp
Now go get out of this Method Parameters drill down (by clicking
the ‘erp-function’ breadcrumb at the top of this properties panel)
and drill into response parameters. Here we are determining
what to do with the results that come out of our function. In our
case, we know that we are expecting a response in the form of a
dataset that we’d like to point to that new TimePhaseCustomer
data view we just created. Start by pressing the + button and
then fill in per the following:
https://www.gingerhelp.com/knowledgebase-epicor-erp/adding-columns-to-existing-screens 8/18
5/16/24, 3:15 PM Epicor Kinetic Customization - Add Columns To Screens — GingerHelp
https://www.gingerhelp.com/knowledgebase-epicor-erp/adding-columns-to-existing-screens 9/18
5/16/24, 3:15 PM Epicor Kinetic Customization - Add Columns To Screens — GingerHelp
https://www.gingerhelp.com/knowledgebase-epicor-erp/adding-columns-to-existing-screens 10/18
5/16/24, 3:15 PM Epicor Kinetic Customization - Add Columns To Screens — GingerHelp
With the Panel Card Grid added, go to it’s properties and expand
out the ‘Data’ section and click on Grid Model:
https://www.gingerhelp.com/knowledgebase-epicor-erp/adding-columns-to-existing-screens 11/18
5/16/24, 3:15 PM Epicor Kinetic Customization - Add Columns To Screens — GingerHelp
Now we are ready to test this out. Hit the save button in the
upper corner to save our layer changes and then use the
preview button to test it out. Pick a part and see the results:
https://www.gingerhelp.com/knowledgebase-epicor-erp/adding-columns-to-existing-screens 12/18
5/16/24, 3:15 PM Epicor Kinetic Customization - Add Columns To Screens — GingerHelp
Once you get all of the columns you want added, return to
preview and we will now see a much nicer output:
https://www.gingerhelp.com/knowledgebase-epicor-erp/adding-columns-to-existing-screens 13/18
5/16/24, 3:15 PM Epicor Kinetic Customization - Add Columns To Screens — GingerHelp
The remaining cleanup from here was just to add the rest of the
columns I wanted, apply the appropriate ‘ERP Editor’ and ‘ERP
Editor Model’ properties to control how the columns are
displayed, and remove the standard Time Phase grid from the
screen.
AUTHOR: Adam
Ellis
Adam Ellis is the owner of
GingerHelp. Adam is a lifelong
entrepreneur and has extensive ERP
and mobile software knowledge
through his consulting and
management experience. He has a
passion for exploring innovative ideas
and how they can change the status
quo. Connect with Adam on LinkedIn
to learn more about his involvement
in the ERP space.
https://www.gingerhelp.com/knowledgebase-epicor-erp/adding-columns-to-existing-screens 14/18
5/16/24, 3:15 PM Epicor Kinetic Customization - Add Columns To Screens — GingerHelp
Great tutor!
However you don't really need to put an API key inside erp-function object when your
function is in the same environment.
Finally , I have made this working in Demo database. Use following reference in using
statement to pass error message - Erp.Tablesets;
Appreciated the detailed walkthrough for deep diving Kinetic. Hope to have some
more in near future. I am investigating better ways to display rest service, function or
baq response values on the kinetic control {not the gird} like text box, label.... Is there
a way to use formula / calculated values to be display on client side. How?
Thanks for a very good detailed article. This help us to better understand the
mechanics of kinetic customizations.
Easy to follow steps. However I am getting this error at saving BPM Functions. I have
already added Ref > Assemblies for SalesOrder and TimePhas.
https://www.gingerhelp.com/knowledgebase-epicor-erp/adding-columns-to-existing-screens 15/18
5/16/24, 3:15 PM Epicor Kinetic Customization - Add Columns To Screens — GingerHelp
assembly reference?)
getTimePhase.cs(28,15): error CS0246: The type or namespace name
'TimePhasTableset' could not be found (are you missing a using directive or an
assembly reference?)
getTimePhase.cs(49,36): error CS0246: The type or namespace name
'SalesOrderSvcContract' could not be found (are you missing a using directive or an
assembly reference?)
getTimePhase.cs(51,21): error CS0246: The type or namespace name
'OrderHedListTableset' could not be found (are you missing a using directive or an
assembly reference?)Appreciated your thoughts? Thanks.
NEXT
LET’S CHAT!
CONTACT US
https://www.gingerhelp.com/knowledgebase-epicor-erp/adding-columns-to-existing-screens 16/18
5/16/24, 3:15 PM Epicor Kinetic Customization - Add Columns To Screens — GingerHelp
GingerHelp is an
independent consulting
practice with no direct
© 2019 - 2023 GingerHelp,
affiliation with Epicor® or
LLC
Infor®.
https://www.gingerhelp.com/knowledgebase-epicor-erp/adding-columns-to-existing-screens 17/18
5/16/24, 3:15 PM Epicor Kinetic Customization - Add Columns To Screens — GingerHelp
https://www.gingerhelp.com/knowledgebase-epicor-erp/adding-columns-to-existing-screens 18/18