EmployeeID issue

No because we built a custom angular app to accept the scans, but it would be a pretty simple BPM on the employee look up. Probably pre-process to replace scanned ID number (not employee ID) with a matching employee ID. If not found in UD let it continue like normal. Then you can use either the scan ID or the regular employee ID best of both.

1 Like

@aarong
You need to observe the whereclause going in and then flip it going out.

Here is sample code which is simplistic, but imagine that you just write to event viewer the where clause and then figure out how to change what went in to what you need coming back out.

/* Change WhereClause */
string wctemp = string.Empty;
string wctemp1 = string.Empty;
int start_pos = 0;
int end_pos = 0;
Ice.Diagnostics.Log.WriteEntry("empbasic whereclause before " + whereClauseLaborHed );
start_pos = (whereClauseLaborHed.IndexOf("'9"));
Ice.Diagnostics.Log.WriteEntry("start " + start_pos);
Ice.Diagnostics.Log.WriteEntry("second half>" + whereClauseLaborHed.SubString(start_pos + 1, whereClauseLaborHed.Length)+"<");
end_pos = (whereClauseLaborHed.SubString(start_pos + 1, whereClauseLaborHed.Length  ).IndexOf("'"));
Ice.Diagnostics.Log.WriteEntry("end " + end_pos);
if (end_pos > 6)
{
    wctemp = whereClauseLaborHed.SubString(0, start_pos + 7);
    wctemp1 = whereClauseLaborHed.Substring(start_pos + end_pos + 1);
    whereClauseLaborHed = wctemp + wctemp1;
}

Ice.Diagnostics.Log.WriteEntry("temp " + wctemp );
Ice.Diagnostics.Log.WriteEntry("temp1 " + wctemp1 );

Ice.Diagnostics.Log.WriteEntry("empbasic whereclause after " + whereClauseLaborHed );

We aren’t attached the EmpIDs but they’re used elsewhere in other database tools else I would just export and DMT new EmployeeIDS

I have set CnvEmpID with the E097647 data but no avail when logging into MES (EmpID not found) and same goes for the “Cross Reference” section of Employee UI

Any ideas on how to cross reference the two? I looked into the WhereClause following is this done with a BPM on GetRows or actual customisation of the MES screen?

Thank you for the code did you do this with a BPM or screen customisation?

@aarong I found the code for the whereclause in a bpm, but apparently in E10 that bpm was too late to change the data. The CnvEmpID field is readonly until an employee id is entered. I added an unbound text field and an on leave event from that field that does a lookup. It is beyond my skills to get it further than that. I tried a lot of ways to notify the UI that the field had been updated, but it was beyond me, but if you click the employee number read it does do the clock in.

image

reference the employee id to its guid

Script.txtBadge.Leave += new System.EventHandler(Script.txtBadge_Leave);
		// End Wizard Added Custom Method Calls
		empTxt = (EpiTextBox)csm.GetNativeControlReference("fca2b60c-95cf-40b4-adc0-c168fc3a43fc");

private static void txtBadge_Leave(object sender, System.EventArgs args)
	{
		// ** Place Event Handling Code Here **

		MessageBox.Show(txtBadge.Text);
		if(!string.IsNullOrEmpty(txtBadge.Text))
		{
		try
		{
			bool recSelected = false;
				DataSet eds = new DataSet();
				eds = SearchFunctions.listLookup(oTrans, "EmpBasicAdapter", out recSelected, false, "CnvEmpID = '" + txtBadge.Text.Trim() + "'" );
				try
				{
					if(recSelected)
					{
						empTxt.Text = eds.Tables[0].Rows[0]["EmpID"].ToString();
					}
					else
					{
						empTxt.Text = "";
					}
				}
				catch{}
		}
		catch{};
		}
	}


I have some experience with pulling Epicor data into an external payroll system and I will share my setup in the event there’s something helpful for you in it.

My agency lives in a world where we have two pay groups paid out of one HRIS system (Ceridian Dayforce). Our manufacturing pay group does not use the HRIS timeclocks and only uses the MES stations in Epicor for all of their time punches. We are are a unique agency under a lot of special regulation, so what I had to do to make that work is this:

  • Create UD fields on the Employee screen for their HRIS employee number and some other fields that have to flow into the HRIS system (like job title, cost center and a few other things)

  • Create one BAQ/Dashboard with 3 subqueries to take the four types of punches (in, lunch out, lunch in and out) and convert them to the time format the HRIS system wants.

  • Create a second BAQ with all of the proper costing data (like what part they worked on, what division of the factory, etc).

  • Both of those are then loaded into the HRIS system and the HRIS system computes all of the actual pay rules on top of Epicor’s raw data (such as overtime, etc.)

We’ve been doing this for just over two years now and it works pretty well.