Share all details about your problem, including any error messages you may have received.
*I have implemented NCD in an application of connector type JDBC, were i can see the changes getting detected in the identity’s event tab. I want to access the events of the type Native change detection using rule. I have tried Identity.getNativeChangeDetections(), but i am getting empty list. Can you guys help me with different ways to get the Native change detection object.
NativeIdentityChangeEvent class only records the changes in the native identity for the Active directory application based on UUID right, but i want NCD from the JDBC application. Correct me if i am wrong
as per my understanding this depends on how your system is configured.
There is a dedicated Lifecycle Event for “Native Change Detection” (not to be mixed with “Native Identity Change Detection” which is about DN changes on e. g. AD) which defines the workflow to handle that kind of events.
A common behavior is that the workflow creates WorkItems which have to be processed manually.
In some cases we also revert the operation manually and generate AuditEvents which document what happened.
Can you please provide some more insights of what exactly you want to “see”?
You are right, the workitem gets created, and in the events tab of identity, data regarding the NCD is stored as shown in the below screenshot, i just want to access this data, in a custom report, so how can i achieve this objective.
Hello @Prash373 there isn’t a single pre-built native change detection report out of the box rather, the functionality logs events that you can then use to create a custom report or audit search. Native changes are logged as audit events or stored as Lifecycle Events on the identity object during aggregation
Got your question now. Please execute below code. You will be able fetch “Past Identity Events“ data of identity. Manage your filters as per your requirement.
import sailpoint.object.AuditEvent;
import sailpoint.object.QueryOptions;
import sailpoint.object.Filter;
Filter actionFilter = Filter.eq(“action”,“identityLifecycleEvent”);
Filter identityFilter = Filter.eq(“target”,“Identity:Prashant pallav”);
QueryOptions qo = new QueryOptions();
qo.add(Filter.and(identityFilter,actionFilter));
List auditEvents = context.getObjects(AuditEvent.class,qo);
List data = new ArrayList();
for(AuditEvent events : auditEvents) {
data.add(“Event =”+events.getString1()+" Cause =“+events.getString4()+” " +"Summary = “+events.getString2()+” "+events.getString3());
}
return data
;
Please let me know this is working for you or not.