So I have a basic idea of what I want to do, but I have some technical areas that I haven’t explored yet, so I think I need some help getting this set up.
What I have been tasked with creating is a call-in/late tracker for employees. We want a way to track how many times an employee wasn’t here or was late, and what the reason was.
At first I am only going to attack late, because there is at least a labor header with a clock in time to compare to a shift start time. That’s an easy enough BAQ to make to get a list of occurrences that need reasons.
The next part is where I get a little fuzzy on the technical details.
For the reason codes, I would probably use a UDtable so that I can make a reason code entry screen and not need to maintain the list in code. (although it seems like a waste of a UD table, but that’s another topic) then I can use a BAQ drop down to set that. Not a big deal there.
For the table of reason records per employee and date, I keep going back and forth on whether I should use a parent/child UD table or just a regular UD table. The entry screen for the UD100/UD100A screen would be nice for reviewing an individual employee and for adding records in where there was no labor header (for a no show all day, or for when you know ahead of time that there is vacation scheduled for some examples). But, since the parent table is so simple, the only key would be company and employee ID, it’s not really doing anything???, and I could have just one UD table, but controlling entry might be more work on the development side??
The second level to this is ease of entry. I want to make an updateable dashboard that looks for rows that need a reason assigned. For that, I would do a left join on my “late” rows with reason codes where the employee ID and date match. If there isn’t one, (blank) that show the row. The ultimate goal would be to customize the dashboard so that you could do a mass update with buttons for highlighted rows. The part I haven’t done before is create new rows like that. Since the “update” is actually creating the rows that need to be created in UD100A (or just the UD table…). To do that, do I need to make a pre-processing BPM on the update that checks for the row on the UD table, and if it doesn’t exist call the BO to create the row? Or is there a better way to do that?
Lastly, I need to create a way to look for “absent” employee days based on shift and shop calendar. I haven’t really tried attacking that much, because I get stuck pretty quickly on how the shop calendars work and how to check a date against a shop calendar and essentially return a true or false.
So, any opinions on whether to use parent/child UD table or just a regular UD table? Also any tips on creating rows with a UBAQ/Udashboard would be helpful.
Any other thoughts/suggestions on the general concept? Better/easier/more elegant ways to do this?