We are on SMAX 24.4 and have a requirement to only run a business rule if record is updated by an account user via the agent UI but same rule should not execute if record is updated by API or integration or via NativeUCMDB.
We have tried current_user.isSystem, current_user.isSystemIntegration, current_user.isDBUser and current_user.isMaasUser but none of them are useful in differentiating standard account user with integration user.
If we look in suite-admin back office portal, standard user is correctly set as type 'Account user' and integration user used for API is set as 'integration user' (see the screenshot below)
Irrespective how records are updated via any of the above users, the below values are returned:
isSystemIntegration- false
isSystem- false
isDBUser - true
isMaasUser - true
If same record is updated via UCMDB (as part of nativesacm), the current_user attribute doesn't even get any value whatsoever and the history shows record is updated by 'SYSTEM'.
We know there's a NativeSACMContext attribute that can be used somehow to determine if update is triggered by UCMDB, but that does not capture any other differentiation between standard user v/s integration user.
So, question is.. what is the purpose of current_user.isSystemIntegration, .isSystem, isMaasUser etc?
Is this a defect or by design that these values are not even being set with update is triggered via UCMDB and cannot differentiate standard user with integration user?
How do we write a condition in a business rule to only trigger it if update is done via the Agent UI and not via API or mass import or UCMDB integration etc?
In comparison, old tool being replaced with SMAX has a standard function called gui() to capture if update is done via UI or API. We need similar outcome for a good business reason.
Thanks