Hi. I have a SharePoint List that contains insurance expiration dates. A row consists of the company name, General Liability expiration date, Auto expiration date, Workman's Comp expiration date and several others. I need to filter based on each expiration date (where GLExp less than or equal to 'today + 8' OR AutoExp less than or equal to 'today + 8' OR....).
I need to do the following:
1. get items (sharepoint list)
2. select rows where date columns (using 'OR' statement) are less than or equal to today + 8
3. put into an HTML table
4. Send an email
I do not know what to use in order to filter the items - filter array does not work becuase the get items output is a string. How do I get this to work?
I have had no training on Microsoft FLOW, just googling and figuring out as I go along. However, we have a need to get this done quickly and I am stuck. thank you so much for your help on this.
Solved! Go to Solution.
Hi @tdbishop,
Best Regards,
Community Support Team _ Lin Tu
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Hey there! Great job so far! One way I was thinking you could do this was an OData filter on your Get Items action. Check out Scenario #2 on Kent Weare's article for specifics, but I imagine if you put the following in your filter query, you'll get close, no?
<<whatever your date field is>> le addDays(utcnow('yyyy-MM-ddTHH:mm:ssZ'),8)
Without the <<>> part, though. What do you think? This should look for anything where the date is less than or equal to today + 8 days.
-Ed-
If this reply has answered your question or resolved your challenge, please consider marking it as a Solution. This helps other users find it more easily via search.
Unfortunately, did not work. indicates it is a bad request in Get Items action: Status 400 with message: the query is not valid.
According to the documentation, when refrencing a DateTime value in a filter expression, the value must be delimited by single quotation marks and preceded by the word datetime, such as datetime'2010-01-25T02:13:40.1374695Z'.
This date field is a date only value. Does this noted rule still apply?
I think the 'date only' is just how it's presented. It should still be stored in the UTC format shown in the other post. Can you post a pic of the current expression? That might get us closer.
Thanks,
-Ed-
Below is the current expression. I will go back and add time to the expression and re-run to see if that resolves this error.
Using the format mentioned with datetime'mm-dd-yyyyT00:00:00.000Z' also failed. See below screenshot. Error = "The expression \"GL_Exp lt adddays(utcnow(),9,datetimeMM-dd-yyyyT00:00:00.000Z')\" is not valid.
try this:
GL_Exp lt addDays(utcnow('MM-dd-yyyy'),8)
I think the formatting for the date should be inside the () for UTCNow() and the number of days should be outside. Don't worry, though...if we can't get it to work with expressions, there are cool action steps that let us do all this too.
-Ed-
Thanks. Tried that format and it failed: query not valid.
Edit - nm, they're not. Checking for other options...
Ok, it's the formatting of the UTCNow. Leave that off for now so it's just ... adddays(utcnow(),8) - see what happens.
@tdbishop try matching the case, I think expressions are case sensitive. I'll start building one like yours to try this out.
I successfully tested this expression on a date only column:
testdate ge datetime'2019-08-21T00:00:00Z'
Finding now way of escaping the single quote characters, I created a variable to store this char.
Then I used a flow expression to produce the above string dynamically:
concat('testdate ge datetime',variables('singlequote'),addDays(utcnow(),-3),variables('singlequote'))
And it worked!
Small variation to round down the time part of the current date:
concat('testdate ge datetime',variables('singlequote'),addDays(utcnow(),-1,'yyyy-MM-ddT00:00:00'),variables('singlequote'))
This expression is placed in the 'Filter' field of the Get items action.
It produces this filter:
Finally found how to instert quotes in the concat expression without the variable:
concat('testdate ge datetime','''',addDays(utcnow(),-1,'yyyy-MM-ddT00:00:00'),'''')
It failed (message: "The function operator 'concat' is not supported or its usage is invalid.") when I put this in the filter field: concat('GL_Exp le datetime',variables('singlequote'),addDays(utcnow(),-1,'yyyy-MM-ddT00:00:00'),variables('singlequote'))
When you say you "created a variable to store this char.", do I also need to create this variable somehow in order for it work?
I appreciate your help on this. 🙂
These are the steps to enter the expression in the 'Filter Query' field of the 'Get items' action
LOL! Since you showed it to me - it makes perfect sense.
did that. Filter Query shows correctly with 'GL_Exp lt datetime'08-31-2019T00:00:00''
However, it still failed - "The expression \"GL_Exp lt datetime'08-31-2019T00:00:00'\" is not valid.
It is as though the Get Items does not appear to recognize the fields in the referenced SharePoint list (i.e. 'GL_Exp', 'Auto_Exp'..).
The datetime value is not formatted correctly. It should be '2019-08-31T00:00:00' and not '08-31-2019T00:00:00'.
Did you use this expression:
concat('GL_Exp lt datetime','''',addDays(utcnow(),-8,'yyyy-MM-ddT00:00:00'),'''')
I tried both formats. failed both times.
User | Count |
---|---|
89 | |
37 | |
26 | |
13 | |
12 |
User | Count |
---|---|
128 | |
53 | |
38 | |
26 | |
21 |