Adding A BAQ Report to MES

I have a BAQ report I have created and was wondering if anyone knows of a way to add the report to MES.

Epicor 9.05 - VB .NET Example

The detailed information provided below is a template example. The idea is that this will be modified or changed by the customer to fit their business needs. The examples we provide have not been through a standard QA process. These modifications should be evaluated and tested thoroughly in a training account prior to implementation in a production environment. Code is not developed or implement directly in Support Services. Examples are provided where possible. Further assistance may be necessary to build from this example or implement it. If this goes beyond the scope of what the Customer is comfortable with and what is handled in Support, we will discuss bringing in our Custom Solutions Group to follow-up.

PROBLEM DESCRIPTION: I have set up MES to support customization, and I have noticed several Blank Buttons on the MES menu. Am I able to Program these buttons to use other programs?

PROBLEM RESOLUTION: You certainly can.

This topic gets involved, but by all means, if you have permissions to do customizations, you can assign other Epicor9 Application Programs (ones that are allowed, based on the MES license - see below for complete list) to the Blank MES Buttons.

  1. Launch MES in Customization Mode.

Create MES Developer Icon:

  • Make a copy of your MES icon and rename it to something like MES Developer.
  • Then right click on the MES Developer Icon and choose Properties.
  • In the Target field, locate where it shows -mes and change it to -mesc.
  • Select Apply, then OK.
  1. Log into MES Developer.

You will receive the Select Customization Screen.

The code example listed in this Answer Book Article is for Visual Basic, so make sure you select the Visual Basic Radio Button in the Default Customization Programming Language area, then Select Base Only and OK.

NOTE: If you receive another Select Customization screen for System Monitor, Select Base Only, then OK.

  1. Access the Customization Tools.

Move the mouse to the upper portion on the MES Screen and Right-Click. Select > Customization.

  1. Understanding the button and properties.

The customization window is in two columns: The list of entities (buttons and fields) on the left, and the corresponding properties on the right (You may wish to reposition the dialog box so that the desired button to customize can still be seen).

For this example, I will use the MES Blank Button that appears on the Production Tab (Bottom Right).

When the blank button is clicked on the MES Menu, the Button Name on the left (tree) is highlighted, and its corresponding traits appear on the right. In my example, Epicor9.05 considers this Blank Button as “button77” which is highlighted in the Tree. All properties of button77 appear on the right.

So what are the pertinent properties?

  • EpiBinding: Since the button is not use, the EpiBinding value will be MESControl.NotUsed. Clear this property field.

  • Text: The Label of the Button. This value is blank because the button is blank.

For this example, we will want to open Purchase Order Tracker when this Blank Button is selected, so Type “PO Tracker” for the Text value. When you tab out of the Text field, “PO Tracker” will display on the MES Button.

  1. Saving the Customization.

Select File - Save Customization As. Key in a Name and Select OK.

  1. Script work

So far, we have cosmetically applied the necessary trait to the Button - we have enabled it, given it a label, and made it exist in the MES customization framework. Now, we have to add the custom script, which serves to assign the Button with the desired program.

What is a EpiGuid?

An EpiGuid is a unique and long combination of letters and numbers for every visible entity in Epicor9. An EoiGuid has been assigned to the Button you chose (fe187107-b719-4a3d-96a8-5f8505ea65ae), and it cannot be changed. You will note that this property was grayed out for the Button. Record this EpiGuid value, as we will need it later.

What is the menu ID?

The menu ID is the unique ID assigned to a menu item, in the eyes of Epicor9. This can be determined in Menu Maintenance. From System Management - Utilities, select Menu Maintenance. Then, in the tree-view on the left, navigate to the desired program. Again, for this example, navigate to Material Management > Shipping / Receiving > General Operations > Purchase Order Tracker. Record the Menu ID, which is SRGO1003 on my E9 System, as you will need it later.

What does the script portion do?

The purpose of the script portion of the button programming is to assign the EpiGuid, and hence the Button, to the Menu ID, and hence the the desired Epicor9 program. We will assign the EpiGuid with Mend ID SRGO1003, aka Purchase Order Tracker.

Review the existing script.

In the Customization Tools Dialog box, Select the Script Editor tab. A script appears that controls the logic for the entire customization. It includes declarations, calls to different logic, etc.

Take note of the last line: End Class. This line must remain as the last line. Take note of the second to the last line: End Sub. That line must stay where it is, as well. In other words, End Sub and upward must stay together, and End Class must remain the very last line. So we are interested in the gap between the last End Sub line and the last End Class Line.

Adding to the script.

You will be entering two very long lines of text. The first assigns a procedure call to the EpiGuid. The second assigns the same procedure call to the Menu ID.

What does this script do?

The script enters a unique procedure, btnLaunchTracker, that ties together both the EpiGuid and the Menu ID. The EpiGUID comes from the properties of the button that you clicked; the Menu ID comes from the entry for the desired program in Menu Maintenance. Both will almost certainly have to be replaced by you. Take note that we also enabled this procedure - in effect, enabling the button.

Copy the following lines and paste them into the script editor.

Private WithEvents btnLaunchTracker As EpiButton

Private Sub MESMenu_Load(ByVal sender As object, ByVal args As EventArgs) Handles MESMenu.Load
'//
'// Add Event Handler Code
'//

btnLaunchTracker = CType(csm.GetNativeControlReference(“fe187107-b719-4a3d-96a8-5f8505ea65ae”), EpiButton)

btnLaunchTracker.ReadOnly= False
End Sub

Private Sub btnLaunchTracker_Click(ByVal Sender As Object, ByVal args As EventArgs ) Handles btnLaunchTracker.Click
ProcessCaller.LaunchForm(MESMenu, “SRGO1003”)
End Sub

  1. Save the Customization.

  2. Test the Custom Code (Select Tools > Test Cost). There should be no Compile errors.

  3. Save the Customization an exit the Customization Tools, then Exist MES.

When you open MES in Developer Mode, you should have yourself a new button that launches the desired program. Please note that the button may appear grayed out but will be functional.

What Epicor 9.05.700c programs can I launch from these MES buttons?

MES licenses are not full production license so you will not have free reign to add anything you want. You are limited to the following baseline UIs and Reports. In addition, any custom dashboard (Runtime or Assembly), crystal report, BAQ Report or UD table maybe launched from a button.

Epicor.Mfg.UIRpt.BAQReport
Epicor.Mfg.UI.AdjustMaterialEntry
Epicor.Mfg.UI.AdjustWIPEntry
Epicor.Mfg.UI.AlertLogEntry
Epicor.Mfg.UI.BOLEntry
Epicor.Mfg.UI.ConfigurationEntry
Epicor.Mfg.UI.ContainerReceipts
Epicor.Mfg.UI.CostAdjustmentEntry
Epicor.Mfg.UI.CountEntry
Epicor.Mfg.UI.CustomReport
Epicor.Mfg.UI.CustShipEntry
Epicor.Mfg.UI.CustShipTracker
Epicor.Mfg.UI.Dashboard
Epicor.Mfg.UI.DrawingsEntry
Epicor.Mfg.UI.EndActivityEntry
Epicor.Mfg.UI.EngWorkBenchEntry
Epicor.Mfg.UI.EquipTracker
Epicor.Mfg.UI.FirstArtEntry
Epicor.Mfg.UI.GetRequestEntry
Epicor.Mfg.UI.InfoPromptForm
Epicor.Mfg.UI.InspectionProcessingEntry
Epicor.Mfg.UI.InspResultsEntry
Epicor.Mfg.UI.InventoryQtyAdjEntry
Epicor.Mfg.UI.InventoryQtyAdjLicensePlateEntry
Epicor.Mfg.UI.InvTransferEntry
Epicor.Mfg.UI.IssueAssemblyEntry
Epicor.Mfg.UI.IssueMaterialEntry
Epicor.Mfg.UI.IssueMiscEntry
Epicor.Mfg.UI.JobAddlInfoView
Epicor.Mfg.UI.JobAdjustmentEntry
Epicor.Mfg.UI.JobClosingEntry
Epicor.Mfg.UI.JobManagerEntry
Epicor.Mfg.UI.JobStatusMaintenance
Epicor.Mfg.UI.JobTracker
Epicor.Mfg.UI.KanbanReceiptsEntry
Epicor.Mfg.UI.LaborEntry
Epicor.Mfg.UI.LegalNumberPromptEntry
Epicor.Mfg.UI.LotNumberEntry
Epicor.Mfg.UI.LotTracker
Epicor.Mfg.UI.MaintJobEntry
Epicor.Mfg.UI.MaintJobTracker
Epicor.Mfg.UI.MaintReqEntry
Epicor.Mfg.UI.MaintReqQueueEntry
Epicor.Mfg.UI.MeterReadEntry
Epicor.Mfg.UI.MassIssuetoMfgEntry
Epicor.Mfg.UI.MasterpackEntry
Epicor.Mfg.UI.MaterialQueueEntry
Epicor.Mfg.UI.MaterialQueueMgrEntry
Epicor.Mfg.UI.MaterialRequirementsEntry
Epicor.Mfg.UI.MemoEntry
Epicor.Mfg.UI.MiscShipEntry
Epicor.Mfg.UI.MoveInvRequestEntry
Epicor.Mfg.UI.MoveMaterialEntry
Epicor.Mfg.UI.MoveMtlRequestEntry
Epicor.Mfg.UI.MoveOrdersToTruckEntry
Epicor.Mfg.UI.MoveWIPEntry
Epicor.Mfg.UI.MoveWIPRequestEntry
Epicor.Mfg.UI.NamedSearchEntry
Epicor.Mfg.UI.NonConfEntry
Epicor.Mfg.UI.OverridesEntry
Epicor.Mfg.UI.PartDescription
Epicor.Mfg.UI.PartTracker
Epicor.Mfg.UI.PartTranHistTracker
Epicor.Mfg.UI.PartWhseEntry
Epicor.Mfg.UI.PartXRefSelectEntry
Epicor.Mfg.UI.PlanningWBEntry
Epicor.Mfg.UI.POEntry
Epicor.Mfg.UI.POTracker
Epicor.Mfg.UI.ProjAnalysisEntry
Epicor.Mfg.UI.ProjectEntry
Epicor.Mfg.UI.ProjectTracker
Epicor.Mfg.UI.PurchaseAdvisorEntry
Epicor.Mfg.UI.QuickJobEntry
Epicor.Mfg.UI.RcptToInvEntry
Epicor.Mfg.UI.RcptToInvLicensePlateEntry
Epicor.Mfg.UI.RcptToJobEntry
Epicor.Mfg.UI.RcptToSalEntry
Epicor.Mfg.UI.RcptToSalLicensePlateEntry
Epicor.Mfg.UI.ReceiptEntry
Epicor.Mfg.UI.ReportQtyEntry
Epicor.Mfg.UI.ReturnAssemblyEntry
Epicor.Mfg.UI.ReturnAssyMtlRequestEntry
Epicor.Mfg.UI.ReturnMaterialEntry
Epicor.Mfg.UI.ReturnMiscEntry
Epicor.Mfg.UI.ReturnMiscRequestEntry
Epicor.Mfg.UI.ReturnSalvageRequestEntry
Epicor.Mfg.UI.RevisionCompareEntry
Epicor.Mfg.UI.RMADispEntry
Epicor.Mfg.UI.RMAProcEntry
Epicor.Mfg.UI.SalesOrderEntry
Epicor.Mfg.UI.SalesOrderTracker
Epicor.Mfg.UI.SelectSerialNumbersEntry
Epicor.Mfg.UI.SerialNumberAssignmentEntry
Epicor.Mfg.UI.SerialMatchingEntry
Epicor.Mfg.UI.SerialNumberMaint
Epicor.Mfg.UI.SerialNumberTracker
Epicor.Mfg.UI.ShipmentPlanningWBEntry
Epicor.Mfg.UI.ShopTracker
Epicor.Mfg.UI.SplitMergeUOMEntry
Epicor.Mfg.UI.StartIndirectActivityEntry
Epicor.Mfg.UI.StartProductionActivityEntry
Epicor.Mfg.UI.StartReworkActivityEntry
Epicor.Mfg.UI.StartSetupActivityEntry
Epicor.Mfg.UI.SubConShipEntry
Epicor.Mfg.UI.SysMonitorEntry
Epicor.Mfg.UI.TagCountEntry
Epicor.Mfg.UI.TimeAndExpenseEntry
Epicor.Mfg.UI.TimePhasEntry
Epicor.Mfg.UI.TransactionLogEntry
Epicor.Mfg.UI.TransOrderReceipt
Epicor.Mfg.UI.TransOrderShipEntry
Epicor.Mfg.UI.TrucksEntry
Epicor.Mfg.UI.UnpickSalesOrder
Epicor.Mfg.UI.UnpickTransOrder
Epicor.Mfg.UI.WareHseEntry
Epicor.Mfg.UI.WorkQueueEntry
Epicor.Mfg.UIRpt.CutLists
Epicor.Mfg.UIRpt.EmpEfficiency
Epicor.Mfg.UIRpt.InventoryUsage
Epicor.Mfg.UIRpt.JobPickListReport
Epicor.Mfg.UIRpt.JobProdDtl
Epicor.Mfg.UIRpt.JobStatusReport
Epicor.Mfg.UIRpt.JobTrav
Epicor.Mfg.UIRpt.LaborEdit
Epicor.Mfg.UIRpt.MaterialTranDetail
Epicor.Mfg.UIRpt.PartLotWhereUsedReport
Epicor.Mfg.UIRpt.PriorityDispatch
Epicor.Mfg.UIRpt.SchedShipments
Epicor.Mfg.UIRpt.ScheduleImpact
Epicor.Mfg.UIRpt.ShopLoadReport
Epicor.Mfg.UIRpt.SOPickListReport
Epicor.Mfg.UIRpt.StockStatusReport
Epicor.Mfg.UIRpt.SubcontractStatReport
Epicor.Mfg.UIRpt.TimePhaseMatReqmt
Epicor.Mfg.UIRpt.WIP
Epicor.Mfg.UIRpt.WrkCntrEff

SCR 97241 is an Enhancement Request, asking that Serial Number Matching be added to the MES License. This SCR has a Target SP Fix of 9.05.702.

How do you Deploy the MES Main Menu Customization?

In Epicor 9.05 you can also modify the MES menu. Deployment consists of creating a subprocess menu Id, a Process Calling record, and modifying the default mfg.sys file. Here are the steps:

  1. Go to System Maintenance --> Utilities --> Menu Maintenance
  2. In the Tree View highlight PROCESSES .
  3. Select File --> New --> New Menu
  • Menu ID must be unique and start with “UD”
  • Enter a Description. This will be seen by the user from the Menu
  • Select a security group that fits the people that will be using MES.
  • Provide an order sequence number which positions MES in the menu.
  • Now select “Non Menu Item” from the Program Type dropdown.
  • Select "Epicor.Mfg.Menu.Mes.DLL from the Program Search.
  1. Select your customization from the Customization dropdown.
  2. Save the new Sub Process Menu.
  3. Go to System Maintenance --> Utilities --> Process Calling Maintenance
  4. Select File --> New
  • Called Process Reference is “Epicor.Mfg.Menu.Mes”.

  • Leave Call From blank.

  • Menu Id is the unique Id that you gave to menu in step 2.

  1. Save the new Process Calling record.

  2. Logout of Epicor 9.

  3. Run ConfigEditor.exe which is in your Epicor client folder.

  • Select the configuration file that is used by MES.

  • On the Application sheet scroll down until you find MESCustomMenuID.

  • Enter the unique ID that you gave to the Menu in step2.

  • Click Save and then close the application.

HINT: Step 10 must be repeated for each client that runs MES and for the server client.