How To: Making Your Own Reusable Combo

In my quest to convert a screen from classic to Kinetic, I ran into an issue: UD tables don’t show up in the reusable combo drop down type.
I was able to stub in data to make it work (Shown below), but that sounds like a pain to do every time I want to use this data. How did Epicor do it? I found out and replicated theirs and you can too!

Here’s some screenshots of how to stub in the data:

That’s a lot to type in every time and a lot to remember. Let’s only do it once from now on!
Here is where the combo JSONC files live: \\wwwroot\SANDBOX11\Server\Apps\MetaUI\Shared\combo

  1. Create a new folder in that directory; I named mine “UD03.UD03Combo” to stick with the format that Epicor used.
  2. Within that folder, create a subfolder–I named mine “default”, but there’s nothing stopping you from creating multiple configurations for different needs!
  3. Within the default folder, create file called “combo.jsonc”.
  4. Open combo.jsonc and fill in the data below:
  "$schema": "",
  "contentVersion": "1.0",
  "imports": [],
  "combo": {
    "comboId": "UD03.UD03Combo",
    "svc": "Ice.BO.UD03svc",
    "svcPath": "",
    "textField": "Character01",
    "valueField": "Key1",
    "sort": "Character01",
    "retrieveColumns": [
    "tableName": "UD03List",
    "filters": [],
    "required": false,
    "isEpiReadOnly": false,
    "appendList": false,
    "isDelimited": true,
    "parameterName": "UD03List"
  "patch": []

Everything within the “combo” element is fair game!

Once done, close Epicor and go back in. Your new combo should be ready to use!



If your combo does not show up, you may need to run conversion 191 from the Conversion Workbench.

Additional Combo Related Info:

Adding multiple filters on a single combo:

These can be added to resuables as well via the filtersAppend:

"filtersAppend": [
                    "RoleCode = 'PM'",



I like it! Nice work!

1 Like

Patches can potentially clear out these custom combo files. Back up accordingly!

@Ishkaran do you know if there’s a way to maintain these through patches or do I have to back them up and paste them back in every time?

Not a huge deal in production because the update frequency is low, but kind of a pain in our sandbox where I’m updating it every time a patch comes out.

@willetth Sounds to be a bug to me… Those entries should be retained on upgrade.

How do you back them up prior to upgrade?

Can you please run this SELECT query on the ERP and let me know what do the results look…
select Key1, SysCharacter01 from ICE.SysConfig where Key1 = ‘KineticUseFileSystemNotDB’

Well, we have not backed them up prior to this patch, but going forward, we’ll copy the combo folders we created to a local drive outside of the Epicor folder so we can paste them back in post-upgrade.

Here is the result from the query:

Key1 SysCharacter01
KineticUseFileSystemNotDB false

@willetth Can you please record a bug with support for this? It seems that the Reusable Components are getting saved to the MetaUI File System instead of DB (and so are the Kinetic Converted Dashboards & Reports).

When KineticUseFileSystemNotDB is set as false, it is expected that these entities are saved (aka created) in the DB (ICE.XXXDef table) and get retained post-upgrade.

Sure, but before I do, my question would be am I creating that reusable component in the way that Epicor would expect?
Is there a way to do it within Epicor that would save it to the DB vs me manually creating the folder within the MetaUI directory?

There is just one way to create it - the framework decides the storage medium on its own.

So, by me creating a custom folder in the MetaUI directory, the framework should be smart enough to know to add that to the XXXDef table?

Just a FYI: The default to set this to “True” was only in one of the more recent patches. When I updated to from build it was set to “True” but previously it was set to “False” by default for all my installs.

There is a Conversion Workbench step that does this if it doesn’t automatically do it. Just, of course, be careful to backup all the server application folders and the database before running such processes (unsupported AFAIK).

1 Like

@Ishkaran do you know if this been disabled in the last patch? We’re on and I created a custom reusable per the instructions and it’s not showing up. Even bounced the App Server just in case that was needed.


Indeed, this is why we can’t have nice things. :wink: At least the manual way works just remember to set a EpiBinding. Forgot that one myself at first.


@Randy @willetth Gentlemen - That is a bug :frowning:

Known workaround (for users who have access to Conversion Workbench): Run conversion workbench sequence # 191 after you create the reusable components.


And just like that, they’re back! Thanks!


Sorry to necro this but I was wondering what the purpose of setting the ‘Parameter Name’ to UD03List is? It seems to work without it??

Just replicating what Epicor did with theirs. If it works without it, then by all means leave it out.
Likely, it’s because that’s the table that’s returned in the JSON packet when the REST call is made and Kinetic is using that to do something or another.