MachineMetrics provides a seamless integration with Epicor 10; making part counts accurate while automatically keeping jobs up to date for reporting within MachineMetrics.
When operators start production or setup activities within the Epicor MES system, job information is sent to MachineMetrics where it is displayed within the MachineMetrics tablet interface and on dashboards. When the operator ends the activity in the MES, MachineMetrics automatically fills in the parts produced as well as counts for any scrap or non-conforming pieces. With the MachineMetrics Epicor integration, you get more accurate data with less work.
How it works
The Epicor integration consists of a set of BPM functions. Each BPM function is triggered by an action or event in Epicor, which then causes a state update in MachineMetrics. The Epicor integration is driven entirely from the Epicor side.
To install the BPM package, open the main Epicor application (EMA; Epicor Mobile Access). Within your organization, navigate to System Management → Business Process Management.
Open Directive Import
Browse for the machinemetrics.bpm file. Leave Destination Group undefined and press Import. You should see some messages pertaining to the installed functions.
MachineMetrics attaches the following BPM directives:
- A post-processing directive on the Update method of the Labor business object.
- A pre-processing directive on the EndActivity method of the Labor business object.
To check the installed BPM directives, go back to Business Process Management, and open Method Directives Maintenance. Click Method Code.
Select Labor from the Business Object drop-down. You can limit your search results by typing either
end into the method name starts at box.
Select the Pre-Processing tab (for the EndActivity directive) or Post-Processing tab (for the Update directive). Each directive should be part of the MachineMetrics group, have the Enabled box checked, and have a company-independent scope selected.
After an Epicor system update, it's possible your BPM directives will be disabled. They can be re-enabled by following the Checking Installation steps above, but they can also be updated in bulk by opening Directive Update in the Business Process Management section.
In Directive Update, make sure the Group is set to MachineMetrics, and the Enabled Box is checked. Click Start Update.
This will re-compile and enable the directives in your updated Epicor environment. You will be presented with a summary when it finishes.
Updating the MachineMetrics BPM Package
To install an updated version of the MachineMetrics directives, you will need to import them as you did during installation, but with a couple of changes in the import form.
Make sure the Destination Group is set to MachineMetrics, and the Replace Existing Group is checked. If this step is not followed, you can end up with multiple copies of each MachineMetrics directive in your system.
With ERP enabled in MachineMetrics, a new field is made available on the machine configuration form called
ERP Machine ID. It is often the case that the name of the machine in MachineMetrics is different than the Resource ID of the machine in Epicor. To allow MachineMetrics to find a machine that a job is being started on in the MES, enter the Resource ID of the machine into the
ERP Machine ID field on the machine form in MachineMetrics.
Additionally, a new option is made available in the
Automatic Start dropdown menu called
Start job based on MES. This option must be selected on any machines that you want the Epicor integration to start/stop jobs in MachineMetrics when those jobs are started/stopped in the MES.
How it works
All communication between the Epicor environment and MachineMetrics is out-bound. MachineMetrics does not communicate directly with the Epicor server. A BPM file is installed so that the Epicor server can send messages to the MachineMetrics Cloud, indicating that some action was taken. The MachineMetrics Epicor integration is driven by 3 primary actions: Start Job, Job is Stopping, Stop Job.
It is best practice for the Epicor server to not have direct access to the internet. Because of this, MachineMetrics has developed a service which runs on our Edge hardware allowing communication to pass through it to very specific endpoints relating to ERP integration. When the BPM file is provided, it is configured with the static IP address of the MachineMetrics Edge device that resides between the network where the Epicor server resides and a network that has access to the internet. The BPM file is also configured with an API Key which allows the BPM file to make authenticated requests with MachineMetrics to perform ERP-related actions.
When a labor activity is started via the Epicor MES, the installed BPM component will send a message through the on-site edge device to the MachineMetrics Cloud. Information that is passed along relates to the name of the job or work order, name of the part, the name of the operation, the expected setup duration, the production standards (cycle time), the type of labor activity (production or setup), and a labor activity identifier which is used in later steps. Additionally, the Resource ID of the machine that the job is being started on is also passed along.
When MachineMetrics receives this message, it looks up any existing jobs based on the name/part/operation provided, updates any information that may have changed, creates a new job if none exist, and starts the job (creates a job run) for that job on the target machine.
Job is stopping
When a labor activity is stopped via the Epicor MES, a message is sent to MachineMetrics before the Stop Labor Activity screen is presented to the user. This message includes the labor activity identifier which was sent when the job was first started. When received, MachineMetrics looks up the information for the run associated with that labor activity identifier, determines the number of parts produced and the number of parts rejected and sends them back to the BPM. The operator is then presented with the Stop Labor Activity screen having the parts completed/rejected fields filled in. The operator can adjust these numbers prior to stopping the labor activity in the MES.
At this point, no changes are made in MachineMetrics about the job. This action is only designed for Epicor to get the total number of parts produced and rejected in the job run.
After the operator has verified the completed and rejected parts fields and marked the labor activity as stopped, the BPM sends a third and final event to the MachineMetrics Cloud indicating that the job is stopped.
When MachineMetrics receives this message, it looks up the job run based on the provided labor activity identifier and sets the end date based on the information provided by the BPM.
When a machine is configured for Automatic Start in MachineMetrics, jobs cannot also be started using the tablet interface. Since all communication between Epicor and MachineMetrics is driven by the MES, MachineMetrics cannot tell Epicor that a job was started in MachineMetrics. To avoid issues with data synchronization, starting and stopping jobs is limited to just being available through the MES interface when Automatic Start is set to
Start job based on MES on a given machine.
There are cases where some machines in your facility cannot be started or stopped via the MES. Some examples of these machines would be those that run multiple parts simultaneously. MachineMetrics is limited to running just one job at a time on a piece of equipment. Because of this, you should leave the
Automatic Start set to '
Disabled' for these machines so operators can start and stop jobs via the tablet interface and the Epicor integration is not used. For these types of machines, you should contact your Customer Success Manager about using Automatic Job Dispatch based on program name information that is retrieved from your machine.
For a deeper dive into our Epicor functionality, check out our publicly documented API which is used by the Epicor integration. There are three functions that align with the actions described above:
- /erp/jobdispatch/start - https://developers.machinemetrics.com/#operation/erpStartJobRun
- /erp/jobdispatch/:id - https://developers.machinemetrics.com/#operation/erpGetJobRun
- /erp/jobdispatch/stop - https://developers.machinemetrics.com/#operation/erpStopJobRun