Hello Everyone
I am trying to List out the users that were
hired between 01/25/2023 - 01/25/2023
orgStatus is Hired
IIQstatus is Active
No HR Account
Active “Active Directory”
I am using Filter.ge(“startDate”,01/25/2023). But it doesn’t return anything.
QueryOptions qo = new QueryOptions();
qo.addFilter(Filter.and(Filter.eq("links.application.name", "Active Directory"), Filter.eq("links.disabledAccount", "false")));
qo.addFilter(Filter.eq("orgStatus", "Hired"));
qo.addFilter(Filter.ge("startDate", "01/25/2023"));
qo.addFilter(Filter.eq("iiqStatus", "Active"));
List userList = new ArrayList();
Iterator it = context.search(Identity.class, qo);
List<Link> links = null;
while(it.hasNext()){
Identity id = (Identity) it.next();
links = id.getLinks();
}
for(Link link : links)
{
String app = link.getApplicationName();
if(!app.equals("HR"))
{
return "No HR Account";
}
else{
return "Yes HR Account";
}
}
Any suggestion
This filter should not be used like this, as you would be searching for identities having one Active directory account and at least one non active account (can be HR or any other account that would match).
If you save dates in identity as strings, then you would have to use something like this
To fetch identities hired on 01/25/2023, you can use the filter below. If you use the gt() operator, it will return all identities hired after 01/25/2023.
// Specifying the date "25/01/2023"
String date = "25/01/2023";
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
// Parse the date string to a Date object
Date startDate = formatter.parse(date);
// Create a Calendar object to manipulate dates
Calendar calendar = Calendar.getInstance();
calendar.setTime(startDate);
// Set the end of the day (23:59:59) for the specified date
calendar.set(Calendar.HOUR_OF_DAY, 23);
calendar.set(Calendar.MINUTE, 59);
calendar.set(Calendar.SECOND, 59);
Date endDate = calendar.getTime();
// Create QueryOptions and add filters
QueryOptions qo = new QueryOptions();
qo.addFilter(Filter.gt("created", startDate));
qo.addFilter(Filter.lt("created", endDate));