The Rate Matrix definition can be configured to include the Resource Role ID as a column. Rate Matrix rows can be created with current, active Resource Role IDs and then the Resource Role ID can be used on Resource properties and in detailed financial transactions. However, at any time the Resource Role ID value can be modified. No referential check is done on the existing Rate Matrix rows to see if that Role ID is being used and no check is done to see if the Role ID exists on any detailed financial transactions. Therefore, when certain actions are performed, the Clarity user may experience an error message to indicate that the Resource Role Code is invalid. This is a correct error message because the value was changed on the Resource Role properties and no longer exists within the database.
The Clarity application should not allow the Resource Role ID to be modified after it is used in other areas of the application, especially in the financial module. The application should keep the existing record within the database so that it can continue to be used as a reference to complete the processing activities in the financial module.
An example of where the current functionality causes issues is within the Rate Matrix. If the existing Resource Role ID is modified to a different value, and a record exists in the Rate Matrix, the existing row in the Rate Matrix cannot be maintained. If the existing matrix row has incorrect rates or dates, and the administrator attempts to update the record, no changes can be saved as the Resource Role is currently invalid. Another situation where the 'invalid Resource Role ID' message appears is when the administrator attempts to perform the 'Rate Increase' action for a set of matrix rows that contain records with currently invalid Resource Role ID values.
The application should lock or disable the Resource Role ID field for editing once it is used in the financial module. The current functionally allows the Clarity user the ability to mark a Resource Role inactive. This can serve to retire the Resource Role if it is no longer needed and yet keep it in the database for maintaining historical data as described above.
NOTE: As of CA Clarity PPM 13.1, Roles can have Financial Properties defined. When a Resource Role is initially created, the Role ID field is still open for editing and remains open until financial properties fields are updated. Once financial properties are defined and saved, the Role ID field gets locked and cannot be changed.
Steps to Reproduce:
- Home, Resources, click 'New' button
- Create an active, Labor Resource Role
- Name = 'My Labor Resource'
- ID = 'labor_resource'
- NOTE: DO NOT configure Role Financial Properties so that the Role ID field will remain open for editing
- Administration, Manage Matrix, click 'New' button, Matrix Name = 'My Matrix'
- Create a Rate Matrix, include the Resource Role column in the definition
- Create a new rate matrix row that uses the 'labor_resource' role ID
- Home, Resources, filter and select the resource role 'My Labor Resource'
- Edit the properties and change the Role ID from 'labor_resource' to 'my_labour_resource', click 'Submit' button
- Admin Tool > Manage Matrix > select 'My Matrix' to edit
- You will see the row for Resource Role ID = 'labor_resource'
- Open this record for editing > click 'Save' button
- Error: REVMGR-20198:Resource Role is not valid.
- Cancel this operation
- Click 'Rate Increase' button
- Enter the source dates to match the dates on the existing record and enter new dates for creating new records with a rate increase
- Click 'Preview' button, click 'Submit' button to perform the rate increase action (the error message is generated as the Role ID no longer exists and no rows are created for performing the rate increase action)
There are some options:
- Create a Resource Role profile for both the old and new Resource Role ID if both values are used (1 for historical transactions and 1 for current and future transactions)
- Change the Resource Role ID on the Rate Matrix Row properties to match the new Resource Role ID - Selecting this option may still cause some data issues as you may have existing financial transactions that may not be fully processed due to this data discrepancy.
- Configure Financial Properties on the Role - At least one field on the Financial Properties is set and saved for the Role ID field to become locked for editing.