@mandersen :
I am still working at ironing out the data-driven behavior that occurs when “clocking in” and “clocking out” of operations on a particular job.
It seems that I didn’t do a terrific job of explaining (in this thread) my intentions. I started from a position of confusion concerning how Epicor records total labor hours on a specific job. More precisely, I have several internal departments who are interested in knowing how much time our production personnel are spending:
- Per labor sequence recorded on an operation
- Per operation
- Per assembly
- Per job
Why? Because we are interested in performing down-to-the-minute time studies so that we can adjust our MoM expectations and make proper production determinations on resources and scheduling. For this to happen - we need accurate data entry at the labor sequence level (start/stop activity).
There are two immediate problems with this:
-
Employees never “end activity” after starting it in MES
-
I have a very intimate issue with the manner in which Epicor interchanges the idea/concept of “clocking in/out”, versus “starting/stopping” a labor sequence activity.
I’ve only been developing solutions in Epicor ERP for (coming up on) 5 years. Throughout this time, I’ve consistently heard the phrase “clocking in” to a job… or “clocking out” of a job. From all of my work in this specific arena of Epicor thus far, I will say that that phrase is felonious in nature (my opinion only).
Why would I say this? ----> The only two MES buttons that have anything to do with logging actual work time against an operation (not a job, but an operation) are “Start Production Activity” and “End Activity”, highlighted in yellow below…
My understanding is, any data entry having to do with a “clock” is strictly for those Epicor environments that are also using the payroll module — because you “clock in” to your shift to work and then “clock out” of your shift for breaks, or for leaving work at the end of the day. So, again, “clock in/out” has to do with payroll… not for recording time spent performing work on an operation (my personal understanding at this time).
Notice above that I’ve technically “started activity” on operation #30 for Job #150620 on Monday, May 17th… and like a disciplined employee, I forgot to “End Activity” on this operation two days later (today). This aspect of “starting/stopping” a labor activity is ongoing regardless of whether, or not I’m technically “on the clock” and getting paid.
For those Epicor environments who do not use the payroll module (like mine), the button highlighted above in red is ignored, because it is irrelevant to starting and stopping work on an operation. As a matter of fact, I looked through the Epicor Help collection under “MES” and that button isn’t even addressed. It’s possible that I overlooked some information about it somewhere, but I saw nothing mentioned about the “Clock Out” button. Epicor Help does, however, explain the “Log Out” button:
To end your MES session, click the Log Out button on the MES menu.
Now, let’s assume that the “Clock Out” button on the MES screen is strictly for clocking out of my shift (I have to do some extra reading on this, of course, because I’ve found no information concerning what this button actually does)… then, where’s the “Clock In” button? Why is it that I can clock out for breaks and for ending my shift (again – payroll related), but I cannot clock IN to my shift?
Now, let’s add to this, the phrase, “clock out of a job”. If I’m a production worker and I have this phrase ingrained through repetition, then instead of selecting “End Activity” to complete my labor sequence, I might choose “Clock Out” instead. Personally, I have no idea what this does to the data and the overall accuracy of recording time against an operation/assembly/job. All I know is, this seems unnecessarily confusing.
To me, this is akin to a chess match, where two players sit down before a chess board. Well - they’ve just “clocked in” to the match to begin play. Each player will then log their play time during the match by slapping a time-keeper, back and forth, between turns:
I’m no expert on chess, but I believe slapping the time-keeper device will stop logging time for a player and automatically start recording play time for that player’s opponent. This is how I interpret that nature of “starting/stoppiing” activity for an operation, with each slap of the time-keeper recording an individual labor sequence against that operation.
But let’s get to the data…
Right now, the labor activity that was started on operation #30 (shown above) looks like this in the database:
It shows the correct “ClockInDate” (even though this is not a “clock in”, it’s a “start activity” [meaning: the beginning of a new labor sequence]) and it shows the correct “ClockInTime” (again, it’s not a “clock in”). Notice how the Epicor system automatically assigns a “ClockOutMinute” value (again, it’s not a “clock out”) to the labor sequence record for precisely 24 hours after the “start activity”. It also records the date that the labor sequence was created, which would typically correlate with the “start activity”.
Now, I’m going to “End Activity” on this operation (at 9:43 AM this morning, roughly 47 hours and 51 minutes from when the labor sequence was started).
… and here is how that labor sequence record is altered in the database:
Notice how the [ClockiOutMinute] value (again, it not a “clock out”) changes to indicate the correct “end activity” time - BUT - it keeps the original date of May 18 that was inserted when the labor sequence record was created, rather than when I actually ended the activity today, May 19. Notice also that [LaborHrs] is just that —> hours. So, not only does it not record the presumed 47 hours on the labor sequence (from start to end), it completely drops the remainder of 51 minutes, as well.
In any event, I believe this is why other developers have suggested to use an “auto-clockout” (again, it’s not a “clock out”) strategy, so that labor sequences on an operation do not extend past 24 hours.
All I’m trying to do is capture what ACTUALLY occurs in real-time when an employee starts a work activity on an operation and then ends that exact same activity - regardless of when they are “supposed to”, or when our internal Production Department rules state that they need to by procedure… because - that NEVER happens in reality.
[TLDR] —
So, to answer your question more directly,… because of the confusion I, personally, have with how Epicor records TRUE/ACTUAL activity on a labor sequence against an operation… I have yet to decide how to address this issue. In addition, because of what I’ve seen thus far, it also makes me question the validity of ANY report using the [LaborHrs] field.
There has also been a suggestion in the thread to create a UD field to capture the “end activity” date (via BPM) when that particular action occurs. This seems doable to me, but I have yet to isolate when the “ClockOutMinute” (again, it’s not… ) value changes via the MES module during an “End Activity” action. I’m still working on that.
I’ll post more to the thread when I finally get some headway on this.