RPA with Dynamics 365 Finance & Supply Chain

Image
Are you looking for ways to automate some of your routine accounting functions, like reconciling sub ledgers to the general ledger?   Microsoft has recently created some examples using Power Automate Desktop (think of it like Task Recording on steroids). It can not only automate steps through Dynamics 365, but it can also automate Excel and other applications. In one example from Microsoft they automate the AR to GL reconciliation: Automatic running of the AR aging and the customer/ledger reconciliation reports. Power Automate then extracts data from both reports in Excel and compares the balances. Power Automate then posts a Team message letting you know the subledger is in balance. Power Automate saves the reports with the date in the file name, so there is backup. Microsoft Directions & Example   I working with the example, I needed to make a couple of adjustments to the sample flow that was provided but I was able to get it to work. Here is a video of the flow running in

Creating a date table with a fiscal year in your Power BI data model


There are many different articles available on Time Intelligence in Power BI.  Many new users to Power BI do not really understand the importance of having a date table in their data model.  I have spoken on this topic on many different occasions and continue to receive a lot of questions about the topic.  In this article I am going to try and cover a few tips on how to work with dates in your Power BI model.

Many new users simply use the Auto Date & Time function of Power BI.  This function automatically creates a hidden date table for each field in the model with a date or date/time data type.  This function is enabled by default and it allows for slicing by Year, Quarter, Month and Day.  The problem with Auto Date and Time is that it only works with a standard calendar (Jan to Dec).  It requires a datetime column in the fact table.  It does not work with multiple fact tables and it does not support time intelligence calculations (YTD, MTD, etc.).  So there must be a better way.

This better way is to create a date table in the data model.  A date table can be used for time intelligence calculations.  However the table must contain a row for every date in the date range of the data and it often includes additional columns like week number, workday, holiday, etc.

A date table can easily be created with both DAX and M.  There are many different blogs available with the basics of creating a date table (Radacad or Excelerator BI  One thing I find many of these articles missing is directions on how to handle a fiscal year, and every time I speak about creating date tables I have several attendees ask about working with their fiscal year.

Now a fiscal year can be a very complicated topic because it may include a 4-5-4 calendar or some variation where the beginning date and ending date are not the same.  While this can be handled in Power BI, it typically requires some unique formulas to address the specifics of the company.  In this example, I will create a date table for a company that operates on a July to June fiscal year. 

In order to create the fiscal year columns, I have added a variable to both the DAX date table script and the M date table script.  The variable FiscalStart is used to set the first month of the fiscal year.  In my example this would be 7 or 07.

Then use following logic in DAX or M to create the fiscal year columns.

    Fiscal Year = if (First Fiscal Month <= Month) then (Year +1) else (Year)
    Fiscal Month # = if(First Fiscal Month <= Month) then (Month – First Fiscal Month + 1) else ((12 – First Fiscal Month + 1)+Month)

Here is some sample code Using DAX

    "Fiscal Year", IF(FiscalStart <= FORMAT([Date],"MM"), "FY"&(YEAR([Date])+1),"FY"&YEAR([Date]))
    "Fiscal Month", Value(IF(FiscalStart <= FORMAT([Date],"MM"), (Month([Date]) -FiscalStart+1), ((12-FiscalStart+1)+Month([Date]))))
    "Fiscal Quarter", If (Value(IF(FiscalStart <= FORMAT([Date],"MM"), (Month([Date]) -FiscalStart+1), ((12-FiscalStart+1)+Month([Date])))) < 4,"Q1", If (Value(IF(FiscalStart <= FORMAT([Date],"MM"), (Month([Date]) -FiscalStart+1), ((12-FiscalStart+1)+Month([Date])))) < 7,"Q2", If (Value(IF(FiscalStart <= FORMAT([Date],"MM"), (Month([Date]) -FiscalStart+1), ((12-FiscalStart+1)+Month([Date])))) < 10,"Q3","Q4")))

Here is some sample code using M

    "Fiscal Month", each if(FiscalStart <= [Month]) then [Month] - FiscalStart +1 else (12 - FiscalStart+1)+[Month]),
    "Full Fiscal Month", each if [Fiscal Month]< 10 then Text.Combine({"0", Text.From([Fiscal Month], "en-US")}) else Text.From([Fiscal Month],"en-US")),
    "Fiscal Year", each if (FiscalStart <= [Month]) then [Year]+1 else [Year]),
    "Day of Fiscal Year", each Duration.Days([FullDateAlternateKey]-[Beginning Fiscal Year])),
    "Week of Fiscal Year", each Number.Round([Day of Fiscal Year]/7,0,0)),
    "Quarter of Fiscal Year", each Number.Round(([Fiscal Month]+1)/3,0,0)),

I have written two basic script files to create a complete date table with Fiscal Year columns.  Feel free to download them and give them a try.


To use, Open Power BI, go to Modeling Tab, select New Table – copy the entire script into the formula bar at the top of the screen.






To use, Open Power BI, Get Data, Blank Query, From the Power Query editor, choose Advanced Editor and paste the entire script into the window.  Once the script run you can rename the Query to Date to make it easier to use in your data model.


Hopefully this gives you a better understanding on how to work with Fiscal Years in Power BI.

Comments

Popular posts from this blog

Using Full Page Apps in Dynamics 365 Finance

RPA with Dynamics 365 Finance & Supply Chain