Here are few tips on some of the small improvements in functionalities under the Project accounting module in D365 F&O.
Prevent project closure if open transactions exists: This is one of the most common requirements to make sure the Project is not closed out if there are pending transactions such as time, expense or invoices that are created but not yet posted to the project.
With this parameter marked, if a user tries to change the stage of a project to Closed/Finished, system will automatically detect if there any pending transactions and if there are, then it will not the user set the stage to Closed/Finished.
Advanced resource validation filtering enabled: This is a small enhancement that now allows you to filter employees based on their employment status. When enabled, you will see a new option to select the Employment status. This will make it easy to manage resource validations on projects when employees are terminated or when new employees come in with start date in the near future.
Allow sales orders for projects with multiple funding sources: When you have more than one funding source setup under a project contract, the system never allowed to create a sales order for the projects under that project contract. This has been one of the most important limitations of the system for a long time.
It is a very common requirement to have contracts funded by more than one funding sources/parties and if these contracts requires you to create sales orders, then it was not possible earlier. System would prompt with an error message as shown below.
With this new parameter marked, system will now allow you to create sales orders for projects which are setup with multiple funding sources. When you Mark this parameter, you will be able to chose whether you want the customer to be defaulted from the funding source or from the project.
The funding source which you select when creating the Sales order will be used when you invoice the sales order on the T&M project.
Allow batch process for publishing of Project WBS: When you have a Proejct work breakdown structure that is large and complex, having the option to publish the project WBS in batch (In the background) can come in very handy. This is a welcome change and improvement.
Automatically set accounting date to open ledger period for project journals: When a general ledger financial period is closed for transactions entry/posting, it is usually a requirement to allow the posting of the transactions automatically to the next open general ledger period. In earlier releases you could setup required parameters under Projects and Expenses module to post expense reports and project time sheets to post automatically to the next open GL period, if the fiscal period for the current transaction date is closed for entry.
With this new parameter, you can do the same thing for project journals. So for example you are trying to post a project journals into a GL period that is closed for entry/posting, then system can automatically post to the next open period.
For example, I have closed August 2019 for the Project module.
If the parameter is not marked, then you will get an error message as shown in screen below and the journal won’t post.
With the new parameter marked, I now try to post a project hours journal for the month of August. When this is posted, you can see the GL voucher is posted to September 1st (Next open GL period) automatically .
One Version(Evergreen Application), Power Platform, AI, Mixed reality, Virtual agent (BOT), Machine learning, IoT. These are buzzwords that are not uncommon to hear these days, when you talk of any business application.
The landscape of ERP and business applications has changed significantly, faster than we all expected. If you really think about it, the core fundamentals of business process requirements are not changing that much, but how you implement and accomplish those business process automation is certainly changing in a big way. No code, Low code app building service like Microsoft PowerApps, business process workflow automation service like Microsoft Flow and data insights building service like Microsoft Power BI are big components of it.
These different services are part of the Microsoft Power Platform and these combined with features like AI builder, Portals and services like Common Data Service, Azure Data Lak etc. makes the overall Microsoft Business Applications platform one of the best business applications platform for companies of any size.
Today in this post, I wanted to pick on one of the newest features in Dynamics 365 for F&O called “Business Events” and explain my experience with it with a very simple business scenario.
So What are business events?
Business Events in D365 F&O is a mechanism which lets external systems receive notifications from D365 F&O. The external systems can then perform additional business actions in response to the business events.
When a business process such as a Purchase Order confirmation, Sales order invoice, payment posting or even a workflow approval is initiated, a business event automatically fires up and generates a data payload. Endpoint such as Microsoft Flow, Azure Service bus can subscribe to these business events and get the payload information to trigger additional automated actions, both within D365 F&O as well as in external systems.
There are several business events that are shipped out of the box with the standard D365 F&O, and you can always customize and create custom business events that are suitable for you. The main objective is to notify service end points and there by external systems when a certain business process is completed within D365 F&O, so that you can carry out further tasks automatically. Screenshot below shows the business event catalog.
To illustrate how this functionality works, I took a very simple requirement. I wanted to notify the requester of a purchase order when the items arrive at the warehouse, so that they can go and collect those.
I built a Microsoft Flow which triggers when a “Purchase order received” business event gets fired up. My flow listens to this business event and gets additional information about the requester and purchase order from D365 F&O and then does the following things automatically.
Sends the requester an email. I used outlook for this.
Sends the requester a text message on phone. I used Twillo for this.
Posts a IM message in Microsoft Teams as a Flow BOT.
Screenshot below shows the Microsoft flow configuration.
I will now go ahead and create a Purchase Request and Purchase Order with me as the Requester and will receive the items on the PO.
Let us now go ahead and receive the goods and post the goods receipt note/product receipt document.
As as soon the Product receipt for posted, the business event was fired up in D365 F&O and Microsoft Flow was able to listen to those and automate the intended actions of notifying the requester via email, text and Teams IM message.
Screenshot below shows my flow was run successfully and also the different notifications i got automatically on my email, cell phone text and IM on Microsoft Teams.
Now, that illustration was a very simple business requirement and scenario. I could take this further and automate complex task automation such as,
Update a data record in F&O.
Create new data in F&O.
Initiate Microsoft Flow approvals for all workflow item approvals of F&O for richer email approval experience.
Connect to other business apps such as SharePoint, Common Data Service, Dynamics 365 for Sales and more to automate further business tasks.
Notify customer when their order is shipped with Tracking info
I was able to do these without writing a single line of code. That is the Power of the Microsoft Power Platform. The amount of process and task automation you can do with the Power Platform are endless.
That’s it for now and we will take a look at a more complex scenario next time involving a workflow approval. Till next time!!!
Last few months have been pretty busy with lot of our customers getting ready to move to Dynamics 365 for Finance and Operations “ONE Version. All of you should probably know already what “ONE Version” is and what are some of the key expectations around this. The objective is very simple. “All customers should run the latest version of Dynamics 365, Always“. This means, no more expenssive and extenssive upgrade projects and timelines.
For common questions on ONE version, you can find more info here.
With that said, I wanted to write about the ALL NEW Project timesheets mobile app in Dynamics 365 for Finance and Operations, that launched with the ONE version. (The app was released a few weeks ago alongside the ONE version release in the first week of April 2019). In the earlier releases of D365 F&O, there was the Project time entry mobile workspace, which did allow you to enter your project timesheet on a mobile device, but it had very limited functionality. Now, there is a new dedicated mobile app called “Microsoft Dynamics 365 Project Timesheet” in both Apple Appstore and Google playsytore. This new mobile app is fully redesigned and provides full functionality for timesheet management using a mobile devide. Some key highlights of this app,
Standalone app that seamlessly connects to Dynamics 365 F&O.
Modern responsive and fast user interface which is easy to use.
Easy time recording and internal/external comments/description entry.
Mobile timesheet entry submissions.
Mobile Timesheet Approvals.
Enter start and stop times.
Configurable Data fields visbility
To get started, you need to download and install the mobile app from App Store or Playstore. Once you have done that, the syustem admin of your organziation will need to enable this mobile time entry within Dynamics 365 for Finance and Operation.
Navigate to Project Management and Accoutning > Setup > Project management and accounting parameters > Timesheet tab.
You can also pick and chose which data fields to show on the mobile app and which ones not to show. That’s it!!
Now launch the mobile app and the timesheet entry process is very startight forward. You can Copy timesheets from previous, favorites and assignments. More importantly, you will always see the list of most recent projects you worked on, so that it is easy to find and select. The user interface for entering the time and comments is clean and welcoming. Great job Microsoft on this one and I am sure this will get new features in future versions.
Here are some screenshots from the testing I performed and it worked like a Charm!! Try it and provide your feedback to Microsoft directly in Appstores.
In one of my earlier posts, I discussed briefly about the testing I did for the first version of Common Data Service to integrate Dynamics 365 for Sales and Finance & Operations. That was primarily for syncing customer accounts and all associated information. Microsoft also ships several data integration templates out of the box for this, which covers pretty much all key entities in the Prospect to Cash scenario.
Today, we will take another deeper look at the Dynamics 365 integration story using the overall Power platform which contains the power of Common Data Service(CDS 2.0), Microsoft Power Apps, Flow and Power BI. We will learn about the new version of Common Data Service, which is referred to as CDS for Apps (CDS 2.0) and we will test an integration between Dynamics 365 For Talent and Dynamics 365 for Finance and Operations.
Create the Power platform environment (CDS For Apps…
The October 2018 release of Dynamics 365 for Finance and Operations (Version 8.1) introduced several new and very useful features in the core financials management area of the application, along with several other new functionality and enhancements across various other modules, analytics, overall platform, extensibility and more.
In this blog post, we will review some of the key new features under the core financials area, which a lot of end users will certainly fall in love with.
Central view of Settlement Transactions: In the past, when you had to see the settlements on a customer or vendor transaction, you always had to make a few clicks and jump to more than one screen to find the relevant information, which was time consuming. With the new “View Settlement” form/option on the Customer and Vendor transactions form, you can now see the full settlement details, related transactions, accounting, history and more, all at one place. Here is an example.
A customer invoice is posted: The View settlements form shows just the required details of the invoice.
Let us now settle this invoice against a customer payment along with some cash discount. Here is what you see in the view settlement form.
On this new “View Settlements” form, you can,
View any related transaction lines for the invoice, payment, cash discount lines etc.
You can dig into the Settlement history, if there a transaction was settles, unsettled multiple times.
You can view the accounting entries directly from this screen, for each individual line.
You can also initiate the Undo Settlement process from this new form.
Customer and Vendor data field change approvals: On the
Customer and Vendor master records, if you want approval process to be in
place, when certain data fields are changed on the customer or vendor records,
you can now enable that functionality optionally. This is a pretty neat
feature, which let’s you chose which data fields you want to control from being
changed accidentally, and then configure a detailed one or multi step approval
process, so that the changes can be reviewed and approved, before the new field
value comes into effect for the customer or vendor. In the post today, we will
see this on the Customer side, but it is the same functionality on the vendor
side as well.
So the first step is to Enable the approval process. As i mentioned, this is completely optional and if you do not need, you just leave the feature turned OFF. To enable this, go to Accounts Receivable > Setup > AR Parameters form and mark the “Enable customer approval” check box under the General tab.
The next step is to actually configure the approval workflow, which will be used for routing the proposed customer account changes for review and approval. This workflow is similar to other workflows in the system. In my case, i have setup a basic workflow with just one step approval process.
Once you have the workflow configured, let us now see this functionality in action. Navigate to the customer master and you will notice that the data fields you selected in the parameter screen , will now show as “requires approval” indicator. This is super helpful and easily tells the user that this field if changes will require approval. Let’s try to change the customer credit limit and customer group field.
Let’s try to change the customer credit limit and customer group field. When you save the changes, system will create and show the change proposal, which shows both current values and the proposed changed. At this point, the user if wishes, can discard the changes they made.
Notice now that the status of the Customer account says “Changes not submitted”.
One important thing to note here is, when the changes to the data fields are in process, you can still transact with the customer. System will just use the current values.
Once you are done with the changes, click Workflow > Submit to submit the changes to the workflow for review and approval. When the changes gets assigned to the approver, they can view the Proposed changes on the customer record directly.
Important note: There is a periodic option to submit all changes created for customer accounts in bulk. You can do it both manually and in the background/batch.
The changes to the data fields will come into effect after the change proposal has been approved. It works the same way for vendor records as well.
Financial Dimension values on Derived Dimensions: In many of the implementations I have done, a common requirement we here is to have some of the master records such as Item, Project, Customer etc. to be configured as one of the financial dimensions, so that customers can do adequate financial reporting on those. We use Derived dimension values for this and often end up having to select the financial dimension value manually on the master data record or we end up doing additional customization to automatically populate this value when new records are created in the master data table.
With this new functionality, you do not need to do any customization or even setup the dimension value manually when new records are created. If enabled, the system will automatically set these up now. Let us see this in action.
Additionally, there is another new functionality available on the financial dimensions area, where you can now setup certain dimension values to be defaulted when you select another dimension value. For example, when you select a specific business unit, you can have the system automatically default a cost center value for you.
To set this up, go under Financial dimensions > Select the dimension record and click Derived dimensions button. Here you can setup the value combinations of the defaulting of dimensions.
In this case, i have setup to default Cost center and Department values to be defaulted when i select a certain business unit.”. Let us see this in action.
With the above setup, when I select Business Unit dimension on a master record setup such as Project/Customer or anything else, the Cost center and Department dimensions will be auto populated, and i do not see to select them specifically. This is a pretty handy feature and will certainly save a lot of time for users in some cases.
For example, when i select Business unit 001 on my customer record, the Cost center and Department values auto populates to what i have setup.
The same defaulting functionality works on journal entry as well. For example, when I do a general journal entry and select the Business Unit dimension, i can have other dimension values defaulted (as long as they pass other account structure related validations)
Financial Journal Validation: Additional functionality to simulate posting during journal validation is available, which allows you to basically run the whole posting process, without actually posting the journal. As a result, you can see the possible errors, messages or warnings and you can take corrective actions on the journal.
Global Shared Number Sequence for Customers and Vendors: The global shared number sequence functionality allows you to use a single number sequence across many legal entities for customers and vendors. With this, you can also copy customers and vendors easily between legal entities. Since you cannot share master data using virtual companies anymore in D365 F&O, this might be a functionality you want to use to share the customer or vendor master if needed in your implementation.
Note: This functionality is not a replacement of the Virtual company feature by any means. It is just a possible alternate that can be leveraged to have same customer ID and info for one customer across multiple entities, but they will live as separate data records and have their own transactions.
The first thing you have to do is configure a Shared number sequence and then you will need to select the same shared number sequence under the Number sequence parameter.
Then you need to make sure you select the same number sequence code for the customer account under the AR parameters page in all the entities where you want to use the shared customer account ID.
With that setup, let us now see how you can copy customer accounts from one entity to another and they will use the same customer account number and other related info for the customer.
In USSI entity, I created a new customer account. Notice that when i create the new customer, system does not assign a Customer account number immediately. This is because, if you want to copy the customer from another entity, it will use the same customer account number. If not, it will assign a new shared number after you save the details on the customer. (We will see this copying feature when we create this same customer in another entity USMF).
Now i have filled the required details for this new customer and i save the data. System assigned a customer account number using the shared number sequence we had setup.
We will now copy the customer in the USMF entity. Let us see how that process looks like. I will navigate to the Customer master in the USMF entity and click New on the All Customers page, and then i will type in the customer name i want to copy. System will automatically find the match and if they are an existing customer in another entity, it will present an option to copy the customer account.
You will now see that the Customer information is copied into the USMF entity and it used the same Customer account number.
Note: You will need to make sure all the dependent data fields for the customer account are correctly setup in both entities.
Now that we have the shared customer account numbers setup and customer accounts copied, let us look at another new feature that complements this feature.
Global Customer and Vendor Transactions List page: If you are using shared number sequence for customers/vendors and have copied the accounts between multiple entities, you would obviously want to see a centralized view where you can see the transactions of the customer of vendor in all the entities they are copied in. I have already posted some transactions for this new customer “Marshal’s New store” in both USSI and USMF entities.
Invoice posted in USSI:
Invoice Posted in USMF:
Let’s see how the look in the new global transactions list page. I am in the USMF entity now and i will navigate to the global transactions list page.
Notice that the new page shows me all the transactions for this customer account form multiple entities. You will notice here that when you select the transaction for the specific entity on this page, the system automatically switches the company account, so that you can perform required operations on the transaction correctly.
That’s it for today’s post. In the next post, we will discuss in detail about another new feature in the core financials module called ‘Dual currency” and learn how it works and what are some of the significant changes that were introduced as part of this functionality.
All of you who attended the Microsoft Inspire and Las Vegas this year and the Microsoft Business Sumit at Seattle, would have heard a lot about the Microsoft Power platform. All the surrounding apps and services in Dynamics 365, such as Microsoft PowerApps, Flow, PowerBI, CDS etc. now are referred as the new Power platform.
In today’s blog post, we will see how all these powerful services puts the real power in the hands of the super-users of the systems and enables them to create seamless business process automation between applications such as Office 365, Microsoft SharePoint, Dynamics 365 and others, without requiring to write a single line of code.
The Scenario and the requirement:
IT team of an organization uses Microsoft SharePoint(Office 365) for tracking company equipment loaned to it’s employees and for managing them. They use a SharePoint list for tracking these loaned equipment.
Microsoft Dynamics 365 For Finance and Operations provides integration with 3 exchange rate providers out of the box.
Central Bank of Russian Federation
Central Bank of Europe
Depending on the country of your operations or your preference, you can use any of these providers to import currency exchange rates directly into Dynamics 365. Usually, OANDA is the widely used and most trusted exchange rate provider.
The configuration of these is pretty simple and straightforward. The integration with Central bank of Russian Federation and Central bank of Europe does not require you to setup an API key within Dynamics 365, where as for OANDA, you will need to get the API key from OANDA and set it up in Dynamics 365. OANDA also lets you do more flexible setups, such as how many decimal places you want to use, what quote type you want to use.
Lets take a quick look at how the process for setting these up and importing the exchange rates looks like.
The first thing is to setup the Currency exchange rate providers within Dynamics 365. You can do this under General Ledger > Currencies > Configure exchange rate providers form.
If you look at the default key configurations for the Central Bank of Russian Federation and Central Bank of Europe, there are pre-populated by Dynamics 365 with the Key values, which are basically the service endpoint (XML files). Screenshot below shows the configs.
To demonstrate the feature, i have created 3 separate Exchange rate types for the 3 different providers.
Now that the exchange rate providers and exchange rate types are setup, lets ee how the import of the exchange rate works. I will first do it for the Central Bank of Russian Federation and Central Bank of Europe and then i will do the setup for OANDA feed, since that involves some additional steps.
There are 2 options of importing the exchange rates. You can trigger the import manually every time you require or you can set the process to run in batch at specified recurring intervals.
To initiate the import, navigate to General Ledger > Currencies > Import currency exchange rates.
On this screen, you can select the Exchange rate type into which you want to import the exchange rates.
Then select the Exchange rate provider (CBRF, CBE or OANDA)
You can import “As of today’s date” or you can specify a date range as well (From date and To date)
If you using the Central Bank of Russian Federation as the exchange rate provider, you can tell the system to automatically create the currency pairs. This is nice !
You can chose if you want to override existing rates also.
Here you can setup the import process to run automatically in the background(batch) at specified recurring time intervals)
After you click OK, the import process will start and you will get a confirmation message telling what was imported.
If you are using the Central Bank of Europe as the exchange rate provider, you can additionally tell the system to prevent import on national holiday.
After the import process is complete, you will find your exchange rates in the Exchange table.
For OANDA as your exchange rate provider, you will do some additional setup. First you will need to get a API key from OANDA. If you have a paid subscription with OANDA, you will already have a API key for exchange rates. But to test, you can just start a 30 days free trial by simply specifying your email ID. You will receive the API key in your email.
One you have the API key from OANDA, you will need to set it up under the Exchange rate service provider configuration.
With this setup, You are all set!!. Now the import process for OANDA is the same as we saw above for CBRF and CBE. Only thing you need to note is, with OANDA, you will need to create the currency pairs depending on how many currencies your organization operates in.
You can verify that the exchange rates are imported.
You can see below that i had created 3 currency pairs (USD to INR, USD to EUR and USD to GBP) and the import process imported the corresponding exchange rates.
Here is a quick tip for an error related to data import of Project work breakdown structure – Draft entity using the Data Management framework in Dynamics 365 For Finance and Operations.
If you are trying to import the Project work breakdown structure – Draft entity(ProjProjectWBSDraftEntity) and you are getting the error below, then follow the steps below to get around this issue.
Results. Field ‘Project category’ must be filled in. Results. Matching record for the read only data source ‘ProjPlanVersionDetail’ does not exist
Steps to Work around this error:
Navigate to Project Management and Accounting > Setup > Projects > Work breakdown structure templates.
Create a new record
Enter a Name and Description
Make sure the Active checkbox is marked.
That’s it. You do not need to create the details under the WBS template.
With this default WBS template record in place, if you try to import the roject work breakdown structure – Draft entity, system will import the data just fine.
NOTE: This is an issue in the July 2017 release with Platform update 12 and I have not validated this in the Spring release yet. To me, it looks like a glitch/bug in the DMF entity that needs to be reported to Microsoft. But i just wanted to share this info in case any of you are dealing with this issue and trying to find a solution.