I created an example with Filters:

Compose (example data)
[
{"Title": "Isurance 0", "DueDate0": "2024-07-19", "DueDate1": "2024-07-10", "DueDate2": "2024-07-15"},
{"Title": "Isurance 1", "DueDate0": "2024-07-18", "DueDate1": "2024-07-11", "DueDate2": "2024-07-16"},
{"Title": "Isurance 2", "DueDate0": "2024-07-17", "DueDate1": "2024-07-12", "DueDate2": "2024-07-17"},
{"Title": "Isurance 3", "DueDate0": "2024-07-16", "DueDate1": "2024-07-13", "DueDate2": "2024-07-18"},
{"Title": "Isurance 4", "DueDate0": "2024-07-15", "DueDate1": "2024-07-14", "DueDate2": "2024-07-19"},
{"Title": "Isurance 5", "DueDate0": "", "DueDate1": "2024-07-15", "DueDate2": null},
{"Title": "Isurance 5", "DueDate0": "", "DueDate1": "2024-08-15", "DueDate2": null}
]
Filter array - Less today plus 7 days
From
outputs('Compose')
Filter
@Or(
less(
if(
empty(item()?['DueDate0']),
'Z',
item()['DueDate0']
),
addDays(utcNow(), 7, 'yyyy-MM-dd')
),
less(
if(
empty(item()?['DueDate1']),
'Z',
item()['DueDate1']
),
addDays(utcNow(), 7, 'yyyy-MM-dd')
),
less(
if(
empty(item()?['DueDate2']),
'Z',
item()['DueDate2']
),
addDays(utcNow(), 7, 'yyyy-MM-dd')
)
)
'Z' is just an arbitrarty value greater that utcNow()
Filter array - Overdue
From
outputs('Compose')
Filter
@Or(
less(
if(
empty(item()?['DueDate0']),
'Z',
item()['DueDate0']
),
utcNow('yyyy-MM-dd')
),
less(
if(
empty(item()?['DueDate1']),
'Z',
item()['DueDate1']
),
utcNow('yyyy-MM-dd')
),
less(
if(
empty(item()?['DueDate2']),
'Z',
item()['DueDate2']
),
utcNow('yyyy-MM-dd')
)
)
Filter array -Expiring (All items from "Filter array - Less today plus 7 days" that are not in "Filter array - Overdue")
From
body('Filter_array_-_Less_today_plus_7_days')
Filter
body('Filter_array_-_Overdue')
does not contain
item()
