Skip to main content

Notifications

Community site session details

Community site session details

Session Id : oox56v0gp9s47t29cIFI/T
Power Automate - Building Flows
Answered

Filter D365 Finance and Operations Records by month using ODATA

Like (0) ShareShare
ReportReport
Posted on 25 Sep 2017 07:36:28 by 62

Hello everyone,

I'm trying to get all Sales Orders with the ConfirmedShippingDate in a specific month.

Since ODATA has a month() function, my first approach of the filter query was:

"month(ConfirmedShippingDate) eq 9"
to filter dynamically for the current month I also thought about
"month(ConfirmedShippingDate) eq month(utcnow())

both of those statements return an error:
"An error has occurred. Property 'Int32 Month' is not defined for type 'Microsoft.Dynamics.Ax.Xpp.AxShared.Date' clientRequestId: 220afd28-0f67-4b1a-9930-f84db1df38d2"

I then came up with this solution, which does work, but is not optimal since it doesn't actually relate to months but only goes back a fixed amount of days

"ConfirmedShippingDate ge @{adddays(utcnow('yyyy-MM-dd'), -31, 'yyyy-MM-dd')} and  ConfirmedShippingDate lt @{adddays(utcnow('yyyy-MM-dd'), +0, 'yyyy-MM-dd')}"

To make this more dynamic and usable I tried this to always go back until the actual beginning of the current month:

"ConfirmedShippingDate ge @{adddays(utcnow('yyyy-MM-dd'), -dayofmonth(utcnow()), 'yyyy-MM-dd')} and  ConfirmedShippingDate lt @{adddays(utcnow('yyyy-MM-dd'), +0, 'yyyy-MM-dd')}"

I thereupon get the message that the "exppression is not valid"; adding the int()-function doesn't change a thing [-int(dayofmonth(utcnow()))].

Any ideas how to solve this dynamically? It doesn't matter to me if i have to tell the flow which month it is or if it works automatically for the current month. I just want somehting better than going 31 days back when executing the flow at the end of the month (which would cause problems if the month just has 30, 28, or 29 days)

Thank you in advance!

  • Christoph_G Profile Picture
    62 on 27 Oct 2017 at 11:39:39
    Re: Filter D365 Finance and Operations Records by month using ODATA

    Hi @v-micsh-msft,

    looks good! Thank you very much! 🙂

    2017-10-27 13_37_27-Eigenen Flow bearbeiten _ Microsoft Flow.png

  • Verified answer
    v-micsh-msft Profile Picture
    on 26 Oct 2017 at 09:57:54
    Re: Filter D365 Finance and Operations Records by month using ODATA

    Hi @Christoph_G,

     

    Take a try to modify the formula as below

    "ConfirmedShippingDate ge @{Startofmonth(utcnow())} and ConfirmedShippingDate lt @{StartofMonth(adddays(utcnow(), 31))}"

    Regards,

    Michael

  • Christoph_G Profile Picture
    62 on 23 Oct 2017 at 08:26:01
    Re: Filter D365 Finance and Operations Records by month using ODATA

    Hi @v-micsh-msft,

    I just copied what you suggested into my Flow and get following error:
    An error has occurred. The time zone information is missing on the DateTimeOffset value '2017-11-01T00:00:00.0000000'. A DateTimeOffset value must contain the time zone information. clientRequestId: 5f59e51b-f8b0-4574-be81-8c2ed3025a1c

    I don't understand why the exact same statement you used causes trouble in my Flow.. any ideas?

    Thank you
    Christoph

  • Christoph_G Profile Picture
    62 on 26 Sep 2017 at 08:36:43
    Re: Filter D365 Finance and Operations Records by month using ODATA

    Hello @v-micsh-msft

    looks like what I was looking for - thank you for your suggestion. I will try it soon!

    Kind Regards,
    Christoph

  • Verified answer
    v-micsh-msft Profile Picture
    on 26 Sep 2017 at 06:30:25
    Re: Filter D365 Finance and Operations Records by month using ODATA

    Hi @Christoph_G,

     

    The Month() function will not work under Dynamics 365 OData query, which is documened in the article below:

    Query Data using the Web API

    Quoted:

    "

    This is a sub-set of the 11.2.5.1.2 Built-in Query FunctionsDateMathTypeGeo and other string functions aren’t supported in the web API.

    "

    To filter within the month, we could take a try with the following way:

    "ConfirmedShippingDate ge @{Startofmonth(utcnow())} and ConfirmedShippingDate lt @{StartofMonth(adddays(utcnow('yyyy-MM-dd'), 31))}"

    Actually we could just take use of the expression under the Filter query:

    For the Startofmonth of current month, we use:

    startOfMonth(utcnow())
    As the first expression,
    For second value, calculate the startofmonth after Add 31 days of UTCNow(), which means the start of next month.
    81.PNG
    82.PNG
     
    Doing it in this way should be able to filter within current month.
    See the running details:
    83.PNG
     
    Regards,
    Michael

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Understanding Microsoft Agents - Introductory Session

Confused about how agents work across the Microsoft ecosystem? Register today!

Warren Belz – Community Spotlight

We are honored to recognize Warren Belz as our May 2025 Community…

Congratulations to the April Top 10 Community Stars!

Thanks for all your good work in the Community!

Leaderboard > Power Automate - Building Flows

#1
stampcoin Profile Picture

stampcoin 79

#2
Michael E. Gernaey Profile Picture

Michael E. Gernaey 70 Super User 2025 Season 1

#3
David_MA Profile Picture

David_MA 48 Super User 2025 Season 1

Overall leaderboard
Loading started