This Kinetic "Spell Book" contains syntax samples for various Epicor Kinetic customizations. Most Kinetic elements, events, tools, etc. will only work correctly if they are configured in exactly the right way, but there is no way for the average developer to tell what the "right way" is. So we are left to use trial and error to figure it out.
That's why I refer to this repository as my Kinetic "Spell Book" - without the proper ingredients and incantations, the Kinetic VooDoo simply won't work or will produce the wrong results. This "Spell Book" provides instructions on how to put the pieces together in just the right way to create a spell that gets the result you want every time.
- TextBoxWithSearch
Explains how to add a standard Epicor search panel to allow the user to search for and select a valid Part Number to populate a Kinetic form field. - Troubleshooting Transactions
Walks through common issues encountered when executing transactions in Epicor BPMs, Functions, or form customizations (Classic or Kinetic) - Transaction stuck in PartBinDeferred
When issuing material from an Epicor Function by callingIssueReturnSvc.PerformMaterialMovement, the material gets issued to the job, but a PartBin record is retained with an incorrect OnHandQty (and maybe AllocatedQty) value, and a row appears in PartBinDeferred that never gets processed. This guide walks through how to force Epicor to process the PartBinDeferred row to clean up the PartBin/PartAlloc/PartTran tables.
-
rest-kinetic
Walks through how to configure therest-kineticobject in an event workflow to correctly pass the values from a local DataSet to the correct parameters when invoking a Kinetic business object method using a REST call. -
grid-onclick
Out of the box, theGrid=>OnClicktrigger will never run. This page provides the secret recipe for getting the OnClick hook to work on your Panel Grid elements.
- Tips and Tricks
: Holding area for Kinetic examples that are not fully fleshed out or categorized
This section includes simple examples of the basic syntax used to interact with the system. These examples may contain C#, JavaScript, or any other languages, so their applications will vary based on what type of customization you are implementing.
To create an instance of any Business Object in C# in order to access that object's methods:
CallService<Ice.Contracts.UD12SvcContract>(UD12Svc => {
UD12Svc.GetByID(); // Add appropriate parameters
//some other code here
UD12Svc.GetList(); // Add appropriate parameters
//some other code here
UD12Svc.Update(); //Add appropriate parameters
});If you need to create an Erp context in C# (If Db is unavailable):
Erp.ErpContext DbErp = CallContext.Current.GetMainContext<Erp.ErpContext>();
if ((from Part_Row in DbErp.Part
where string.Compare(Part_Row.Company, ttUD10_xRow.Company, true) == 0
select Part_Row).Any())
{
// Custom code here
}Write a message to server log in C#:
Ice.Diagnostics.Log.WriteEntry("TEST1" + " " + "test2");Reading a UD field value in C# in a Method Directive:
var x = ds.ABCCode.UDField<System.String>("MyNewColumn _c");