Code snippet below shows a filter for field test whose value is reviewing.
a!queryFilter( field: recordType! a.fields.test operator: "=", value: "Reviewing" )
How can I filter field test whose values are "reviewing" or null? I should be able to get rows 1 and 2
Discussion posts and replies are publicly visible
a!queryEntity( entity: cons!recordType, query: a!query( selection: a!querySelection( columns: { } ), logicalExpression: a!queryLogicalExpression( operator: "OR", filters: { a!queryFilter( field: recordType! a.fields.test operator: "=", value: "Reviewing" ), a!queryFilter( field: recordType! a.fields.test operator: "is null" ) }, ignoreFiltersWithEmptyValues: true ), pagingInfo: a!pagingInfo( startIndex: 1, batchSize: -1 ) ) )
a!queryFilter( field: recordType!a.fields.test operator: "in", value: {"Reviewing", null} )
For the record - this method will not return results where the field is "DB Null" - but it does return entries where the DB row contains a blank value (extra frustrating since the DB treats these differently but Appian gives us no direct way to control it).
Incase, if you want empty value along with null or any other text from backend, use the following code,
a!queryLogicalExpression( operator: "OR", filters: { a!queryFilter( field: "col2", operator: "in", value: {"Reviewing",""} ), a!queryFilter( field: "col2", operator: "is null" ) } )
This was actually my problem when I posted this question. so I was thinking if there's a method to get that as well
I have the same issue but not working given answers... any other suggestion ......
Could you treat empty values as null? Because if yes, then you could use a custom field and add a default value of "" (empty string) to it
a!customFieldDefaultValue( value: 'recordType.stringFieldWithNulls', default: "")
Name it something like fieldName + "NullToEmpty", and then filter on that new field.
Few points to note.
- Must use a!queryRecordType(). Cannot use a!queryEntity() with recordType constant as the entity.
- The batch size when querying record data must be between 0 and 5,000.
a!queryRecordType( recordType: cons!XXX_RECORD_EMP, filters: a!queryLogicalExpression( operator: "OR", filters: { a!queryFilter( field: 'recordType!{xx-xx-xx-xx-xx}Employee.fields.{xx-xx}department', operator: "=", value: "IT" ), a!queryFilter( field: 'recordType!{xx-xx-xx-xx-xx}Employee.fields.{xx-xx}department', operator: "is null" ) }, ignoreFiltersWithEmptyValues: true ), pagingInfo: a!pagingInfo( startIndex: 1, batchSize: 50 ) )
Just FYI, a!queryEntity() does not work for recordType. Need to use a!queryRecordType().