So having worked as an IT Asset Manager for almost the last year within a live customer environment I start to understand the short comings of the functionality within the KACE SMA.
Not least is the history function, which has two issues really......
1, A Device type Asset record is crammed full of every little change recorded in inventory, so there are thousands of data points.
2. The History cleans out on a schedule, set by your setting son the SMA.
So as an Asset Manager if i want to see the lifecycle of an asset, Device or otherwise over its lifecycle of 3-4 years, it is impossible to extract that data.
Practically I might want to see when an Asset status changes or has changed on when any other IT Asset management data point may have changed, for example
- Location
- Department
- Cost Center
- User
To overcome these shortcomings I recommend the following steps:
- Add a custom Notes field to every Asset type that you need to record history for, Maybe called "Key Asset History"
- Create a custom ticket rule to identify every key change in data and append to the field
- Run those ticket rules on a schedule appropriate to the level of change in your organisation (Hourly, Daily, Weekly)
For me this has been a gamechanger, at a glance I can now open any Asset record and see what has changed during its lifecycle, the date of change and who made the change in KACE.
if you would like to benefit from my experience and hard work within your KACE environment, please feel free to get in touch via the email address in my profile.
Martyn Hobbs has been a qualified KACE consultant and educator for over 15 years, delivering KACE solutions to 100's of customers globally
Also, would this work if there is some way to set the field to read-only. To prevent users from editing it in some way? - JPL0422 4 months ago
SELECT
select UNIQUE asset.ASSET_DATA_ID as ID, (SELECT group_concat("Date: ", TIME, " - ", USER_TEXT, " has changed ", FRIENDLY_FIELD_NAME, " to ", VALUE2, "\r" order by `TIME` DESC SEPARATOR "") as value
FROM ASSET_HISTORY ah2
WHERE
ah2.USER_TEXT != "Reported by Agent"
AND ah2.USER_TEXT != "Reported by kassetarchive"
AND ah2.USER_TEXT != "Schedule"
AND ah2.CHANGE_TYPE != "Task"
AND ah2.FIELD_NAME != "OWNER_ID"
AND ah2.USER_TEXT != ""
AND ah2.NAME = ah.NAME
AND ah2.TYPE_NAME = "Gerät") as value
FROM ASSET_HISTORY ah
left join ASSET asset on asset.ID = ah.ASSET_ID
where ah.USER_TEXT != "Reported by Agent"
AND ah.USER_TEXT != "Schedule"
AND ah.CHANGE_TYPE != "Task"
AND ah.FIELD_NAME != "OWNER_ID"
AND ah.USER_TEXT != ""
AND ah.TYPE_NAME = "Gerät"
AND asset.ASSET_DATA_ID != ""
UPDATE:
UPDATE ASSET_DATA_5
INNER JOIN
(select UNIQUE assetdata.ID, asset.ASSET_DATA_ID, (SELECT group_concat("Date: ", TIME, " - ", USER_TEXT, " has changed ", FRIENDLY_FIELD_NAME, " to ", VALUE2, "\r" order by `TIME` DESC SEPARATOR "") as value
FROM ASSET_HISTORY ah2
left join ASSET asset2 on asset2.ID = ah2.ASSET_ID
WHERE
ah2.USER_TEXT != "Reported by Agent"
AND ah2.USER_TEXT != "Schedule"
AND ah2.CHANGE_TYPE != "Task"
AND ah2.FIELD_NAME != "OWNER_ID"
AND ah2.USER_TEXT != ""
AND ah2.NAME = ah.NAME) as value
FROM ASSET_HISTORY ah
left join ASSET asset on asset.ID = ah.ASSET_ID
left join ASSET_DATA_5 assetdata on assetdata.ID = asset.ASSET_DATA_ID
where ah.USER_TEXT != "Reported by Agent"
AND ah.USER_TEXT != "Schedule"
AND ah.CHANGE_TYPE != "Task"
AND ah.FIELD_NAME != "OWNER_ID"
AND ah.USER_TEXT != ""
AND ah.TYPE_NAME = "Gerät"
AND asset.ASSET_DATA_ID in (<TICKET_IDS>)
) as history
ON
ASSET_DATA_5.ID = history.ASSET_DATA_ID
SET ASSET_DATA_5.FIELD_10083 = history.value - MGruber 1 month ago