When you make labor and tool assignments to crews you will want to verify the assignments meet the requirements of the crew on a particular day in which the crew is due to go out. There is an action Crew Assignment Status that opens a dialog with 5 table windows, three of which provide a column called Requirement Status which can have one of several values. Those values are supported by the Synonym Domain CREWASSIGNSTA, but different values are used in each of the three table windows.
To show how this one dialog works amounted to some 30 pages and 50+ screenshots, too much for a single article, and so I have split it into three around the three table windows with the Requirement Status field, Required Crafts, Required Qualifications and Required Tools. This article is the first of those and the largest of the three, with a focus on Required Crafts.
The crew I am using was defined in the article Crews (1 of 3) – Defining Crews, it is the crew BOSOHLNW – Overhead Line Crews – North West, but modified to use the DAY/DAY calendar/shift. The article can be found here http://maximosecrets.com/2020/11/18/crews-1-of-3-defining-crews/
I’ll start with a summary section and then follow up with the detail that derived this summary.
Required Crafts – Summary
Required Crafts is based on object AMCREWLABPOS and the Requirement Status has the following statuses:
- OK – All requirements met
- REQ NOT MET – Assigned labor does not meet the requirements for the position
- NOT AVAILABLE – Assigned labor is not available during the shift, or there is a shift mismatch, or labor is assigned to other work orders
- NOT ASSIGNED – No labor assigned
- MULTIPLE – Multiple labor assigned to the same position with overlapping times
NOT SKILLED is not used and will be removed from the domain.
The Requirement Status is an indication to the crew supervisor when something may be wrong with the make-up of the crew. If there are no labor assignments, then the default value for the Requirement Status will be NOT ASSIGNED. If all positions are assigned and there are no issues, then the crew positions will show a Requirement Status of OK.
A Requirement Status of REQ NOT MET (Requirement Not Met) occurs if there is anything which is a mismatch between the required craft and the assigned labor. There are four fields that make up a craft requirement, Craft, Skill Level, Vendor, Contract. If the Labor Assignment for a crew position doesn’t have the same values for these four fields then the Requirement Status will be REQ NOT MET. This may be acceptable, for example the required craft requires a MECH-SECONDCLASS and the assigned labor is a MECH, or a MECH-FIRSTCLASS or a MECH-FIRSTCLASS who works for vendor EMI, in all those cases you are likely to overlook the mismatch.
A Requirement Status of NOT AVAILABLE occurs in three scenarios:
- The calendar/shift of the assigned labor is blank or different to the calendar/shift of the crew
- The assigned labor has a full day or partial day of unavailability on the specified Date shown in the Crew Assignment Status dialog.
- The assigned labor is assigned to a work order where the scheduled start of that assignment is during the crew’s working time of the specified Date shown in the Crew Assignment Status dialog.
A Requirement Status of MULTIPLE occurs when there are multiple labor assigned to the same crew position on the specified Date shown in the Crew Assignment Status dialog.
Labor Assignments – Part 1
You need to prepare the crews by making labor assignments to the required crafts and skills for each of the crew positions. In our crew BOSOHLNW – Overhead Line Crews – North West, we have three positions as follows:
- DRIVER – Craft DRIVER with no skill level
- HELPER – Craft ELECT with skill level APPRENTICE
- LEADER – Craft ELECT with skill level FIRSTCLASS
Required Crafts – REQ NOT MET
On the Labor Assignments tab there are two buttons, we will only use the New Row button and take each of the positions in turn starting with the DRIVER position.
The Select Value on the Labor field shows all of those Labor records that have DRIVER defined as a Craft. We didn’t specify a particular skill level for the DRIVER position. We’ll chose BETHUNE – Dave Bethune.
Note. The Select Value shows all of the labor that have DRIVER defined as a Craft, only one of these, HARDY – James Hardy has DRIVER defined as their default craft and he does not have NEEDHAM as his Work A physical place where assets exist and where work can be performed. More, it is FLMGMT in the FLEET site. If you are using Work Locations for Labor then this dialog would benefit from showing the Work Location and Work A structural element of a Maximo database that is used for data separation. More as it appears on the List tab of the Labor application.
With Dave Bethune assigned to the DRIVER position, the Effective Date defaults to the start of the current work period in the DAY calendar, 11-May-21 07:00, the End Date is left empty by default. Notice that the Hourly Rate has been incremented to $17.00, this being the rate for BETHUNE as a DRIVER craft with skill level of FIRSTCLASS.
If you tried to assign a labor that had a different calendar and shift to the crew, you would receive the warning message “BMXAT0341W – The calendar and shift for labor BETHUNE are different from the calendar and shift for crew BOSOHLNW. Do you want to assign the labor to the crew?”. This was the message I got when crew BOSOHLNW was based on the OFFICE/OFFICE calendar/shift. It would allow you to assign labor whose calendar/shift was different to that for the crew.
The Crew Assignment Status action opens a dialog that will show you whether the assignments you are making are meeting the required validations. The dialog shows the Required Crafts, Required Qualifications and Required Tools, each has a Requirement Status field. If you used this action before making any assignments, then the Requirement Status would show either NOT ASSIGNED or NOT QUALIFIED. Now for the DRIVER position it is showing as REQ NOT MET – Requirement Not Met. This might be because the DRIVER position requires a DRIVER craft with no skill level and Dave Bethune has a DRIVER craft but with a FIRSTCLASS skill level. I’ll test this out later.
Below the top three table windows you will find the Assigned Labor and Assigned Assets table windows. Assigned Labor shows BETHUNE assigned for 8:00 hours per day to the DRIVER position. As BETHUNE has the DRIVER craft with skill level of FIRSTCLASS then this is the level assigned.
For the HELPER position the Select Value on the Labor record now filters by craft ELECT and skill level APPRENTICE. GORMLEY appears twice once against a labor rate contract 1008 which I know has expired, but is still set to status of APPR, which is why it shows here in the Select Value. I’ll pick the second record.
The Crew Assignment Status dialog for the HELPER position also shows REQ NOT MET. Is that because the craft requirement for the crew did not reference a vendor, perhaps?
Required Crafts – OK
For the LEADER position I chose BALL – Allan Ball who is an exact match to the requirement of craft ELECT and skill level FIRSTCLASS.
Notice that the Hourly Rate has now incremented to $69.00 with the addition of GORMLEY and BALL. It should be the total of the current hourly rates of all three assignees for those crafts, which is $17, $16 and $22 respectively – total $55. After investigation I found that it has used the craft rates, and not the labor craft rates. If that was supposed to be the case why not calculate it immediately, why wait for labor assignments? A case has been sent to IBM Support for assessment.
The Crew Assignment Status for the LEADER position shows OK. Allan Ball has an exact match to the craft requirement for the position.
My suspicions are that when the Requirement Status is set to REQ NOT MET it is because there is no exact match with the craft requirement, so the next few scenarios will be trying to prove that.
In the MAXDEMO database there is no labor with just the DRIVER craft they are all DRIVER with a skill level of FIRSTCLASS.
In the Labor application for labor ALLEN – Rebecca Allen, she has a DAY/DAY calendar/shift. I’ve associated the DRIVER craft with no skill level. The rate is $14.50 inherited from the craft rate for DRIVER with no skill level or vendor.
You need to delete the assigned labor record rather than try to change the labor from the Labor field. There are some restrictions on when you can do this, which I will explore in the article Crews (3 of 3).
After deleting I created a new Assigned Labor record for the DRIVER position and this time chose labor ALLEN.
In the Crew Assignment Status dialog, the Requirement Status is now showing OK, it was an exact match.
We will also look at the HELPER position. In Labor application I’ve added an ELECT craft with skill level APPRENTICE to SMALL – Mike Small. It is not his default craft.
On Crew BOSOHLNW I’ve deleted the HELPER Labor Assignment and used New Row to create an assignment for the position HELPER choosing SMALL when it appeared in the Select Value. The Select Value filters by the required craft for the position, and so it is looking for a labor with an ELECT craft with skill level APPRENTICE, but it does not exclude those with a vendor and/or contract.
With SMALL selected the HELPER position now shows a Requirement Status of OK. The Labor is an exact match, GORMLEY who worked for vendor EMI was not an exact match.
Just to recap on the REQ NOT MET requirement status, this will occur whenever there is not an exact match between the Required Craft and its skill level and that for the Assigned Labor. The REQ NOT MET Requirement Status will be shown if any of the Craft, Skill Level, Vendor or Contract of the assigned labor does not match to the Required Crafts record.
- Required Craft DRIVER, only a Labor Assignment of DRIVER will be OK, not any DRIVER with a skill level
- Required Craft DRIVER – FIRSTCLASS, only a Labor Assignment of DRIVER – FIRSTCLASS will be OK, a labor with a lower skill level will have a REQ NOT MET status
- Required Craft DRIVER – SECONDCLASS, only a Labor Assignment of DRIVER – SECONDCLASS will be OK, a labor with a higher skill level, say DRIVER – FIRSTCLASS will have a REQ NOT MET status.
The business logic behind this according to IBM is that the REQ NOT MET requirement status is highlighting that there could be a differential in standard rates, either up or down that the REQ NOT MET highlights to supervisors.
Labor Assignments – Part 2
Required Crafts – NOT SKILLED
In this next section I will try and determine the other settings that could occur for the Requirement Status. This field is supported by the Synonym Domain CREWASSIGNSTA. We’ll start first with the value of NOT SKILLED. We will try and change the Required Craft for the HELPER position to ELECT with a skill level of SECONDCLASS.
You cannot change the craft or the skill level fields for an existing Required Crafts record, they are read-only. You cannot delete the Required Crafts record when there is a current labor assignment as you’ll get the error message “BMXAT0359E – You cannot delete the required craft position because labor has already been assigned to it.” You must delete first the labor assignment.
After deleting the labor assignment for the HELPER position and deleting the HELPER record in Required Crafts, I have used New Row to recreate a HELPER position record, this time with ELECT craft and SECONDCLASS skill level.
You can assign Mike Small to the HELPER position, although SMALL has a craft of ELECT and a lower skill level of APPRENTICE.
The Crew Assignment Status dialog now shows the HELPER position with a Requirement Status of REQ NOT MET. I sort of expected NOT SKILLED.
I raised a support call with IBM Support on this, and while I could find an old recording which indicated the use of NOT SKILLED it was never implemented, Requirement Not Met, fulfilled similar case of a mismatch between the craft requirement for a position and the craft of the assigned labor. There is no code for NOT SKILLED and the domain value will be deleted in a future release.
Required Crafts – MULTIPLE
There is another domain value MULTIPLE with a description of “Multiple assets assigned to tool sequence and overlap with times” but let’s see whether it also applies to labor, could it also mean “Multiple labor assigned to same position with overlapping times”? I wonder what would happen if I tried to assign a second labor to the LEADER position.
If we add a second Assigned Labor to a position that is already filled, in this case DUDLEY – Bill Dudley is added to the LEADER position, we receive the warning “BMXAT0347W – Labor BALL is already assigned as LEADER for the specified date. Do you want to replace labor BALL with labor DUDLEY? Click Yes to replace labor BALL with labor DUDLEY. Click No to assign labor DUDLEY as an additional resource to this crew.”
I’ve clicked Yes.
With the LEADER position now showing DUDLEY as the labor assigned the Crew Assignment Status now shows NOT AVAILABLE. Not where I was heading, but then again, I wanted to show this Requirement Status.
A quick look in the Labor application for DUDLEY and we can just see that the Calendar field is empty. NOT AVAILABLE will be shown when the calendar/shift is not a match. I tried this also with setting DUDLEY with an EVENING/EVENING calendar/shift and NOT AVAILABLE was still the result.
With DUDLEY now set with a DAY/DAY calendar/shift, which is a match for the crew, the Crew Assignment Status now shows OK for the LEADER position.
I had wanted to have both BALL and DUDLEY on the crew as DUDLEY is taking over from BALL, and so needs to get used to the new routes and meet the other crew team members. So, I have added a new labor for the LEADER position, reinstating BALL and this time answering No when the warning message is presented. There are now two assigned labor for the LEADER position, BALL and DUDLEY.
This time with two assigned labor for the same time or overlapping times the Requirement Status shows MULTIPLE.
Required Crafts – NOT AVAILABLE
The final Requirement Status to review for Required Crafts is NOT AVAILABLE. We already saw that if there is a mismatch of shifts between the crew and the assigned labor, or the assigned labor has no calendar/shift then you will receive NOT AVAILABLE for the Requirement Status.
But would this also be the case if either the labor is not available for the shift because they are on sick or on vacation, or they are assigned to a work order that is scheduled at the same time?
In the People application for ALLEN – Rebecca Allen, we have used the Modify Person Availability action to change the availability as follows:
- 12-May-2021 8 hours with reason code SICK, a whole day of unavailability
- 14-May-2021 4 hours with reason code VAC between 11:00 and 15:00, a partial day of unavailability
- 15-May-2021 a Saturday, ALLEN will provide 4 hours of EXTRA TIME between 07:00 and 11:00
Back in the Crews application the Crew Assignment Status action shows a Requirement Status of NOT AVAILABLE for the DRIVER position, which is the position labor ALLEN is assigned to, when the Date field in the header is changed to 12/05/21 when Rebecca will be off work due to sickness. If I scrolled down to the Assigned Labor table window it would show that Rebecca has 0:00 Available Hours.
On the Friday when ALLEN has a vacation in the afternoon of her shift, the Requirement Status again shows as NOT AVAILABLE and further down the dialog the Assigned Labor table window shows 4:00 Available Hours.
When I advanced another day to the 15th May 2021 when Rebecca will do some EXTRA TIME the Requirement Status was set to OK, but when I advanced to the Sunday she still showed with an Requirement Status of OK although this was a Sunday when she was not working, it should perhaps say NOT AVAILABLE. I also noticed that the Available Hours on both Saturday and Sunday showed 8 hours, which is incorrect it should have been 4 and 0 hours respectively, and on a public holiday it also shows as 8 hours. The issues have been reported to IBM Support.
PS. The reply from IBM Support is that the context is the crew and the calendar/shift that the crew works. When the crew’s calendar/shift, DAY/DAY, has a non-working day you would be ignoring the requirement statuses and the available hours, they are irrelevant. Strictly NOT AVAILABLE would be better, and it might be preferable to show available hours of the labor, but that would require an RFE (Request for Enhancement) with multiple clients requesting this. It has always worked this way and any change would affect Maximo for Utilities as well. I did not raise the RFE. A simple configuration would be to change the background colour of the Date field to indicate Green for a working day, and Red for a non-working day, or public holiday.
Note. A Crew can be assigned to work Extra Time either on a work day, perhaps after the normal shift ends or at a weekend. The Crew Assignment Status does not take this into account. I would expect that the assigned labor would be a match only if they have a match to the extra time hours and time range, but the Requirement Status shows OK even if their personal availability does not have the same EXTRA TIME hours. I have raised an RFE for this, Crews do work extra hours, an electric utility will call-in labor when a storm is about to occur, or has occurred, so that they can restore power as fast as possible.
You can vote for this RFE here: http://www.ibm.com/developerworks/rfe/execute?use_case=viewRfe&CR_ID=150515
What if the assigned labor is also assigned to other scheduled work?
I’ve created a new work order, 1209 – Work Order requiring a DRIVER, and with work plan labor for 8 hours an assignment has been created and I have scheduled it for 17/05/21 07:00 and assigned ALLEN – Rebecca Allen. She does not appear in the Available Labor dialog because she is assigned to a crew, but you can still select her through the Labor field’s Select Value.
Back in the Crews application and the Crew Assignment Status dialog, when you change the Date in the header section to 17/05/21 the DRIVER position in the Required Crafts table window has a Requirement Status of NOT AVAILABLE. Move to the 18/05/21 and it reverts to OK.
I also did a check with partial availability on the day, by changing work order 1209 to only require 6 hours of the assignment with Rebecca on it. It makes no difference the Requirement Status will still show NOT AVAILABLE if they are only partially available.
Finally, I did a test with 2 hours of the assignment but with 2 hours EXTRA TIME in modified availability for 17/05/21 and it still shows NOT AVAILABLE with a start time of 07:00, 09:00, 14:00, and 15:00. But at 16:00 and 15:01 it shows OK. Therefore, it will show NOT AVAILABLE if there is external work that the labor is assigned to during the shift hours of the crew. Except it would be nice if the test for NOT AVAILABLE, when there is an external work order, worked for an assignment start between or equal to the shift start and less than the shift end (not less than or equal to). You may have a work order assignment starting at shift end. Minor issue raised with IBM Support.