Multiple-currency scenarios
Important
Dynamics 365 Project Service Automation has evolved into Dynamics 365 Project Operations. For more information, see Project Service Automation Transition.
Applies to Project Service app version 3.x
Microsoft Dynamics 365 has two concepts of currencies:
- Transaction currency - The currency that a transaction occurs in.
- Base currency - The currency of the Dynamics 365 instance. This currency is set up when a Dynamics 365 instance is provisioned. It can’t be changed.
For example, Contoso US sold 100 t-shirts to a customer in the UK for 15 ounds sterling (GBP) each. The following table shows how this transaction is recorded in the Order Product entity.
Product | Quantity | Price per unit | Currency | Amount | Exchange rate | Price per unit (Base) | Amount (Base) |
---|---|---|---|---|---|---|---|
T-shirt | 100 | 15 | GBP | 1500 | 0.94 | $17.25 | $1,725 |
The Currency column shows the transaction currency, which is the currency that the sale occurred in. The Exchange rate column is the exchange rate between the transaction currency and the base currency. The base currency is US dollar (USD). This base currency was set up when the Dynamics 365 instance was provisioned. As the table shows, every transaction is recorded in both the transaction currency and the base currency. Dynamics 365 uses the currency exchange rate to calculate the base currency amounts.
Project Service Automation extensions
Dynamics 365 Project Service Automation influences the transaction currency, because business transactions usually have two aspects: cost and sales.
The following entities are considered business transactions:
- Quote line detail
- Project contract line detail
- Estimate line
- Journal line
- Invoice line detail
- Actual
In each of these entities, there is a record that represents the cost amount or the sales amount. As for any Dynamics 365 entity that has an Amount field, each record includes amounts in both the transaction currency and the base currency.
PSA expands the concept of transaction currency for the cost and sales in the following ways:
- The cost transaction currency for time transactions always comes from the currency of the organization unit that owns or manages the project. This organization unit is known as the contracting unit.
- The sales transaction currency for time and expense transactions always comes from the currency of the project contract.
- The cost transaction currency for expenses comes from the currency that the expense entry was created in.
Multiple-currency scenario
This section describes an example of a project that Contoso UK delivers for a customer that is named Fabrikam, Japan. Here is how the scenario has been set up:
- GBP and Japanese yen (JPY) are set up under Settings > Business Management > Currencies.
- A customer account that is named Fabrikam - Japan is set up, and JPY is selected as the currency on the account.
- An organization unit that is named Contoso UK is set up, and GBP is selected as the currency.
- A project contract is created, where Contoso UK is specified as the contracting unit and Fabrikam – Japan is specified as the customer.
- Project contract lines are created, based on the billing arrangements for the various transaction classes on the project, such as billing for time versus billing for expenses.
- A project is created where Contoso UK is specified as the contracting unit. This project is created and mapped to the project contract lines.
During estimation that uses the quote line detail, the project contract line detail, or on the estimate line of the schedule, two records are always created in the entity. One record is for cost, and the other record is for sales.
- By default, the transaction currency on the cost record is set to the currency of the project’s contracting unit. In this example, the currency is GBP.
- By default, the transaction currency on the sales record is set to the currency of the project contract. In this example, the currency is JPY.
When actuals are created for time using time entry or the journal line, the following behavior occurs:
- By default, the transaction currency on the cost record is set to the currency of the project's contracting unit.
- By default, the transaction currency on the sales record is set to the currency of the project contract.
When actuals are created for expenses by the expense entry or journal line, the following behavior occurs:
- You can record the expense amount in any currency. Select the currency by using the currency picker on the Expense Entry page or the Journal Line page. By default, the transaction currency for the cost record is set to the currency on the expense entry.
- By default, the transaction currency for sales record is the currency of the project contract. To set this currency, the system first converts the transaction amount in the currency that the user entered to the base currency. It then converts the amount to the currency of the project contract.
Computing roll-ups when project actuals are recorded in multiple transaction currencies
Dynamics 365 automatically handles roll-ups of amounts in different currencies. Here is an example.
Transaction class | Transaction type | Date | Resource | Transaction category | Quantity | Unit price | Amount | Exchange rate | Amount in base |
---|---|---|---|---|---|---|---|---|---|
Time | Unbilled sales | 14-Jun | Prakash | 8 hrs | 20,000 JPY | 160,000 JPY | 123 | 1,300.81 USD | |
Time | Unbilled sales | 15-Jun | Prakash | 8 hrs | 20,000 JPY | 160,000 JPY | 123 | 1,300.81 USD | |
Expense | Unbilled sales | 16-Jun | Prakash | Hotel | 1 ea | 250 EUR | 250 EUR | 0.94 | 265.95 USD |
Expense | Unbilled sales | 17-Jun | Prakash | Car Rental | 1 ea | 150 EUR | 150 EUR | 0.94 | 159.57 USD |
To calculate the total unbilled sales value on the project, you can create a roll-up field for the Amount field on all the related unbilled sales actuals. The roll-up field is a construct of Dynamics 365 that allows for quick formulas on related records.