Here is a quick hack, to test, if specific Dataverse fields of a record are empty (or null).
The normal way would be to insert a "is equal to null" condition into your flow for each field you'd like to check. That's too much work!
The following method is safer, quicker to write and performs much faster on top of that!
You will need four actions:
- a "Get Row by ID" (Dataverse) action that loads the Dataverse record to be tested
- a compose that holds an array of field names. You can add as many fields as you like here, but they should be the logical field names.
- a filter array to iterate over this array and perform the "is-null" checks. Note: Normally filter array is performed on an array of data elements, for example an array of Dataverse records. This is NOT the case here. We stay in one record and iterate over some of its fields instead.
- a condition that counts the number of "is-null" fields found by the filter array.
Array of field names (Compose)
["abc_fullname","abc_birthday","abc_department,"abc_supervisor"]
Filter array
From: outputs('Compose')
Map:
empty(string(coalesce(outputs('Get_Row_by_ID')?['body']?[item()],'')))
"is equal to"
true
Let me quickly explain the mapping function. Remember that item() acts as an iterator function, applied to all the array elements loaded into the "From:" field.
The first element is "abc_fullname", which is a field name and it is used as such to load the value of a record field with that field name:
outputs('Get_Row_by_ID')?['body']?[item()]
becomes
outputs('Get_Row_by_ID')?['body']?['abc_fullname']
The stored value of this field could be a variety of things, a string, a number, a lookup, null. Since all we are about here, is, whether it is empty, we can use the function empty().
However, empty expects a string as input, so we need to cast the field value as a string, using string().
string() will produce an error though, if the field value is null, so we also use coalesce(), one of my favorite functions in Power Automate, to make sure the value is at least an empty string.