What useful customizations have you done with MES?

Happy Friday All,

I am interested to hear what you have all done with MES via customization. What has worked well with the shop floor teams, what types of things do your teams wish it did better.

Thanks in advance.

1 Like

I have stripped down the MES form so that it can be used as a screen for people clock in and out of the organisation.

The screen is installed on a small windows device by the entrances that users can scan in with using a bar code of the employee id.

The screen also displays users logged into

The data is used to produce a weekly timesheet for payroll and also a roll call report to be used in the event of a fire.

Not a particular complicated customization, but resolved a gap in the implementation.

Cheers,

Andrew.

3 Likes

Each PC runs a customised screen so that it is possible to detect which user is logged in and use this information to print a label via a BPM to the nearest networked printer to them.

1 Like

Thanks Andrew - I have seen others do this a simple time clock in terminal makes sense.

1 Like

Hi Mark - Do you need it customized so you can capture the context of the user to find the closest printer? If the session had the employeeID and or workstation was simple to set / default would that make things easier?

1 Like

I did try other ways, the print is triggered via a Data Directive on LaborDtl and found this method to be the most reliable.

2 Likes

I’m not Mark, but it would be very helpful to have a clear way to set the workstation via MES and have that value set in the callContext to help with label printing on our Shop Floor.

3 Likes

We pushed a lot of Customized dashboards out to simplify what the work queue did. While the work queue can do everything, there are so many options that it becomes confusing for the end user. Since the business usually ends up using the same things over and over, a lot of it can be pre-selected/hardcoded and it makes it easier for the end user. Also in a customized dashboard, runs way faster than the work queue since the work queue is gathering information that isn’t going to be used.

2 Likes

MES for us has gotten really very little action. But here are a few notables that I thought helped:

  1. Material Queue color coding rows if the Requested Time is past due and yellow if its approaching. Also when Material is Requested by Operator and Processed by Mtl Handlers, we logged the timestamps so efficiency can be calculated “how often are they late, how often are they early, ontime”.
  2. Someone made a tab on the main grid on MES showing an Employee his Hours (here are your punches for the week so far)
4 Likes

Yes we agree it should be really easy to tweak the work queue if it got its data from a BAQ you could refine. That is the direction we are taking it also makes it very fast.

3 Likes

I like that helps ensure consistency of data.

1 Like

Why no traction?

1 Like

I meant from Customization stand point. It kind of works well for us out of the box.

2 Likes

Being in med device, data that is considered ALCOA (Attributable, legible, Contemporaneous, Original, Accurate) is of the highest importance. That being said we have to ensure we can trace that to specific individuals performing work in order to support the device history records (DHR’s).

We instituted a two form factor authentication (something you have, something you know) by integrating MES to an HID smart card reader (Omnikey 5427) using Prox Type II cards. They use these cards for both physical and logical access so it’s pretty handy. We require the card to be in constant contact with the reader to perform any functionality through MES to ensure they cannot move to another location to perform work in an unauthorized fashion. It will automatically clock them in/out without prompts (other than their PIN number) that we maintain from employee maintenance. Card serial numbers are automatically registered to the employee in the maintenance screen through another customization on Employee Maintenance using a similar integration.

4 Likes

Similar to others we made a single pane for most operations. Each machine has a dedicated filtered UBAQ.

The BAQ auto loads and refreshes it knows what resource ID to filter on based on PC name. Computer name is something like (MES406)
image

You can manage job in and out data collection all from the main tab

They can issue material (only from the resource bin locations AMM) or request material delievery on the queue

Return material to their resource bin and stk-stk requests to get mtl back to the warehouse are handled from another tab

We allow them to view what the system thinks is at their machine not on the job and if need be select a material and request that the whse pick it up

Finally MATTEC style information from PLC data and Epicor Equip records

5 Likes

Posted this on the EUG post, but thought it was worth posting here as well.

We’ve done a handful of customization to MES over the years. Here are a few:

My Hours Tab - a tab displaying the current employee’s last 14 days of clock-ins and outs.

Display Previous Quantity Completed and Total Run Qty on Start Production and End Activity.
image

Stop Operations being marked as complete if related materials have not been issued.

We require the employee using parts to pull them and issue them in Epicor. One way to enforce this was to create a warning window; listing the outstanding mtl when an employee attempts to complete a qty on an operation.

If they get this message, they have a few choices:

  • Launch Mass Issue with job number prepopulated to resolve the outstanding mtl issues.
  • Launch Issue Material with job number prepopulated to resolve the outstanding mtl issues.
  • Re-submit End Activity to see if the mtl issues have been addressed.
  • Cancel which cancels the transaction and leaves them in the job.
  • Proceed this allows them to end the activity without completing a qty. If also emails the supervisors to let them know there was an issue.
  • Override prompts for a supervisor password to override the material issues and complete the qty.

Hope this was useful,

– Norman Hutchins

6 Likes

We’ve done a few projects that revolve around creating box and pallet records as well automating the printing of labels for each. The box and pallet quantities come from UDFs on Part and/or Job, these values are visible in Report qty and, in one case, a lot of the UI interaction is automated for high speed production.

In one case, we added functionality to add more than one employee to a production activity. When quantity is reported, it is split among all ‘active’ on the activity.

We added a productivity dashboard that displays a productivity metric for the given machine, by the hour.

In one case, the requirments included making the Report Quantity screen more functionally similar to the End Activity screen than the stock Report Qty screen, we customized the End Act screen to look like Report Qty to leverage the existing adapters.

2 Likes

Achieved a similar thing using and XML file stored on each machine, called ‘Localconfig.xml’.

I then use the system.xml c# library to retrieve the printer name

XmlDocument xmlDoc = new XmlDocument();
	        xmlDoc.Load(@"C:\Epicor\LocalConfig\LocalConfig.xml");

	        foreach (XmlNode node in xmlDoc.GetElementsByTagName("LocalConfig"))
	        {
	             if (node.Attributes != null)
	             {
					   printer  = node["DefaultLabelPrinter"].InnerText;
	             }                                        	                
	        }

It means then only having to maintain a single customisation.

Cheers,

Andrew.

Ours is out of box 10.2.1 MES and it annoys me how difficult it is to customize if you have no C# experience.
We only track clock in/clock out and hours on job/operation, so interaction with the MES is minimal. We should have a simpler screen.

1 Like

You can simplify the MES interface without using any C# at all. In Customization mode, select a button you don’t need, then in the Properties window, set one of the size dimensions to 0. (Epicor won’t let you delete the standard UI elements, but you can make them functionally invisible.)

Here’s our simplified interface (still a work in progress):

No C# was needed to “remove”/resize/rearrange the buttons. And only a single line of C# code was used in the Event Wizard on a button click event to open other applications based on their Menu ID:
ProcessCaller.LaunchForm(oTrans,"MENUID");

3 Likes