We are looking at our options for development of customizations outside of Epicor Kinetic. Does anybody have information on opening an epicor session and menus (ie Part Entry) externally, specifically from a .NET C# program utilizing DLL references from local Epicor files? Our intended use is to navigate to related menus on a right click within C# app, similar to Kinetic functionality of right clicking on a field and seeing menu navigation options. We have been able to find some examples of referencing DLLs externally, but most seem to be using deprecated code.
Curious if this is possible and if anybody has done something similar. We are on the latest version of Epicor Kinetic Cloud.
In my experience it is very difficult to do this with the āsmart clientā. I never found a way to do it without it starting a new instance of the client each time.
If you use the Kinetic Browser interface, you could generate a Kinetic URL and run it from your external application. It would open your default web browser and open the appropriate page.
You want to just open an existing Epicor part? This can be done via file
In part entry you can send a record to file you can register that file extension to launch Epicor and using the broadcast tower it will intercept the file launch and open the record in your existing session
Iāll put together a demo if someone can remind me on monday
So in Epicor you can send a record to a file by going File ā Send Record to File, this generates a file like the one shown below. Which includes a section called āShortcutā which contains a reference to the record youād like to launch in the system.
If you pass this file as an argument to Epicor.exe it will use the Session Manager to launch the respective Screen and Record without opening a new Epicor As seen below. So one could write a C# program that can have a template of a record and just dynamically create a sysconfig with the record info and then llaunch the screen.
Record File:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!-- Entries in the appSettings and userSettings nodes must be in this format:
<name value="" />
otherwise they will not be parsed correctly by the AppSettingsHandler class.
Node names must be unique as well. For example, having two nodes named 'AppServerURL'
would cause problems.
Boolean settings must have the additional attribute bool="".
Enumeration-type settings must have their possible values in an "options" attribute,
for example options="Last|List|Windows|None".
-->
<appSettings>
<!-- Enter the URL of your appserver. Format is "https://serverName/SiteName/ -->
<AppServerURL value="https://Url Here/EpicorLive10" />
<!-- Can set default language code for startup -->
<CultureCode value="enu" />
<!-- Can set default culture for logon window before session is opened -->
<LogonCultureName value="en-US" />
<ResourceFile value=".\res\MfgBaseImages.resources" />
<CustomResourceFile value="" />
<ToolbarSettings value=".\res\ToolbarSettings.xml" />
<ProductID value="Epicor" />
<Version value="11.1.200.0" />
<snip...>
<Shortcut>
<Company>C001</Company>
<Plant>047</Plant>
<AppServerURL>https://UrlHere</AppServerURL>
<DateTime>6/9/2023 7:55:58 PM</DateTime>
<Originator>Jose C. Gomez</Originator>
<Process>
<ProcessID>MRMT1010</ProcessID>
<Description>Part Maintenance (V1.2)</Description>
</Process>
<RecordIDS KeyFields="PartNum" KeyFieldsType="System.String" TableName="PartList" DataSourceType="PartListDataSet">
<RecordID>10004</RecordID>
</RecordIDS>
<Search>
<NamedSearch>Search Name</NamedSearch>
<SearchCriteria>Search Criteria</SearchCriteria>
</Search>
</Shortcut>
</configuration>