In CA Asset Portfolio Management, when saving an asset, we receive the error:
Either another user or the registration service has updated the record before loading. Refresh the page and save again.
We also see this message in the ITAM data import logs when importing some assets.
CA Asset Portfolio Management 14.1 or higher
There are two possible causes for the issue.
This problem may frequently occur in environments where CA Asset Portfolio Management is integrated with Service Desk.
There can be several causes for this same error message; however, if the error occurs on a few assets, but not all assets, the problem is likely related to the field length on the aud_usp_owned_resource.audit_nr_pr_id field.
The code sets the audit_nr_pr_id field equal to the value from the pri.nx_desc field. This error occurs when the data in pri.nx_desc is longer than the field length of the audit_nr_pr_id field.
This problem may frequently occur in environments where the ITAM instance maintains a custom field.
The issue may occur whenever the given display data field has a value of over 5 characters. but the corresponding audit field is too short.
Table aud_usp_owned_resource table has a table field "audit_XXXX" which is data type "nvarchar (5)" which is too short.
XXXX is the custom field that is associated to the usp_owned_resource table.
RESOLUTION FOR CAUSE 1:
As a permanent workaround, perform the following steps to increase the field length in the database:
1. Stop the services for ALL the CA products that connect to the mdb database.
2. Update the field length on the audit_nr_pr_id column with this command:
ALTER TABLE aud_usp_owned_resource ALTER COLUMN audit_nr_pr_id nvarchar(255)
3. Perform an IISRESET on both the APM application and APM web servers.
4. Restart the Service Desk and the APM services.
ITAM engineering will update the mdb schema in the future to change the field length on the audit_nr_pr_id column so it equals the pri_nx_desc field length.
RESOLUTION FOR CAUSE 2:
XXXX is the custom field that is associated to the usp_owned_resource table. It should be consistent across the following solution.
Locate the given "upcapmo" table, such as upcapmo_XXXX, which contains the data that is contained in the given XXXX field. Examine the given display field that is being used as the display field on the Web UI
In the backend database, look up the definition of table upcapmo_XXXX, which may show the given display field's data type as a value such as nvarchar (50)
Then check aud_usp_owned_resource, field audit_XXXX. It may be too short nvarchar (5).
run this SQL query to correct the audit field size
ALTER TABLE aud_usp_owned_resource
ALTER COLUMN [audit_XXXX] [nvarchar](50) NULL;
then restart IIS (iisreset)