a!queryFilter( field: "expiredDays_int", operator:"between", value: {rule!CR_CMU_DSC_getExpiredDaysInSecurityDocumentation( selectedItemType_txt: 1 ).startIndex_int, rule!CR_CMU_DSC_getExpiredDaysInSecurityDocumentation( selectedItemType_txt: 31 ).endIndex_int } )
how can write this query without between operator
Discussion posts and replies are publicly visible
Hi Kavya, i think you had asked similar question in another thread right? you can use logical expression with "<" and ">" operators in your filters. By the way what is the issue using between? and can you post the outptut of the rule rule!CR_CMU_DSC_getExpiredDaysInSecurityDocumentation( selectedItemType_txt: 1 ).startIndex_int
Hi , yes i have asked the same question but those solutions were not working.
that between giving wrong count in UI.. but same query i try in db it's giving correct count
a!queryEntity( entity: cons!CR_CMU_ENTITY_DU_MONITORING, query: a!query( logicalExpression: a!queryLogicalExpression( operator: "AND", filters: { a!queryFilter( field: "status_txt", operator: "=", value: "OPEN" ), a!queryFilter( field: "buRowSecurityId_txt", operator: "includes", value: rule!CR_FN_getNBFUserEmailId( loggedInUserName_txt: ri!loggedInUserName_txt ), applyWhen: rule!CR_CMU_FN_buRowSecurityIdFilterCondition( role_txt: ri!role_txt ) ), a!queryFilter( field: "ccRowSecurityId_txt", operator: "includes", value: rule!CR_FN_getNBFUserEmailId( loggedInUserName_txt: ri!loggedInUserName_txt ), applyWhen: rule!CR_CMU_FN_ccRowSecurityIdFilterCondition( role_txt: ri!role_txt ) ), a!queryFilter( field: "mortgageSummaryFlag_int", operator: "=", value: 1, applyWhen: ri!selectedItemReportType_txt = cons!CR_SECURITY_DOCUMENTATION_REPORT_TYPES[3] ), a!queryFilter( field: "slcFgsFlag_int", operator: "=", value: 1, applyWhen: ri!selectedItemReportType_txt = cons!CR_SECURITY_DOCUMENTATION_REPORT_TYPES[6] ), a!queryFilter( field: "insuranceMonitoringFlag_int", operator: "=", value: 1, applyWhen: ri!selectedItemReportType_txt = cons!CR_SECURITY_DOCUMENTATION_REPORT_TYPES[5] ), a!queryFilter( field: "docDeferralMonitoringFlag_int", operator: "=", value: 1, applyWhen: ri!selectedItemReportType_txt = cons!CR_SECURITY_DOCUMENTATION_REPORT_TYPES[2] ), a!queryFilter( field: "securitiesDefectFlag_int", operator: "=", value: 1, applyWhen: ri!selectedItemReportType_txt = cons!CR_SECURITY_DOCUMENTATION_REPORT_TYPES[1] ), a!queryFilter( field: "expiredDays_int", operator:"between", value: {rule!CR_CMU_DSC_getExpiredDaysInSecurityDocumentation( selectedItemType_txt: ri!selectedItemType_txt ).startIndex_int, rule!CR_CMU_DSC_getExpiredDaysInSecurityDocumentation( selectedItemType_txt: ri!selectedItemType_txt ).endIndex_int }, applyWhen: or( ri!selectedItemType_txt = cons!CR_CMU_GRID_LABEL_BUCKET_VALUES[1], ri!selectedItemType_txt = cons!CR_CMU_GRID_LABEL_BUCKET_VALUES[2], ri!selectedItemType_txt = cons!CR_CMU_GRID_LABEL_BUCKET_VALUES[3], ) ), a!queryFilter( field: "expiredDays_int", operator: ">", value: rule!CR_CMU_DSC_getExpiredDaysInSecurityDocumentation( selectedItemType_txt: ri!selectedItemType_txt ).startIndex_int, applyWhen: ri!selectedItemType_txt = cons!CR_CMU_GRID_LABEL_BUCKET_VALUES[4] ) }, ignoreFiltersWithEmptyValues: true ), pagingInfo: ri!pagingInfo ), fetchTotalCount: true() )
Hi Kavya, may be you are providing wrong input in your decision rule , can you check decision output in expression rule and see what is the output?
did you try this input and checked?
yes, still getting wrong count. need count as 312 but getting 304
a!queryFilter( field: "expiredDays_int", operator: "between", value: {rule!CR_CMU_DSC_getExpiredDaysInSecurityDocumentation( selectedItemType_txt: "Past Due in 1-30 days" ).startIndex_int, rule!CR_CMU_DSC_getExpiredDaysInSecurityDocumentation( selectedItemType_txt: "Past Due in 1-30 days" ).endIndex_int}, applyWhen: ri!selectedItemType_txt = cons!CR_CMU_GRID_LABEL_BUCKET_VALUES[3] )
Did you try to use the operators "=>" and "<=" instead of ">" and "<"?
yes, that is giving error as
a!queryFilter( field: "expiredDays_int", operator:"<=", value: { rule!CR_CMU_DSC_getExpiredDaysInSecurityDocumentation( selectedItemType_txt: ri!selectedItemType_txt ).endIndex_int }, applyWhen: or( ri!selectedItemType_txt = cons!CR_CMU_GRID_LABEL_BUCKET_VALUES[1], ri!selectedItemType_txt = cons!CR_CMU_GRID_LABEL_BUCKET_VALUES[2], ri!selectedItemType_txt = cons!CR_CMU_GRID_LABEL_BUCKET_VALUES[3], ) ), a!queryFilter( field: "expiredDays_int", operator: ">=", value: rule!CR_CMU_DSC_getExpiredDaysInSecurityDocumentation( selectedItemType_txt: ri!selectedItemType_txt ).startIndex_int, applyWhen: or(ri!selectedItemType_txt = cons!CR_CMU_GRID_LABEL_BUCKET_VALUES[4], ri!selectedItemType_txt = cons!CR_CMU_GRID_LABEL_BUCKET_VALUES[1], ri!selectedItemType_txt = cons!CR_CMU_GRID_LABEL_BUCKET_VALUES[2], ri!selectedItemType_txt = cons!CR_CMU_GRID_LABEL_BUCKET_VALUES[3]) )
This is the same problem as in the other post. You cannot use a list as the value.
for this code and decision rule can't we come up with different solution?
What does "different" mean?
If the "between" operator does not work the way you need it, you can't use it.
If the decision returns value you cannot use with "<=" or ">=", you will need to modify the decision, or the returned values.
that's what how can i change the decision rule, please help me...
or is their any other option to come up with other solution
I tried to change your code so it picks the first item in the returned list. Please try this.
a!queryFilter( field: "expiredDays_int", operator:"<=", value: index( rule!CR_CMU_DSC_getExpiredDaysInSecurityDocumentation( selectedItemType_txt: ri!selectedItemType_txt ).endIndex_int, 1, 0 ), applyWhen: or( ri!selectedItemType_txt = cons!CR_CMU_GRID_LABEL_BUCKET_VALUES[1], ri!selectedItemType_txt = cons!CR_CMU_GRID_LABEL_BUCKET_VALUES[2], ri!selectedItemType_txt = cons!CR_CMU_GRID_LABEL_BUCKET_VALUES[3], ) ), a!queryFilter( field: "expiredDays_int", operator: ">=", value: index( rule!CR_CMU_DSC_getExpiredDaysInSecurityDocumentation( selectedItemType_txt: ri!selectedItemType_txt ).startIndex_int, 1, 0 ), applyWhen: or(ri!selectedItemType_txt = cons!CR_CMU_GRID_LABEL_BUCKET_VALUES[4], ri!selectedItemType_txt = cons!CR_CMU_GRID_LABEL_BUCKET_VALUES[1], ri!selectedItemType_txt = cons!CR_CMU_GRID_LABEL_BUCKET_VALUES[2], ri!selectedItemType_txt = cons!CR_CMU_GRID_LABEL_BUCKET_VALUES[3]) )
Hi here the issue is batch size in the paging.. count is miss matching..
when i give the batch size =-1 then count will match to db data
when i give the batch size =10 or 1 or 20 or 50 whatever it will miss match the count from db to UI
why this will happen! what is the exact issue? why batch size is giving issue?
can anyone help me with this